okular
Speichert zumindest Kommentare als Objekte von /Type/Annot
, siehe diese Beispiele für die Syntax:
17 0 obj
<<
/Type/Annot
/Rect[67.023 756.168 85.203 774.333]
/Subtype/Text
/M(D:20170828091301)
/T(■ somebody)
/Contents(■ text)
/NM(okular-{8ff65cc1-7b89-45c6-8adf-1aa6cec06cd0})
/F 4
/C[1 1 0]
/CA 0.5
/Border[0 0 1]
/P 20 0 R
>>
endobj
18 0 obj
<<
/Type/Annot
/Rect[37.7 597.841 236.675 615.979]
/Subtype/FreeText
/DA(/Invalid_font 10 Tf)
/M(D:20170828091316)
/T(■ somebody)
/Contents(■ text)
/NM(okular-{50420111-1c05-4e07-8db5-08deffb0ec7e})
/F 20
/C[1 1 0]
/CA 0.5
/Border[0 0 1]
/Q 0
/IT/FreeText
/P 20 0 R
>>
endobj
Diese Objekte werden mit einem Befehl wie mit Seiten verknüpft. /Annots 14 0 R
So löscht dieses Skript alle Kommentare in einer bestimmten pdf
Datei. Es löscht einfach alle /Annots
Zeilen:
pdftk original.pdf output uncompressed.pdf uncompress
LANG=C sed -n '/^\/Annots/!p' uncompressed.pdf > stripped.pdf
pdftk stripped.pdf output final.pdf compress
Wenn Sie wirklich tief in die Struktur Ihrer spezifischen pdf
Dokumente eintauchen - öffnen Sie sie einfach mit einem Texteditor -, können Sie möglicherweise verstehen, was vor sich geht, und es schaffen, Ihre Dokumente mit z. B. zu manipulieren. sed
Ich bezweifle jedoch ernsthaft, dass es eine passende Lösung gibt jede Art von pdf
Dokument hier. Für das, was es wert ist (zumindest für meine Testdatei), gibt Ihnen der folgende Oneliner die Kommentare input.pdf
in einem Terminal:
pdftk input.pdf output - uncompress | sed '/^\/Contents (/!d'
Fügen Sie >> comments
am Ende dieser Zeile hinzu, um die Ausgabe in einer Datei mit dem Namen zu speichern comments
.