0

我有一个测试 PDF 文件,每页都有一张图片:4 页,4 张图片。PDF 文件是通过使用 Libre Office 将相应的 Docx 文件转换为 PDF 来创建的。

而且,这里是 С# 一个从 PDF 文档中提取所有图像的函数:

public static void ExtractImages(string filePath)
{
    PDDocument pdfDocument = null;
    try
    {
        pdfDocument = PDDocument.load(filePath);

        List documentPages = pdfDocument.getDocumentCatalog().getAllPages();
        Iterator pagesIterator = documentPages.iterator();
        int i = 1;
        string name = null;
        int pageNumber = 0;

        while (pagesIterator.hasNext())
        {
            PDPage page = (PDPage)pagesIterator.next();
            PDResources resources = page.getResources();
            Map pageImages = resources.getXObjects();

            if (pageImages != null)
            {
                Iterator imageIterator = pageImages.keySet().iterator();
                while (imageIterator.hasNext())
                {
                    string key = (string)imageIterator.next();
                    PDXObjectImage image = (PDXObjectImage)pageImages.get(key);

                    var fileName = "C:\\" + i;
                    image.write2file(fileName);
                    i++;

                }
            }
        }
    }
    finally
    {
        pdfDocument?.close();
    }
}

问题是,那

resources.getXObjects()

方法为文档中的每一页返回 4 张图像。

该问题仅适用于由 libre office 转换的 PDF 文件。所有其他人似乎都可以正常工作。

这里可能有什么问题?

PS:附上测试pdf文件

4

0 回答 0