gpt4 book ai didi

itext - 使用 iText 和 Java 保存 tiff CCITTFaxDecode(来自 PDF 页面)

转载 作者:行者123 更新时间:2023-12-04 20:20:42 25 4
gpt4 key购买 nike

我正在使用 iText 提取嵌入的图像并将它们保存为单独的文件。 .jpg 和 .png 文件没有问题,但我无法提取具有 CCITTFaxDecode 编码的 tiff 图像。

有没有人有保存tiff文件的方法?

我在以下位置找到了一些使用 iTextSharp 的示例 C# 代码
Extracting image from PDF with /CCITTFaxDecode filter
它表示需要一个单独的 tiff 库来写出结果。根据那篇文章,tiff 库的“CCITTFaxDecode”压缩是 Compression.CCITTFAX4。

要使用该文章的方法,我需要:
1. 获取 tiff 库。
Java Image I/O API 将允许您读取和写入其他格式的 TIFF 文件。
BufferedImage image = ImageIO.read( new File( "image.tif") );

  • 找出从 PDF 中获取位图属性的等效代码,例如:
    pd.Get(PdfName.WIDTH).ToString()(在 C# 中)
  • 最佳答案

    我通过以下方式从扫描的 pdf 中提取了 tiff 图像(即作为图像的每一页):

    ...
    PdfReader reader = new PdfReader("source.pdf");
    PdfReaderContentParser parser = new PdfReaderContentParser(reader);
    MyImageRenderListener listener = new MyImageRenderListener("destination.jpg");
    for (int i = 1; i <= reader.getNumberOfPages(); i++) {
    parser.processContent(i, listener);
    }
    ...

    MyImageRenderListener.class 的代码:
    class MyImageRenderListener implements RenderListener {
    protected String path = "";

    public MyImageRenderListener(String path) {
    this.path = path;
    }

    public void beginTextBlock() {
    }

    public void endTextBlock() {
    }

    public void renderImage(ImageRenderInfo renderInfo) {
    try {
    String filename;
    FileOutputStream os;
    PdfImageObject image = renderInfo.getImage();
    PdfName filter = (PdfName) image.get(PdfName.FILTER);

    if (PdfName.CCITTFAXDECODE.equals(filter)) {
    BufferedImage bufferedImage = image.getBufferedImage();
    ImageIO.write(bufferedImage, "jpg", new FileOutputStream(filename));// save tif image as jpg


    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    public void renderText(TextRenderInfo renderInfo) {
    }
    }

    关于itext - 使用 iText 和 Java 保存 tiff CCITTFaxDecode(来自 PDF 页面),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6851385/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com