You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将PDF转为可通过Asterisk传真的TIFF文件遇阻,求技术指导

问题:PDF转TIFF后无法通过Asterisk发送传真

我正尝试将PDF转换为可通过Asterisk发送传真的TIFF文件,目前遇到了困难。PDF工具库虽具备此功能但并非免费,不过相关文档指定了几个关键设置:

  • 压缩算法:CCITT Group 3或CCITT Group 4
  • 垂直分辨率:98 DPI(标准)或196 DPI(高)

我已配置好这些设置,用Linux的tiffInfo检查输出文件一切正常,但Asterisk仍无法发送传真。这些是传真通用标准设置而非Asterisk专属,希望有人能指出我可能遗漏或出错的地方。

以下是我的Java代码:

public static InputStream toTIFF(InputStream pdfInputStream) {
    PDDocument document = null;
    ImageOutputStream imageOutputStream = null;
    ByteArrayOutputStream pdfOutputStream = new ByteArrayOutputStream();
    try {
        document = Loader.loadPDF(IOUtils.toByteArray(pdfInputStream));
        imageOutputStream = ImageIO.createImageOutputStream(pdfOutputStream);
        Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("tiff");
        ImageWriter writer = writers.next();
        writer.setOutput(imageOutputStream);
        ImageWriteParam writeParam = writer.getDefaultWriteParam();
        writeParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
        writeParam.setCompressionType("CCITT T.6");
        PDFRenderer pdfRenderer = new PDFRenderer(document);
        writer.prepareWriteSequence(null);
        for (int pageIndex = 0; pageIndex < document.getNumberOfPages(); pageIndex++) {
            BufferedImage image = pdfRenderer.renderImageWithDPI(pageIndex, 98, ImageType.BINARY);
            BufferedImage bwImage = new BufferedImage(image.getWidth(), image.getHeight(),
                    BufferedImage.TYPE_BYTE_BINARY);
            Graphics2D g2d = bwImage.createGraphics();
            g2d.drawImage(image, 0, 0, Color.WHITE, null);
            g2d.dispose();
            IIOImage ioImage = new IIOImage(bwImage, null, null);
            writer.writeToSequence(ioImage, writeParam);
        }
        writer.endWriteSequence();
        writer.dispose();
        document.close();
        imageOutputStream.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return new ByteArrayInputStream(pdfOutputStream.toByteArray());
}

内容的提问来源于stack exchange,提问作者Imo Graf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 14:54:58