2016-12-15 20 views
-3

我是新来的。我正在编写一个程序并使用itextsharp。我想导入各种文件,然后保存它们。不幸的是,我不明白,第二页是阅读。第一页kappt super的编辑。这里是我的代码:iTextSharp - 另请参阅第二页

 If ComboBox1.SelectedItem = "DPD" Then 


     Dim oldFile As String = "templates/dpd-schadenformular.pdf" 
     Dim newFile As String = "output/DPD-Output.pdf" 

     ' Create reader 
     Dim reader As New PdfReader(oldFile) 
     Dim size As Rectangle = reader.GetPageSizeWithRotation(1) 
     Dim document As New Document(size) 

     ' Create the writer 
     Dim fs As New FileStream(newFile, FileMode.Create, FileAccess.Write) 
     Dim writer As PdfWriter = PdfWriter.GetInstance(document, fs) 
     document.Open() 
     Dim cb As PdfContentByte = writer.DirectContent 

     ' Set the font, color and size properties for writing text to the PDF 
     Dim bf As BaseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED) 
     cb.SetColorFill(BaseColor.DARK_GRAY) 
     cb.SetFontAndSize(bf, 8) 

     ' Write text in the PDF 
     cb.BeginText() 

     Dim kundennummer As String = "Kundennummer " & Form3.dpdkdnr.Text 

     Dim trackid1 As String = track1.Text 
     Dim trackid2 As String = track2.Text 

     Dim descr As String = beschreibungschaden.Text 
     Dim warenart As String = paketinhalt.Text 

     Dim empfnam As String = empfnamebox.Text 
     Dim empfstr As String = empfstrbox.Text 
     Dim empfplz As String = empfplzbox.Text 





     ' Set the alignment and coordinates here 
     cb.ShowTextAligned(1, kundennummer, 360, 638, 0) 

     cb.ShowTextAligned(1, trackid1, 336, 685, 0) 
     cb.ShowTextAligned(1, trackid2, 430, 685, 0) 

     cb.ShowTextAligned(1, descr, 150, 135, 0) 
     cb.ShowTextAligned(1, warenart, 90, 235, 0) 

     cb.ShowTextAligned(1, empfnam, 370, 441, 0) 
     cb.ShowTextAligned(1, empfstr, 370, 416, 0) 
     cb.ShowTextAligned(1, empfplz, 370, 381, 0) 



     cb.EndText() 

     ' Put the text on a new page in the PDF 
     Dim page As PdfImportedPage = writer.GetImportedPage(reader, 1) 
     cb.AddTemplate(page, 0, 0) 

     ' Close the objects 
     document.Close() 
     fs.Close() 
     writer.Close() 
     reader.Close() 


     ' ----------------------------------------------- 
     ' ----------------------------------------------- 
     ' --------------------- DPD Ende ---------------- 
     ' ----------------------------------------------- 
     ' ----------------------------------------------- 

    End If 

关于方法,解决方案或帮助,我会真的很高兴,谢谢你提前

莫里斯

+0

** A **使用'PdfWriter'合并来自不同文档的页面通常是不错的选择;而应该使用'PdfCopy'(它甚至可以在复制的页面上打印)。 ** B **如果由于某种原因,您的情况是规则的例外情况,并且'PdfWriter'use是合适的,请使用'document.NewPager()'并且可能是一个循环。 – mkl

+0

哇谢谢你的快速反馈:)因为我没有那么多的经验,你能给我一个例子吗? '提前谢谢你:( – Maurice

+0

我上次做VB编码是在20世纪90年代后期,所以恐怕我不是快速构建VB示例的人... – mkl

回答

0

下面是我用它来添加新的页面的方法目的地文件。

'myarray is the document to be added, mydoc is the document added to 

Public Function AdddbFiletoDoc(myarray() As Byte, mydoc As Document, mywriter As PdfWriter, mycb As PdfContentByte) 
    Dim myreader As New PdfReader(myarray) 
    Dim numofPages As Integer = myreader.NumberOfPages, mypage As PdfImportedPage 
    Dim currpage As Integer = 0 
    Do While currpage < numofPages 
     currpage += 1 
     mydoc.SetPageSize(PageSize.A4) 
'You can add a flag to the method to determine if you want a new page or not 
     mydoc.NewPage() 
     mypage = mywriter.GetImportedPage(myreader, currpage) 
     mycb.AddTemplate(mypage, 1.0F, 0, 0, 1.0F, 0, 0) 
    Loop 

End Function 
+0

谢谢你haim katz,我的问题不幸的是,这个源文件有pdf 2个方面,我想简单地阅读这些文件,并且希望将它们存储在它上面,我不是视觉基础上的profi,如果任何人有1:1的解决方案,我会真的感谢。 – Maurice

+0

我不明白你在哪里存储pdf。在数据库中?在同一页上? –