7
votes

Comment recadrer les marges PDF à l'aide de PDFTK et / MediaBox

J'ai utilisé pdftk pour décompresser un PDF, puis l'a ouvert sous forme de fichier texte.
Je veux éditer le champ / mediasbox , qui est dans mon cas xxx

Je voudrais réduire les marges, par exemple xxx

Malheureusement, cela ne fonctionne pas. Je peux changer le 0 dans un 2 ou un 9 mais je ne peux pas mettre 100 par exemple.

aucune idée pourquoi?


1 commentaires

Ce n'est pas une question de programmation, devrait être déplacé vers un autre site du réseau


3 Réponses :


5
votes

Il existe de meilleurs moyens de changer la marge d'un fichier PDF:


1 commentaires

J'ai essayé le dernier, Ghostscript (9.10) et cela n'a pas fonctionné pour moi. D'autre part, Podofobox dans la réponse acceptée fonctionne.



9
votes

Utilisez sed pour remplacer tout occurrence

SED 'S / MediaBox \ [0 0 612 792 * / MediaBox \ [100 0 512 792] / G' OUT.PDF

ou podofobox (intérieur podofo utils )

  • http://podofo.sourceforge.net/tools.html

    sans avoir besoin de décompressez d'abord les flux PDF (au besoin avec PDFTK)

    podofobox in.pdf out.pdf support 10000 0 51200 79200

    Comme vous pouvez le constater, Podofobox utilise des valeurs multimédia multipliées par 100, car sa balance est une sous-multiple, vous devez donc simplement ajouter deux zéros ( 00 ) aux valeurs que vous pouvez lire dans MediaBox. Champ


0 commentaires

15
votes

La chaîne 100 comporte deux numéros supplémentaires de 0. Lorsque vous utilisez un éditeur de texte et ajoute des caractères, qui rend le fichier plus longtemps. C'est pourquoi le remplacement avec 9 ou 2 ou tout autre chiffre unique fonctionne bien. Bien qu'un éditeur de texte puisse être utilisé théoriquement pour éditer un PDF, ce n'est pas simple et vous devez respecter la structure interne du fichier. La table XREF est une table près de la fin d'un PDF qui indique au lecteur exactement où chaque objet est situé. Il doit être changé chaque fois que la longueur ou l'emplacement de tout ce qui est changé.

La raison La méthode manuelle ci-dessus en utilisant PDFTK ne fonctionne pas que vous ajoutez deux octets au centre du fichier. Cela casse la table xref . Si vous mettez à jour manuellement tout le Xref S, cela fonctionnera, mais elle est potentiellement très fastidieuse. Utilisation de SED ou tout autre outil d'édition de texte ne résoudra pas le problème. podofo est-ce que le xref calculait pour vous.


2 commentaires

1- Que voulez-vous dire par "Ajout de deux octets au centre du fichier" et quelle est la table XREF? 2-donc que suggérez-vous?


Je recommande de faire ce que @dingo et le Dr Gorb déjà suggéré, qui consiste à utiliser le logiciel ou le code conçu pour manipuler les PDF.