【问题标题】:iText7 Convert PDF to ImageiText7 将 PDF 转换为图像
【发布时间】: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 页面转换为光栅图像。

标签: c# itext7


【解决方案1】:

引用布鲁诺的话:

iText 不会将 PDF 转换为光栅图像(例如 .jpg、.png、...)。您误解了基于现有页面创建 Image 实例的示例。这些示例创建了一个可以在新 PDF 中重复使用的 XObject,就好像它是矢量图一样;他们不会将 PDF 页面转换为光栅图像。

您可以使用 GhostScript(这是我们 iText 内部用于测试的)是 GhostScript。它以 pdf 作为输入并将其转换为一系列图像(每页一张图像)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-01
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多