Конвертация всех pdf файлов из каталога - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

роясь на просторах интернета, нашел библиотеку для конвертирования pdf в графические изображения(в данном случае мне нужен jpg) данный пример только для одного файла(конкретно выбранного) вот код:
Листинг программы
  1. Imports System.ComponentModel
  2. Imports System.Text
  3. Imports Spire.Pdf
  4. Namespace ToImage
  5. Partial Public Class Form1
  6. Inherits Form
  7. Public Sub New()
  8. InitializeComponent()
  9. End Sub
  10. Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles button1.Click
  11. 'pdf file
  12. Dim file As String = "G:\1.pdf"
  13. 'open pdf document
  14. Dim doc As New PdfDocument()
  15. doc.LoadFromFile(file)
  16. 'save to images
  17. For i As Integer = 0 To doc.Pages.Count - 1
  18. Dim fileName As String = String.Format("Sample-img-{0}.jpg", i)
  19. Using image As Image = doc.SaveAsImage(i)
  20. image.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg)
  21. System.Diagnostics.Process.Start(fileName)
  22. End Using
  23. Next
  24. doc.Close()
  25. End Sub
  26. End Class
  27. End Namespace
библиотеку тоже. вопрос встал вот в чем. как перепилить этот код, для того что бы пользователь указал только директорию, содержащие pdf файлы, нажал на кнопку, и все файлы, находящиеся в этой директории сконвертировались. заранее большое спасибо!!

Решение задачи: «Конвертация всех pdf файлов из каталога»

textual
Листинг программы
  1. Imports System.ComponentModel
  2. Imports System.Text
  3. Imports Spire.Pdf
  4. Public Class Form1
  5.  
  6.     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  7.        
  8.         If BackgroundWorker1.IsBusy = False Then
  9.             ProgressBar1.Visible = True
  10.             Label2.Visible = True
  11.             Label3.Visible = True
  12.             Label4.Visible = True
  13.             Label6.Visible = True
  14.             Label7.Visible = True
  15.             BackgroundWorker1.RunWorkerAsync()
  16.         Else
  17.             Exit Sub
  18.         End If
  19.  
  20.     End Sub
  21.     Dim namefile As String = ""
  22.     Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
  23.         Dim startpath As String = ""
  24.         For i = 0 To ListBox1.Items.Count - 1
  25.             Label7.Text = i + 1
  26.             startpath = FileIO.FileSystem.GetFileInfo(ListBox1.Items.Item(i)).DirectoryName 'находим каталог откуда родом этот pdf
  27.             namefile = System.IO.Path.GetFileNameWithoutExtension(ListBox1.Items.Item(i)) 'находим имя pdf
  28.             Path_convert = startpath & "" & namefile ' собираем путь для нового каталога для сохранения jpg
  29.             If System.IO.Directory.Exists(Path_convert) = False Then 'если его нет, то создаем
  30.                 System.IO.Directory.CreateDirectory(Path_convert)
  31.             End If
  32.             convert_pdf(ListBox1.Items.Item(i), Path_convert)
  33.         Next
  34.     End Sub
  35.     Dim Path_convert As String = ""
  36.     Sub convert_pdf(ByVal path As String, ByVal startpath As String) ' процедура для конвертирования
  37.         'pdf file
  38.         Dim file As String = path
  39.  
  40.         'open pdf document
  41.         Dim doc As New PdfDocument()
  42.         doc.LoadFromFile(file)
  43.  
  44.         'save to images
  45.         Label4.Text = doc.Pages.Count
  46.         For i As Integer = 0 To doc.Pages.Count - 1
  47.             Label2.Text = i + 1
  48.             Dim fileName As String = String.Format(namefile & "_{0}.jpg", i + 1)
  49.             Using image As Image = doc.SaveAsImage(i)
  50.                 image.Save(startpath & "" & fileName, System.Drawing.Imaging.ImageFormat.Jpeg)
  51.                 'System.Diagnostics.Process.Start(fileName)
  52.             End Using
  53.         Next
  54.         doc.Close()
  55.         doc.Dispose()
  56.     End Sub
  57.     Dim k As Integer = 0
  58.     Dim path As String = ""
  59.     Sub search() ' процедура поиска файлов
  60.         On Error Resume Next
  61.         ListBox1.Items.Clear()
  62.         k = 0
  63.         For Each foundFile As String In My.Computer.FileSystem.GetFiles(path, FileIO.SearchOption.SearchAllSubDirectories, "*.pdf")
  64.  
  65.             ListBox1.Items.Add(foundFile)
  66.  
  67.             k = k + 1
  68.             Label1.Text = k
  69.         Next
  70.         If ListBox1.Items.Count > 0 Then
  71.             ListBox1.SelectedIndex = 0
  72.         End If
  73.     End Sub
  74.     Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  75.         Dim SFD As New FolderBrowserDialog ' выбираем каталог
  76.         If SFD.ShowDialog = Windows.Forms.DialogResult.OK Then
  77.             TextBox1.Text = SFD.SelectedPath
  78.             path = SFD.SelectedPath
  79.             search()
  80.         Else
  81.             Exit Sub
  82.         End If
  83.     End Sub
  84.  
  85.     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  86.         Label2.Visible = False
  87.         Label3.Visible = False
  88.         Label4.Visible = False
  89.         Label6.Visible = False
  90.         Label7.Visible = False
  91.         ProgressBar1.Visible = False
  92.         ProgressBar1.Style = ProgressBarStyle.Marquee
  93.         CheckForIllegalCrossThreadCalls = False
  94.     End Sub
  95.  
  96.     Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
  97.         ProgressBar1.Visible = False
  98.         Label2.Visible = False
  99.         Label3.Visible = False
  100.         Label4.Visible = False
  101.         Label6.Visible = False
  102.         Label7.Visible = False
  103.         MsgBox("Все файлы успешно конвертированы")
  104.  
  105.     End Sub
  106. End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут