J'ai deux versions du même document PDF. L'une contient des annotations que je lisais sur mon ordinateur portable, tandis que l'autre des annotations que je lisais sur une tablette. Maintenant, je veux fusionner ces annotations dans le même fichier.
Je sais qu'Adobe Acrobat me permet de le faire (voir par exemple cette réponse sur Ask Different ). Y a-t-il un logiciel que je peux utiliser dans Ubuntu qui me permette de le faire?
Pour ce que cela vaut, j'utilise Xodo sur la tablette.
Au moins okular
stocke les commentaires en tant qu'objets de /Type/Annot
, voir les exemples suivants pour la syntaxe:
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
Ces objets sont liés aux pages en utilisant une commande telle que /Annots 14 0 R
, qui est comment ce script supprime tous les commentaires dans un fichier pdf
donné, il supprime simplement tous les /Annots
lignes:
pdftk original.pdf output uncompressed.pdf uncompress
LANG=C sed -n '/^\/Annots/!p' uncompressed.pdf > stripped.pdf
pdftk stripped.pdf output final.pdf compress
Si vous plongez vraiment dans la structure de vos documents pdf
spécifiques - ouvrez-les simplement avec un éditeur de texte -, vous pourrez peut-être comprendre ce qui se passe et réussir à manipuler vos documents avec e. g. sed
, cependant je doute sérieusement qu'il existe une solution qui convient à chaque type de document pdf
ici. Pour ce que ça vaut, (au moins pour mon fichier de test), l’oneliner suivant vous donne les commentaires de input.pdf
dans un terminal:
pdftk input.pdf output - uncompress | sed '/^\/Contents (/!d'
Ajoutez >> comments
à la fin de cette ligne pour stocker le résultat dans un fichier nommé comments
.