【问题标题】:How to programmatically extract an attachment from a password protected PDF?如何以编程方式从受密码保护的 PDF 中提取附件?
【发布时间】:2014-09-09 07:19:06
【问题描述】:

我有一个受密码保护的 PDF 文档,其中附有一个 CSV 文件。如何以编程方式提取 CSV?我尝试调用 pdftk 来解压附件,但当 PDF 受密码保护时,这似乎不起作用。

    SHELL$ ls
    PDFattCSV.pdf
    SHELL$ pdftk PDFattCSV.pdf unpack_files
    SHELL$ ls
    CSV.csv PDFattCSV.pdf

是否有任何 Perl API 可以做到这一点?

【问题讨论】:

    标签: perl pdf attachment


    【解决方案1】:

    您可以先解密 PDF 文件(其中之一):

    pdftk PDFattCSV.pdf output PDFattCSV_unprotected.pdf user_pw YOURPASSWORD-HERE
    
    pdftk PDFattCSV.pdf output PDFattCSV_unprotected.pdf user_pw YOURPASSWORD-HERE owner_pw YOURPASSWORD-HERE
    
    pdftk PDFattCSV.pdf output PDFattCSV_unprotected.pdf input_pw YOURPASSWORD-HERE
    

    【讨论】:

    • $ pdftk PDFattCSV.pdf input_pw ******** output PDFattCSV_unprotected.pdf Error: Failed to open PDF file: PDFattCSV.pdf OWNER PASSWORD REQUIRED, but not given (or incorrect) Errors encountered. No output created. Done. Input errors, so no output created. 就像我提到的不适用于受密码保护的 PDF。我可以使用此密码在 Adob​​e Reader 中打开 PDF,因此绝对不是密码错误。
    • 还是同样的错误。还尝试了 owner_pw 而不是 user_pw 并使用 PROMPT 选项。两者似乎都不起作用。
    • 尝试了您的编辑和所有其他排列。还是一样的错误。
    【解决方案2】:

    xpdf 中的 pdfdetach 实用程序对我有用:

        SHELL> ls
        PDFattCSV.pdf
        SHELL> pdfdetach -save 1 -upw *** PDFattCSV.pdf
        SHELL> ls
        CSV.csv PDFattCSV.csv
    

    【讨论】:

      猜你喜欢
      • 2016-04-01
      • 2016-06-25
      • 1970-01-01
      • 2011-12-23
      • 1970-01-01
      • 2021-03-28
      • 1970-01-01
      • 2014-09-08
      • 2010-12-13
      相关资源
      最近更新 更多