【问题标题】:FPDI free parser that supports PDF version higher than 1.4支持 PDF 版本高于 1.4 的 FPDI 免费解析器
【发布时间】:2013-06-10 16:55:18
【问题描述】:

是否有可以完成这项工作的免费/开源 PDF 解析器? FPDI 附带的免费解析器仅支持最高 1.4 的 PDF 版本。我试过 TCPDF,但没有用。

我知道我可以通过 Acrobat 更改 PDF 文件的 PDF 版本,但我在执行此操作时遇到了错误。

我正在使用 FPDI 为我们公司销售的 PDF 添加水印。我注意到我通过 Acrobat 从 1.7 降级到 1.4 的其中一个 PDF 看起来几乎相同,但是在我的水印功能完成后,PDF 将在我的封面的右侧和底部有空白区域,其背景为黑色。简而言之,在整个过程之后,PDF 看起来不好卖。

【问题讨论】:

    标签: php fpdi


    【解决方案1】:

    我在我目前正在从事的项目中遇到了同样的限制,并最终基于 TCPDF 的解析器创建了我自己的解析器,该解析器与名为 TCPDI 的 FPDI 的修改版本和 FPDF_TPL 的未修改副本一起使用。它适用于 TCPDF 6,并且至少支持 PDF 1.6(我还没有手边的 1.7 PDF 可供尝试,但我很快就会寻找一个以确保它可以工作)。

    如果您仍然想这样做,请随时尝试TCPDI / tcpdi_parser - 如果您遇到任何问题,请通过 Github 报告,我会调查他们。基本的安装和使用说明可以在TCPDI README找到。

    【讨论】:

    • 干得好!它只能使用 FPDF 吗?我使用 FDPF 创建了所有 PDF,我不想重新访问我的所有功能以适应 TCPDF。谢谢。
    • 您的解析器(或 tcpdi)是否使用密码保护 PDF 文件并且只允许某些权限?我没有在你的代码中看到,所以我不确定。
    【解决方案2】:

    我通过使用pdftk 解压缩PDF,然后将其加载到FPDI,然后使用pdftk 重新压缩它来解决此限制。

    我确实查看了FPDI 的付费许可证,但在尝试编译和运行评估版本时遇到了巨大的困难,并且失去了希望/信心。除了分叉或克隆之外,TCPDI 缺少任何真正的安装路径,而且它们在 PHP 7.4 上看起来充其量都是不完整的。

    installed pdftk on your machine 后,解决方案看起来有点像这样:

    $PDF = new Fpdi();
    try {
        $PDF->setSourceFile('./pdf.pdf');
    } catch (\Exception $exception) {
        if (aBoolFunctionToDetectThisParticularException($exception)) {
            exec('pdftk ./pdf.pdf output ./pdf_expanded.pdf uncompress');
            $PDF->setSourceFile('./pdf_expanded.pdf');
        } else {
            throw $exception;
        }
    }
    

    如果您走这条路,重新压缩是个好主意,因为文件大小的差异很大。

    exec('pdftk ./pdf_expanded.pdf output ./pdf_compressed.pdf compress');
    

    【讨论】:

      【解决方案3】:

      FPDI 允许处理最高版本为 1.4 的 PDF 文件。您可以使用 GHOSTSCRIPT 将任何 PDF 文件转换为 1.4 版,然后再使用 FPDI 进行处理。

      示例代码在我的官网博客this link.

      更新 -

      请立即关注this link。域名已从 webnius.com 更改为 infoconic.com

      【讨论】:

      【解决方案4】:

      因为当您在 FPDI 上搜索时,谷歌搜索结果很高。 付费版可以做到1.4以上:

      https://www.setasign.com/products/fpdi-pdf-parser/details/

      当您喜欢该软件时,购买它不是分配,而是您帮助开发人员。 :)

      【讨论】:

      • 对我来说 100 美元是什么。
      猜你喜欢
      • 2023-04-10
      • 1970-01-01
      • 2011-12-30
      • 2012-08-22
      • 2021-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多