Конвертация всех 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

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


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

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

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