Comment supprimer une annotation dans Evince?

27

J'ai découvert avec une grande surprise qu'Evince 2.32.0 permet des annotations sur un PDF. À ma grande consternation cependant, je n'ai trouvé aucun moyen de supprimer les annotations (pas de bouton, pas de menu, pas de menu contextuel, nada ). Comment puis-je supprimer une annotation?

Benjoin
la source
Pour les nouveaux visiteurs, voir la réponse de RHertel: sudo apt-get install libcam-pdf-perlpuisrewritepdf -C annotated.pdf clean.pdf
Orion

Réponses:

10

Cliquez avec le bouton droit sur l'icône d'annotation, «Supprimer l'annotation»

Cliquez simplement avec le bouton droit sur une annotation et sélectionnez «Supprimer l'annotation» dans le menu contextuel. J'ai Evince 3.14 selon le traqueur de bugs Evince, le problème a été résolu à l'été 2014

Vous trouverez ci-dessous un hack pour les anciennes versions d'Evince.

Il y a un hack pour les déterminés.

Ouvrez le pdf dans un simple éditeur de texte (il ne doit pas essayer de le «réparer»). J'ai utilisé du nano.

Faites défiler jusqu'en bas (maintenez la touche Page suivante enfoncée).

Les annotations sont dans un format non binaire (donc relativement lisible) à la toute fin du PDF. Dans un PDF avec deux annotations, la dernière partie ressemble à ceci:

%%EOF
4 0 obj <</Type /Page /Contents 5 0 R /Resources 3 0 R /MediaBox [0 0 595.276 841.89 ] /Parent 15 0 R /Annots 67 0 R >> endobj
65 0 obj <</Type /Annot /Rect [179.8028910464 509.6564724919 203.8028910464 533.6564724919 ] /Subtype /Text /M (D:20141219111205) /C [1 1 0 ] /Popup 66 0 R /T (\FE\FF\00N\00a\00m\00e\00 \00o\00f\00 \00a\00u\00t\00h\00o\00r) /P 4 0 R /Contents (\FE\FF\00T\00h\00i\00s\00 \00i\00s\00 \00a\00 \00t\00e\00s\00t\00 \00a\00n\00n\00o\00t\00a\00t\00i\00o\00n\00 \00I\00 \00h\00a\00v\00e\00 \00n\00a\00m\00e\00d\00 \00i\00t\00 \00n\00u\00m\00b\00e\00r\00 \001\00.) >> endobj
66 0 obj <</Type /Annot /Rect [203.8028910464 359.6564724919 403.8028910464 509.6564724919 ] /Subtype /Popup /M (D:20141219111148) /Parent 65 0 R >> endobj
67 0 obj [65 0 R 68 0 R ] endobj
68 0 obj <</Type /Annot /Rect [385.2919093851 365.8141596548 409.2919093851 389.8141596548 ] /Subtype /Text /M (D:20141219111217) /C [1 1 0 ] /Popup 69 0 R /T (\FE\FF\00N\00a\00m\00e\00 \00o\00f\00 \00a\00u\00t\00h\00o\00r) /P 4 0 R /Contents (\FE\FF\00T\00h\00i\00s\00 \00i\00s\00 \00a\00 \00t\00e\00s\00t\00 \00a\00n\00n\00o\00t\00a\00t\00i\00o\00n\00:\00 \00I\00 \00h\00a\00v\00e\00 \00n\00a\00m\00e\00d\00 \00i\00t\00 \00n\00u\00m\00b\00e\00r\00 \002\00.) >> endobj
69 0 obj <</Type /Annot /Rect [409.2919093851 215.8141596548 609.2919093851 365.8141596548 ] /Subtype /Popup /M (D:20141219111206) /Parent 68 0 R >> endobj
xref
0 1
0000000001 65535 f
4 1
0000162703 00000 n
65 5
0000162831 00000 n
0000163168 00000 n
0000163325 00000 n
0000163359 00000 n
0000163698 00000 n
trailer
<</Size 70 /ID [(J]\C3\F8\A9ApV\92\B7\96\AB\A6\B2) (\FDWڸG\BA'8\)\E4\CE\B7) ] /Root 63 0 R /Prev 161245 /Info 64 0 R >> 
startxref
163855
%%EOF
<----HERE IS THE ACTUAL END OF FILE (note this was added by me, not part of the PDF)

J'ai réussi à supprimer des annotations spécifiques en supprimant les lignes correctes, mais cela peut prendre quelques essais et erreurs. Créez toujours une sauvegarde avant de commencer à jouer avec cela.

Lorsque vous supprimez une ligne, vous devez également supprimer toutes les lignes qui la référencent avec un / Parent Le numéro fait référence au numéro au début de la ligne que vous avez supprimée.

REMARQUE: la partie après le %% EOF supérieur peut être entièrement supprimée pour supprimer toutes les annotations. Cela semble assez sûr.

Hallfaer
la source
En fait, je viens de comprendre tout cela, et j'ai ensuite remarqué qu'Evince a été corrigé.
Faites un
L'OP a déclaré qu'il avait la version 2.32.0, ce qui signifie qu'aucun tel menu n'est disponible (évidemment, puisque l'OP a probablement essayé d'appeler le menu contextuel, mais sans succès, je suppose qu'il n'y a rien de tel pour les anciennes versions d'Evince ).
rbaleksandar
8

Cela fonctionne pour moi:

gvfs-set-attribute /path/to/file.pdf metadata::evince::bookmarks ''

(Evince 3.4.0, Ubuntu 12.04)

eik3
la source
Je peux confirmer cela a fonctionné pour la suppression des annotations: gvfs-set-attribute /path/to/file.pdf metadata::evince::annotations ''. Evince 3.6.0 / Ubuntu 12.10.
jon
6

Il s'agissait en fait d'une limitation de la bibliothèque poppler , qui ne supportait pas la suppression des annotations (voir ce rapport de bogue ).

La suppression des annotations dans poppler a maintenant été implémentée pour les frontends qt4 et glib (actuellement dans git master). Espérons que cela ne prendra pas trop de temps avant que le problème ne soit résolu.

aroque
la source
Oui. Je me demande pourquoi utiliser la bibliothèque poppler. Ils peuvent simplement être affichés sous forme de widgets dans une colonne à côté de la page pdf.
Benjamin
Je ne sais pas. Quoi qu'il en soit, ce bogue aurait dû être corrigé dans poppler 0.20.
aroque
6

Si vous souhaitez supprimer toutes les annotations d'un fichier pdf, cela devrait fonctionner:

sudo apt-get install libcam-pdf-perl
rewritepdf -C /path_to_annotated_file/input.pdf /path_to_output_file/clean.pdf
RHertel
la source