【问题标题】:Appending PDFs to generated PDF using iTextSharp使用 iTextSharp 将 PDF 附加到生成的 PDF
【发布时间】:2013-06-06 14:53:01
【问题描述】:

我正在使用 iTextSharp 生成 pdf。如果某些属性为真,那么我还想插入具有静态内容的现有 pdf。

private byte[] GeneratePdf(DraftOrder draftOrder)

  // create a pdf document
  var document = new Document();

  // set the page size, set the orientation
  document.SetPageSize(PageSize.A4);

  // create a writer instance
  var pdfWriter = PdfWriter.GetInstance(document, new FileStream(file, FileMode.Create));

  document.Open();

  if(draftOrder.hasProperty){
    //add these things to the pdf
    var textToBeAdded = "<table><tr>....</table>";
  }
  FormatHtml(document, textToBeAdded , css);

  if(someOtherProperty){
    //add static pdf from file
    document.NewPage();

    var reader = new PdfReader("myPath/existing.pdf");
    PdfImportedPage page;

    for(var i = 0; i < reader.NumberOfPages; i++){
      //It's this bit I don't really understand
      //**how can I add the page read to the document being created?**
    }

我可以从源代码加载 pdf,但是当我遍历页面时,我似乎无法将它们添加到我正在创建的文档中。

干杯

【问题讨论】:

    标签: c# itextsharp


    【解决方案1】:

    请阅读http://manning.com/lowagie2/samplechapter6.pdf

    如果您不介意失去所有交互性,您可以使用 GetImportedPage() 方法从 writer 对象中获取模板,然后使用 AddTemplate () 将其添加到文档中。

    这个问题已经在 StackOverflow 上回答了很多次,你会注意到我总是警告一些危险:你需要意识到导入页面的尺寸可能与你最初定义的页面大小不同。因此,导入页面的不可见部分可以变得可见;可见的部分可以变得不可见。

    我更喜欢使用PdfCopy 在第二次添加额外页面,但也许这只是我。

    【讨论】:

    • 感谢您的回复。我确实环顾四周寻找了几个答案,但没有一个看起来很合适。我确实在使用 java,所以即使我阅读了这一章,我仍然有点卡住。非常感谢 c# 示例。欢呼
    猜你喜欢
    • 2011-06-29
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 2012-11-01
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    相关资源
    最近更新 更多