iText pdf 如何提取使用 JBIG2Decode 过滤器解码的图像

问题描述 投票:0回答:0

有谁知道如何使用 iText html2Pdf 库提取图像,这是页面的单色扫描?根据此页面: https://kb.itextpdf.com/home/it7kb/faq/which-image-types-are-supported-by-itext 这个库支持这样的模式/JBIG2。但是当我尝试提取这样的页面时,它显示了一个错误: iText.Kernel.Exceptions.PdfException:“不支持过滤器/JBIG2Decode。”

我正在使用 C# 来做这件事。

这是我的代码示例:

PdfReader reader = new PdfReader(pdfFilePath);
try
{
    using (var pdfDoc = new PdfDocument(reader))
    {
        for (int i = 1; i <= pdfDoc.GetNumberOfPages(); i++)
        {
            PdfDictionary pageDict = pdfDoc.GetPage(i).GetPdfObject();
            PdfDictionary pageResources = pageDict.GetAsDictionary(PdfName.Resources);
            PdfDictionary pageXObjects = pageResources.GetAsDictionary(PdfName.XObject);
            PdfName imgName = pageXObjects.KeySet().First();
            PdfStream imgStream = pageXObjects.GetAsStream(imgName);
            imgStream.SetData(reader.ReadStreamBytesRaw(imgStream));
                        
            PdfArray array = new PdfArray();
            array.Add(PdfName.JBIG2Decode);
            imgStream.Put(PdfName.Filter, array);

            result = imgStream.GetBytes();
        }
    }
}
catch (Exception ex)
{
}
finally
{
    reader.Close();
}
c# pdf itext
© www.soinside.com 2019 - 2024. All rights reserved.