首页 > 解决方案 > 如何将PDF页面转换为图像并将其插入新的PDF

问题描述

我正在使用 Itext 7 为现有文档添加水印。我的文件是:

   PdfDocument pdfDoc = new PdfDocument(new PdfReader(sourceFile), new PdfWriter(destinationPath));

然后我循环浏览页面:

var numberOfPages = pdfDoc.GetNumberOfPages();
   for (var i = 1; i <= numberOfPages; i++)
                    {
                        page = pdfDoc.GetPage(i);

...watermark building...
page.AddAnnotation(watermark);

page?.Flush();

pdfDoc.Close();

}

虽然我想将此页面作为图像保存到此文档或新的 pdf 文档中。我知道现在有适用于 Java 的 pdfRender,但不适用于 C#。有没有一种方法可以将基于文本的 pdf 保存为基于图像的一个 leyer?基本上我需要展平 PDF 以使所有图层合二为一。所以水印不能用水印去除软件作为一个单独的层去除。

解决方案::更新

我现在有解决方案。我发现 iText 不能做我想做的事(PDFRender 现在在 Java 中可用)。所以我改用 Apitron 从页面生成图像。然后我再次使用 iText 将图像添加到我的新 PDF 文档中。这是一个如何使用 Itext 7 添加图像的示例:https ://www.tutorialspoint.com/itext/itext_adding_image_to_pdf.htm (使用 Image = iText.Layout.Element.Image;)这是一个从 PDF 制作图像的 Apitron 示例页面:https ://github.com/apitron/Apitron.PDF.Rasterizer.Samples/tree/master/ConvertPDFtoBitmap

注意:正如下面的评论所说,.png 的质量很差。所以也许使用 TIFF 格式是件好事。

标签: c#pdfimage-processingitext

解决方案


推荐阅读