WIP: PDF Attachment Extractor

This commit is contained in:
Jonathan Jenne 2020-03-04 14:44:18 +01:00
parent ea4673f161
commit b995304ee3
4 changed files with 63 additions and 0 deletions

View File

@ -27,6 +27,7 @@ Partial Class Form1
Me.Button1 = New System.Windows.Forms.Button() Me.Button1 = New System.Windows.Forms.Button()
Me.Button2 = New System.Windows.Forms.Button() Me.Button2 = New System.Windows.Forms.Button()
Me.Button3 = New System.Windows.Forms.Button() Me.Button3 = New System.Windows.Forms.Button()
Me.Button4 = New System.Windows.Forms.Button()
Me.SuspendLayout() Me.SuspendLayout()
' '
'TextBox1 'TextBox1
@ -67,11 +68,21 @@ Partial Class Form1
Me.Button3.Text = "Load Form4" Me.Button3.Text = "Load Form4"
Me.Button3.UseVisualStyleBackColor = True Me.Button3.UseVisualStyleBackColor = True
' '
'Button4
'
Me.Button4.Location = New System.Drawing.Point(12, 96)
Me.Button4.Name = "Button4"
Me.Button4.Size = New System.Drawing.Size(637, 23)
Me.Button4.TabIndex = 3
Me.Button4.Text = "Extract Files from PDF"
Me.Button4.UseVisualStyleBackColor = True
'
'Form1 'Form1
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450) Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Controls.Add(Me.Button4)
Me.Controls.Add(Me.Button3) Me.Controls.Add(Me.Button3)
Me.Controls.Add(Me.Button2) Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.Button1) Me.Controls.Add(Me.Button1)
@ -87,4 +98,5 @@ Partial Class Form1
Friend WithEvents Button1 As Button Friend WithEvents Button1 As Button
Friend WithEvents Button2 As Button Friend WithEvents Button2 As Button
Friend WithEvents Button3 As Button Friend WithEvents Button3 As Button
Friend WithEvents Button4 As Button
End Class End Class

View File

@ -1,4 +1,5 @@
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports GdPicture14
Public Class Form1 Public Class Form1
Private oSubform As Form3 Private oSubform As Form3
@ -35,4 +36,44 @@ Public Class Form1
MsgBox(ex.Message) MsgBox(ex.Message)
End Try End Try
End Sub End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Using oGdPicturePDF As GdPicturePDF = New GdPicturePDF()
If oGdPicturePDF.LoadFromFile(TextBox1.Text, False) = GdPictureStatus.OK Then
Dim embeddedFileCount As Integer = oGdPicturePDF.GetEmbeddedFileCount()
If oGdPicturePDF.GetStat() = GdPictureStatus.OK Then
If embeddedFileCount > 0 Then
Dim FileName As String = oGdPicturePDF.GetEmbeddedFileName(0)
If oGdPicturePDF.GetStat() = GdPictureStatus.OK Then
Dim FileSize As Integer = oGdPicturePDF.GetEmbeddedFileSize(0)
If oGdPicturePDF.GetStat() = GdPictureStatus.OK Then
Dim FileData As Byte() = New Byte(FileSize) {}
Dim status As GdPictureStatus = oGdPicturePDF.ExtractEmbeddedFile(0, FileData)
If status = GdPictureStatus.OK Then
MessageBox.Show("The content of the first embedded file has been extracted successfully.", "Example: Emdedded files (Attachments)", MessageBoxButtons.OK, MessageBoxIcon.Information)
Dim oFileStream As System.IO.FileStream = Nothing
oFileStream = New System.IO.FileStream(FileName + "_content.dat", System.IO.FileMode.Create)
oFileStream.Write(FileData, 0, FileData.Length)
oFileStream.Close()
MessageBox.Show("The content of the embedded file has been saved successfully.", "Example: Emdedded files (Attachments)", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
MessageBox.Show("The embedded file has failed to extract. Status: " + status.ToString(), "Example: Emdedded files (Attachments)", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Else
MessageBox.Show("An error occurred getting the file size. Status: " + oGdPicturePDF.GetStat().ToString(), "Example: Emdedded files (Attachments)", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Else
MessageBox.Show("An error occurred getting the file name. Status: " + oGdPicturePDF.GetStat().ToString(), "Example: Emdedded files (Attachments)", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Else
MessageBox.Show("This PDF file does not contain embedded files.", "Example: Emdedded files (Attachments)", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Else
MessageBox.Show("An error occurred getting the number of embedded files. Status: " + oGdPicturePDF.GetStat().ToString(), "Example: Emdedded files (Attachments)", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Else
MessageBox.Show("The file can't be loaded.", "Example: Emdedded files (Attachments)", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End Using
End Sub
End Class End Class

View File

@ -0,0 +1,9 @@
Public Class PDFAttachments
Public Sub New(GdPictureKey As String)
End Sub
Public Shared Function Extract(FileName As String)
Using oGDPicturePDF As New GDPicturePDF
End Function
End Class

View File

@ -88,6 +88,7 @@
<Compile Include="EDMI\GraphQL\GraphQLJob.vb" /> <Compile Include="EDMI\GraphQL\GraphQLJob.vb" />
<Compile Include="EDMI\ZUGFeRD\EmailData.vb" /> <Compile Include="EDMI\ZUGFeRD\EmailData.vb" />
<Compile Include="EDMI\ZUGFeRD\ImportZUGFeRDFiles.vb" /> <Compile Include="EDMI\ZUGFeRD\ImportZUGFeRDFiles.vb" />
<Compile Include="EDMI\ZUGFeRD\PDFAttachments.vb" />
<Compile Include="EDMI\ZUGFeRD\PropertyValues.vb" /> <Compile Include="EDMI\ZUGFeRD\PropertyValues.vb" />
<Compile Include="EDMI\ZUGFeRD\WorkerArgs.vb" /> <Compile Include="EDMI\ZUGFeRD\WorkerArgs.vb" />
<Compile Include="EDMI\ZUGFeRD\XmlItemProperty.vb" /> <Compile Include="EDMI\ZUGFeRD\XmlItemProperty.vb" />