PDFファイルからコメントを一括削除する


18

フォルダー内のすべてのPDFからすべてのコメントと注釈(Foxit Readerで追加)を簡単に削除するにはどうすればよいですか?


1
無料(ビールなど)または無料(リバティなど)のソリューションのみの提案が必要だと考えるのは妥当な仮定ですか?
カートPfeifle

@pipitasあらゆる種類のソリューションに興味があります。
アンドリュー

回答:


7

私はちょうどこの問題を乗り越えました、そして、ここで与えられた答えのどれも私のために働きませんでした。何やった仕事だったrewritepdfUbuntuのパッケージからツールlibcam-pdf-perl

rewritepdf -C in.pdf out.pdf

これを小さなスクリプトにラップして、ディレクトリ内のすべてのpdfファイルから注釈を削除するのが簡単になりました。

for i in *.pdf; do rewritepdf -C '$i' '$i'.new; done

それは罰金を働いた:)いくつかの助け:Ubuntuの(すなわち、Debianの)パッケージはここにあるpackages.debian.org/sid/perl/libcam-pdf-perl 依存関係を自動的に「Ubuntuのソフトウェアセンター」を使用してインストールされています。(ああ、大文字の「-C」に注意してください。最初に「-c」を実行しましたが、エラーは出力されませんでした。)
loved.by.Jesus

5

Unixシステムを使用している場合:

cd <directory containing PDFs>
find . -type f -name '*.pdf' -exec perl -pi -e 's:/Annots \[[^]]+\]::g' {} +

これは/Annots、PDFからすべてのコマンド(注釈を描画するコマンド)を削除するハックです。注釈オブジェクトはそのまま(テキストエディターでPDFを開いて検索できます)、描画されません。


REを説明できますか?[^]] +の一致
-jftuga

1
@jftuga、s:(substitute)/Annots \[(テキスト " /Annots [")[^]]+( " ]" 以外の任意の文字の1つ以上のインスタンス)\](リテラル文字 " ]")::(前者と一致するものは何も置き換えない)g(必要に応じて1行に複数回置き換えます)
Divinenephron

1
正規表現の混乱を招く可能性のある部分の1つは、リテラル]は通常エスケープする必要がありますが、^否定の直後ではないことです。
ディビネネフロン

これにより、内部ドキュメントリンクも削除されます(これらはpdfでも/ Annotsとして実装されていると思います)
アレックジェイコブソン

3

十分にテストしていませんが、次のように動作するようです。内部ドキュメントリンク(ここでの答えはいずれも実行しないようです)を除くすべての注釈を削除します。このスクリプトは、pdfrw pythonライブラリに依存しています。

#!/usr/bin/python

import sys, pdfrw

try:
    in_path = sys.argv[1]
    out = sys.argv[2]
except:
    print("Usage:\tannotclean IN.pdf OUT.pdf")
    exit(0)

reader = pdfrw.PdfReader(in_path)

for p in reader.pages:
    if p.Annots:
        # See PDF reference, Sec. 12.5.6 for all annotation types
        p.Annots = [a for a in p.Annots if a.Subtype == "/Link"]

pdfrw.PdfWriter(out, trailer=reader).write()

使用法:

  1. どこかにスクリプトとして保存します(私はあなたの中にあると仮定しますPATH/usr/local/bin/annotclean
  2. annotclean in.pdf cleaned.pdf
  3. (オプション)バッチ処理:
# fish shell syntax
for p in **pdf # pdfs from current directory and subdirectories
    annotclean $p $p.new
    mv $p.new $p # overwrite the old
end 

2

PDFを「再試行」することで最も簡単にできると思います。再試行とは、最初にファイルをPostScriptに変換してから、PostScriptをPDFに戻すことです。通常、品質と一部のコンテンツを失うため、再試行は眉をひそめます。あなたの場合は、コンテンツを失いたいです。再フライはGhostscript(および付属のヘルパーバッチファイルgs900w32.exe-Windowsを使用している場合はダウンロードしてください)を使用して行うことができるため、次の2つの簡単なコマンドを使用します。

pdf2ps.bat input.pdf output.ps
ps2pdf.bat output.ps input_refried.pdf

1
これは機能しません。書き込まれたコメントは残ります(コメントとしてではなく、pdfの一部として)。
アンドリュー

2
コメントが実際にPDFのコンテンツに追加される場合、手動でのみ削除できます。実際のPDF注釈は別です。
CarlF

コンバーターを使用しない方法はありますか?
ユーザー

これにより、内部ドキュメントリンクも削除されます。
アレックジェイコブソン

@AlecJacobson:もちろんです。PostScriptに変換すると、PDFの一部であった「リッチ」コンテンツの多くが失われます。PostScriptは....ていなくても内部文書リンク、すべてのリンクを表現する手段を持っていません
クルトPfeifle

2

OK、あなたは商用ソリューションも検討すると言いました...

callas pdfToolboxを試すことをお勧めします。WindowsおよびMac OS Xで使用できます(LinuxのCLIもありますが、事前に構成された「プロファイル」のみを使用できます。WindowsGUIを使用すると、カスタムプロファイルを作成して再利用できます。ただし、Linux CLI。

pdfToolboxには、個々のPDFの多くの問題を操作および修正するためのたくさんの方法があります。

「修正」の1つは、すべての注釈を削除することです。

最初にテストするためにお金を払う必要はありません。カラスは14日間の試用ライセンスを無料で提供します。


実際、すべての注釈を削除する方法がありますが、バッチジョブを実行する方法がわかりません。
アンドリュー

以前のバージョン---しかし、最新のpdfToolbox5リリースについて知らんは..... PDFファイルを含むフォルダ全体に対してバッチモードで実行することができます
クルトPfeifle
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.