【问题标题】:What to use in place of PdfWriter.AddToBody in iText7?在 iText7 中使用什么代替 PdfWriter.AddToBody?
【发布时间】:2016-12-07 21:07:19
【问题描述】:

PdfWriter 和派生类中的AddToBody 方法似乎在 iText7 中消失了。我本来希望该功能已迁移到 PdfDocument 类,但我不清楚该类或底层编写器是否有类似的东西。我正在尝试将键/值对添加到字典中,其中值是对PdfStream 的间接引用。我的 itext 5 代码如下所示:

dict.Put(new PdfName("IndexerReportNames"), writer.AddToBody(new PdfStream(GetReportNames(reports))).IndirectReference);

问题是,我如何将这个以及类似的代码移植到 iText7?

【问题讨论】:

    标签: c# itext itext7


    【解决方案1】:

    将键/值对添加到字典中,其中值是对PdfStream的间接引用,您实际上不需要将对象写入结果流,您只需需要在给定的PdfDocument 中使其间接。

    在 iText 7 中,您可以对给定的PdfDocument pdfDocument、给定的目标PdfDictionary pdfDictionary 和给定的PdfStream pdfStream 执行此操作:

    pdfStream.MakeIndirect(pdfDocument);
    pdfDictionary.Put(new PdfName("IndexerReportNames"), pdfStream);
    

    如果你也想早点写入结果流,可以马上调用Flush

    pdfStream.Flush();
    

    你也可以写得更紧凑:

    pdfDictionary.Put(new PdfName("IndexerReportNames"), new PdfStream(...).MakeIndirect(pdfDocument));
    

    【讨论】:

      猜你喜欢
      • 2018-11-21
      • 2021-03-07
      • 2017-04-29
      • 2013-12-03
      • 1970-01-01
      • 2020-05-15
      • 2011-10-02
      • 2011-10-12
      • 1970-01-01
      相关资源
      最近更新 更多