web-dev-qa-db-fra.com

Fusionner PDF annotations de deux fichiers

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.

7
becko

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.

1
dessert