2017-03-21 71 views
0

我在写一个“combine”.pdf文件应用程序。我使用下面的代码生成的.pdf文件导致无法由Adobe打开的.pdf文件。这是我执行的代码:iTextSharp创建一个损坏的.pdf文件

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 

我重视,我作为输入,以及所产生的.pdf文件2 .pdf文件(甚至通过Adobe表示,它无法打开)。

任何帮助,非常感谢。

谢谢 乔纳森

+0

双源文件可以在这里找到: https://www.accurecord-direct.com/pdffiles /confirms/8462_C05i8y456t2i0k0z0p0u1sevke0nwdqvkudg20170321113741.pdf 和https://www.accurecord-direct.com/PDFFILES/Confirms/VSTA_C05s7q717a7x707x7a7o7pvety4lzxw3ucog20170321125034.pdf –

+0

和生成的文件可以在这里找到:https://www.accurecord-direct.com/PDFFILES /确认/确认_2017_03_21.pdf –

+1

我没有看到你最终关闭文档。你只是忘了复制和粘贴?或者你真的不关闭它? – mkl

回答

2

你忘了最终关闭Document document

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

你说得对。我忘记关闭文件。不幸的是,在添加该行代码后,生成的.pdf文件仍然无效。 –

+0

@Jonathan请分享创建的结果文件。 – mkl

+0

以下链接指向生成的文件:accurecord-direct.com/PDFFILES/Confirms/confirms_2017_03_21. pdf –