PdfWriter和派生类中的AddToBody
方法似乎在iText7中消失了。我本以为要将这些功能迁移到PdfDocument类,但我不清楚该类或底层编写器是否有类似的东西。我正在尝试将键/值对添加到字典中,其中值是对PdfStream
的间接引用。我的itext 5代码看起来像这样:
dict.Put(new PdfName("IndexerReportNames"), writer.AddToBody(new PdfStream(GetReportNames(reports))).IndirectReference);
问题是,如何将此端口以及类似的代码移植到iText7?
答案 0 :(得分:2)
要将键/值对添加到字典中,其中值是对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));