【问题标题】:determine if PDF file is openable and not corrupt确定 PDF 文件是否可打开且未损坏
【发布时间】:2012-05-07 19:23:34
【问题描述】:

如果有人有可靠的方法来确定 PDF 文档是否真的是 PDF 文档并且它没有损坏,我正在徘徊。

我在我的系统上生成报告,我想确定另一个系统返回的数据包含可打开的 PDF 文档(并且数据没有损坏)。

目前,我基本上是在查看字符串长度(PDF 被存储到变量中,而不是物理文件中)。 在 PHP 中执行此操作的任何建议都会很棒。

【问题讨论】:

    标签: php pdf


    【解决方案1】:

    如果您只是想确保文件是 PDF 文件,而不检查它是否是完全完整的 pdf 文件,您可以读取文件的前 5 个字节,对于 PDF 文件,它们将是等于字符串“%PDF-”

    这就是 linux 中的file 程序识别 PDF 文件的方式。

    但如果你想绝对确定文件中的任何地方都没有错误,你可以运行一个处理整个文件的程序,看看该程序是否返回成功。

    在 linux 中,您可以使用 ghostscript ("gs") 将 PDF 文档呈现为任何格式。

    或者你也可以安装acrobat reader,将acroread作为命令行程序运行,将其转换为postscript:

    acroread -print -toPostScript [your_file.pdf]
    

    要执行上述任一操作,您需要使用system PHP 函数。要检查程序是否成功运行,您需要将第二个参数中的变量传递给将接收返回状态的system

    【讨论】:

      【解决方案2】:

      可以使用pdfinfocentos安装命令:

      yum install poppler-utils
      

      ... 并使用pdfinfo 命令。 PHP代码如下:

      if(!exec("pdfinfo test.pdf")){
        echo "file is corrupted"
      }
      

      【讨论】:

        猜你喜欢
        • 2012-02-08
        • 2020-01-17
        • 2021-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多