我正在使用IText 7,我已经能够获取一个 html 页面并为该页面生成 pdf,但我需要从多个 html 页面生成一个 pdf 文档并按页面分隔。例如:我有Page1.html、Page2.html和Page3.html。我需要一个 3 页的 pdf 文档,第一页的内容为Page1.html,第二页的内容为Page2.html等等...
这是我的代码,它适用于一个 html 页面:
ConverterProperties properties = new ConverterProperties();
PdfWriter writer = new PdfWriter(pdfRoot, new WriterProperties().SetFullCompressionMode(true));
PdfDocument pdfDocument = new PdfDocument(writer);
pdfDocument.AddEventHandler(PdfDocumentEvent.END_PAGE, new HeaderPdfEventHandler());
HtmlConverter.ConvertToPdf(htmlContent, pdfDocument, properties);
是否可以循环多个 html 页面,为每个 html 页面添加一个新页面到 PdfDocument,然后仅生成一个 pdf,每个 html 页面一页?
更新
我一直在关注这个示例并尝试将其从 Java 转换为 C#,我尝试使用PdfMerger并循环 html 页面...但我Cannot access a closed stream在这一行收到 Exception :
temp = new PdfDocument(
new PdfReader(new RandomAccessSourceFactory().CreateSource(baos), rp));
看起来和ByteArrayOutputStream baos实例有关。有什么建议么?这是我当前的代码:
foreach (var html in htmlList)
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfDocument temp = new PdfDocument(new PdfWriter(baos));
HtmlConverter.ConvertToPdf(html, temp, properties);
ReaderProperties rp = new ReaderProperties();
temp = new PdfDocument(
new PdfReader(new RandomAccessSourceFactory().CreateSource(baos), rp));
merger.Merge(temp, 1, temp.GetNumberOfPages());
temp.Close();
}
pdfDocument.Close();
摇曳的蔷薇
呼如林
相关分类