【发布时间】:2018-04-07 18:36:52
【问题描述】:
请告诉我在 iText7 中可以使用什么方法将 pdf 转换为图像。 在 Itexsharp 中,有一个将 pdf 文件转换为图像的选项。以下是链接。使用 iTextSharp 将 PDF 转为图像 http://www.c-sharpcorner.com/UploadFile/a0927b/create-pdf-document-and-convert-to-image-programmatically/
以下是使用以下参考链接创建的示例代码。 itext7 pdf to image 这没有按预期工作。它不会将 pdf 转换为图像。它正在创建一个 1kb 的空白图像。
string fileName = System.IO.Path.GetFileNameWithoutExtension(inputFilePath);
var pdfReader = new PdfReader(inputFilePath);
var pdfDoc = new iText.Kernel.Pdf.PdfDocument(pdfReader);
int pagesLength = pdfDoc.GetNumberOfPages()+1;
for (int i = 1; i < pagesLength; i++)
{
if (!File.Exists(System.IO.Path.Combine(imageFileDir, fileName + "_" +
`enter code here`(startIndex + i) + ".png")) && i < pagesLength)
{
PdfPage pdfPages = pdfDoc.GetPage(i);
PdfWriter writer = new PdfWriter(System.IO.Path.Combine(imageFileDir, fileName + "_" + (startIndex + i) + ".png"), new WriterProperties().SetFullCompressionMode(true));
PdfDocument pdf = new PdfDocument(writer);
PdfFormXObject pageCopy = pdfPages.CopyAsFormXObject(pdf);
iText.Layout.Element.Image image = new iText.Layout.Element.Image(pageCopy);
}
}
【问题讨论】:
-
您的第一个链接不使用 iText 将 pdf 转换为图像。您的第二个链接可以。
-
另外:您正在使用
PdfWriter类创建扩展名为.png的文件。您无法使用PdfWriter实例创建 PNG 文件。我什至会说更多:你不能用 iText 创建 PNG 文件。 iText 不将 PDF 转换为光栅图像(例如 .jpg、.png、...)。您误解了基于现有页面创建Image实例的示例。这些示例创建了一个 XObject,它可以在新的 PDF 中重复使用就好像它是一个矢量图像;他们不会将 PDF 页面转换为光栅图像。