okularSpeichert 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 RSo löscht dieses Skript alle Kommentare in einer bestimmten pdfDatei. Es löscht einfach alle /AnnotsZeilen:
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 pdfDokumente 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. sedIch bezweifle jedoch ernsthaft, dass es eine passende Lösung gibt jede Art von pdfDokument hier. Für das, was es wert ist (zumindest für meine Testdatei), gibt Ihnen der folgende Oneliner die Kommentare input.pdfin einem Terminal:
pdftk input.pdf output - uncompress | sed '/^\/Contents (/!d'
Fügen Sie >> commentsam Ende dieser Zeile hinzu, um die Ausgabe in einer Datei mit dem Namen zu speichern comments.