2017-03-21 3 views
0

Ich schreibe eine "kombinieren" .pdf Dateianwendung. Die PDF-Datei, die ich mit dem folgenden Code erzeuge, führt zu einer PDF-Datei, die von Adobe nicht geöffnet werden kann. Dies ist der Code, den ich bin Ausführung:iTextSharp erstellt eine beschädigte .pdf-Datei

Dim doc_fs = CreateObject("Scripting.FileSystemObject") 
Dim document_path = "C:\pdffilesfolder\" 
Dim document_folder = doc_fs.GetFolder(document_path) 

Dim dateArray() As String 
dateArray = lblDateToPrint.Text.Split("/") 'lblDateToPrint.Text contains "3/21/2017" 
If Val(dateArray(0)) < 10 Then 
    dateArray(0) = "0" & dateArray(0) 
End If 
If Val(dateArray(1)) < 10 Then 
    dateArray(1) = "0" & dateArray(1) 
End If 

Dim outFile as string = document_path & "\confirms_" & dateArray(2) & "_" & dateArray(0) & "_" & dateArray(1) & ".pdf"  
Dim document = New Document 
Dim writer As PdfCopy = New PdfCopy(document, New FileStream(outFile, FileMode.Create)) 
document.Open() 


Dim fileOnServer As String = "" 
Dim fileOnServerDate As String = "" 

For Each item In document_folder.Files 
     fileOnServer = item.path 
     Dim reader As PdfReader = New PdfReader(fileOnServer) 
     writer.AddDocument(reader) 
     reader.Close() 
Next 

ich die 2 PDF-Dateien angehängt habe, die ich als Eingang verwenden sowie die resultierenden PDF-Datei (auch nicht durch Adobe sagt, es kann nicht geöffnet werden).

Jede Hilfe wird sehr geschätzt.

Danke, Jonathan

+0

Die 2-Quelldateien finden Sie hier: https://www.accurecord-direct.com/pdffiles /confirms/8462_C05i8y456t2i0k0z0p0u1sevke0nwdqvkudg20170321113741.pdf und https://www.accurecord-direct.com/PDFFILES/Confirms/VSTA_C05s7q717a7x707x7a7o7pvety4lzxw3ucog20170321125034.pdf –

+0

und die resultierende Datei kann hier gefunden werden: https://www.accurecord-direct.com/PDFFILES/Bestätigt/bestätigt _2017_03_21.pdf –

+1

Ich sehe Sie nicht, das Dokument schließlich zu schließen. Hast du nur vergessen zu kopieren und einfügen? Oder schließt du es eigentlich nicht? – mkl

Antwort

2

Sie schließlich die Document document schließen vergessen zu:

Dim document = New Document 
Dim writer As PdfCopy = New PdfCopy(document, New FileStream(outFile, FileMode.Create)) 
document.Open() 

Dim fileOnServer As String = "" 
Dim fileOnServerDate As String = "" 

For Each item In document_folder.Files 
    fileOnServer = item.path 
    Dim reader As PdfReader = New PdfReader(fileOnServer) 
    writer.AddDocument(reader) 
    reader.Close() 
Next 

document.Close() ' Don't forget to close the document! 
+0

Sie haben Recht. Ich habe vergessen, das Dokument zu schließen. Nach dem Hinzufügen dieser Codezeile ist die resultierende PDF-Datei leider immer noch nicht gültig. –

+0

@ Jonathan bitte teilen Sie eine Ergebnisdatei mit dem Schließen erstellt. – mkl

+0

Hier ist ein Link zu der resultierenden Datei: accurecord-direct.com/PDFFILES/Confirms/confirms_2017_03_21.pdf –

Verwandte Themen