首页 文章

用于禁用PDF打印的命令行工具

提问于
浏览
11

有没有人知道一个“免费”命令行工具,可以从一个能够打印它的用户锁定PDF . 我需要能够批量处理这个文件夹并从adobe标准和阅读器中禁用打印 . 是否可以使用任何工具从命令行执行此操作?

2 回答

  • 15

    首先,pdftk:

    您可以使用 pdftk (适用于Linux,Unix,Mac OS X和Windows)来设置"owner password":

    pdftk \
      input.pdf \
      output semi-protected.pdf \
      owner_pw "supersecret"
    

    结果就是这样,例如:

    pdfinfo semi-protected.pdf | grep Encrypted:
    
      Encrypted:      yes (print:no copy:no change:no addNotes:no)
    

    您可以修改命令以另外需要用户密码来打开PDF:

    pdftk \
      input.pdf \
      output semi-semi-protected.pdf \
      owner_pw "supers3cr3t" \
      user_pw "s3cr3t"
    

    您可以修改命令以(有选择地)“允许”其他用户操作:

    pdftk \
      input.pdf \
      output semi-semi-protected.pdf \
      owner_pw "supers3cr3t" \
      allow ModifyContents \
      allow CopyContents \
      allow ScreenReaders \
      allow ModifyAnnotations
    

    结果可能是这个,例如:

    pdfinfo semi-semi-protected.pdf | grep Encrypted:
    
      Encrypted:      yes (print:no copy:yes change:yes addNotes:yes)
    

    二,podofoencrypt:

    命令行示例:

    podofoencrypt \
       --rc4v2 \
       -o "supers3cr3t" \
       -u "s3cr3t" \
       --edit \
       --copy \
       --editnotes \
       --fillandsign \
       --accessible \
       --assemble \
         input.pdf \
         semi-protected.pdf
    

    Big, fat caveat:

    您应该知道,这种'protecting' PDF文件绝不是超级安全的 . 有很多PDF破解软件实用程序可以轻松地保护您的PDF文件 . 此方法只是防止大多数noobie计算机用户弄乱文件的一种非常基本的方法 .


    另外,另见

    三,qpdf:

    Martin Schröder's answer

  • 12

    qpdf可以这样做:

    qpdf                 \
      --encrypt          \
        "user-password"  \
        "owner-password" \
        40               \
      --print=n          \
      --                 \
        infilename       \
        outfilename
    

    甚至

    qpdf                 \
      --encrypt          \
        "user-password"  \
        "owner-password" \
        128              \
      --print=non        \
      --accessiblity=y   \
      --force-V4         \
      --modify=form      \
      --                 \
        infilename       \
        outfilename
    

相关问题