Конвертация всех pdf файлов из каталога - Visual Basic .NET
Формулировка задачи:
роясь на просторах интернета, нашел библиотеку для конвертирования pdf в графические изображения(в данном случае мне нужен jpg) данный пример только для одного файла(конкретно выбранного)
вот код:
библиотеку тоже. вопрос встал вот в чем. как перепилить этот код, для того что бы пользователь указал только директорию, содержащие pdf файлы, нажал на кнопку, и все файлы, находящиеся в этой директории сконвертировались.
заранее большое спасибо!!
Решение задачи: «Конвертация всех pdf файлов из каталога»
textual
Листинг программы
Imports System.ComponentModel
Imports System.Text
Imports Spire.Pdf
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If BackgroundWorker1.IsBusy = False Then
ProgressBar1.Visible = True
Label2.Visible = True
Label3.Visible = True
Label4.Visible = True
Label6.Visible = True
Label7.Visible = True
BackgroundWorker1.RunWorkerAsync()
Else
Exit Sub
End If
End Sub
Dim namefile As String = ""
Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim startpath As String = ""
For i = 0 To ListBox1.Items.Count - 1
Label7.Text = i + 1
startpath = FileIO.FileSystem.GetFileInfo(ListBox1.Items.Item(i)).DirectoryName 'находим каталог откуда родом этот pdf
namefile = System.IO.Path.GetFileNameWithoutExtension(ListBox1.Items.Item(i)) 'находим имя pdf
Path_convert = startpath & "" & namefile ' собираем путь для нового каталога для сохранения jpg
If System.IO.Directory.Exists(Path_convert) = False Then 'если его нет, то создаем
System.IO.Directory.CreateDirectory(Path_convert)
End If
convert_pdf(ListBox1.Items.Item(i), Path_convert)
Next
End Sub
Dim Path_convert As String = ""
Sub convert_pdf(ByVal path As String, ByVal startpath As String) ' процедура для конвертирования
'pdf file
Dim file As String = path
'open pdf document
Dim doc As New PdfDocument()
doc.LoadFromFile(file)
'save to images
Label4.Text = doc.Pages.Count
For i As Integer = 0 To doc.Pages.Count - 1
Label2.Text = i + 1
Dim fileName As String = String.Format(namefile & "_{0}.jpg", i + 1)
Using image As Image = doc.SaveAsImage(i)
image.Save(startpath & "" & fileName, System.Drawing.Imaging.ImageFormat.Jpeg)
'System.Diagnostics.Process.Start(fileName)
End Using
Next
doc.Close()
doc.Dispose()
End Sub
Dim k As Integer = 0
Dim path As String = ""
Sub search() ' процедура поиска файлов
On Error Resume Next
ListBox1.Items.Clear()
k = 0
For Each foundFile As String In My.Computer.FileSystem.GetFiles(path, FileIO.SearchOption.SearchAllSubDirectories, "*.pdf")
ListBox1.Items.Add(foundFile)
k = k + 1
Label1.Text = k
Next
If ListBox1.Items.Count > 0 Then
ListBox1.SelectedIndex = 0
End If
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim SFD As New FolderBrowserDialog ' выбираем каталог
If SFD.ShowDialog = Windows.Forms.DialogResult.OK Then
TextBox1.Text = SFD.SelectedPath
path = SFD.SelectedPath
search()
Else
Exit Sub
End If
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label2.Visible = False
Label3.Visible = False
Label4.Visible = False
Label6.Visible = False
Label7.Visible = False
ProgressBar1.Visible = False
ProgressBar1.Style = ProgressBarStyle.Marquee
CheckForIllegalCrossThreadCalls = False
End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
ProgressBar1.Visible = False
Label2.Visible = False
Label3.Visible = False
Label4.Visible = False
Label6.Visible = False
Label7.Visible = False
MsgBox("Все файлы успешно конвертированы")
End Sub
End Class