小编nra*_*atx的帖子

如何使用iText以正确的顺序从PDF中提取图像?

我试图从PDF文件中提取图像.我在网上找到了一个很好的例子:

    PdfReader reader;

    File file = new File("example.pdf");
    reader = new PdfReader(file.getAbsolutePath());
    for (int i = 0; i < reader.getXrefSize(); i++) {
        PdfObject pdfobj = reader.getPdfObject(i);
        if (pdfobj == null || !pdfobj.isStream()) {
            continue;
        }
        PdfStream stream = (PdfStream) pdfobj;
        PdfObject pdfsubtype = stream.get(PdfName.SUBTYPE);
        if (pdfsubtype != null && pdfsubtype.toString().equals(PdfName.IMAGE.toString())) {
            byte[] img = PdfReader.getStreamBytesRaw((PRStream) stream);
            FileOutputStream out = new FileOutputStream(new File(file.getParentFile(), String.format("%1$05d", i) + ".jpg"));
            out.write(img);
            out.flush();
            out.close();
        }
    }
Run Code Online (Sandbox Code Playgroud)

这给了我所有的图像,但图像的顺序错误.我的下一次尝试看起来像这样:

for (int i = 0; i <= reader.getNumberOfPages(); …
Run Code Online (Sandbox Code Playgroud)

java pdf itext

9
推荐指数
1
解决办法
3万
查看次数

标签 统计

itext ×1

java ×1

pdf ×1