2009-02-18 5 views
1

Quelqu'un peut-il me dire l'ensemble des caractères de contrôle pour un fichier PDF, et comment les échapper? J'ai un document PDF (non-dégonflé (gonflé?)) Dans lequel je voudrais éditer le texte, mais j'ai peur de faire accidentellement une séquence de contrôle en utilisant des parenthèses et d'autres choses.caractères d'échappement pour la substitution dans un fichier PDF

Merci.

Répondre

15

D'accord, je pense que je l'ai trouvé. À la page 15 du PDF 1.7 spec (lien PDF), il semble que les seuls caractères dont j'ai besoin de m'inquiéter sont les parenthèses et la barre oblique inverse.

 
Sequence | Meaning 
--------------------------------------------- 
\n  | LINE FEED (0Ah) (LF) 
\r  | CARRIAGE RETURN (0Dh) (CR) 
\t  | HORIZONTAL TAB (09h) (HT) 
\b  | BACKSPACE (08h) (BS) 
\f  | FORM FEED (FF) 
\(  | LEFT PARENTHESIS (28h) 
\)  | RIGHT PARENTHESIS (29h) 
\\  | REVERSE SOLIDUS (5Ch) (Backslash) 
\ddd  | Character code ddd (octal) 

Espérons que cela a été utile à quelqu'un.

+2

Ce fut incroyablement utile pour moi. Je vous remercie! – Jimmy

+0

Même ici - la même chose vaut pour les fichiers FDF, aussi. – nerimarkinde

1

Vous le savez probablement déjà, mais les fichiers PDF ont un index à la fin qui contient des offsets octets à tout dans le document. Si vous modifiez le document à la main, vous devez vous assurer que le nouveau texte que vous écrivez a exactement le même nombre de caractères que l'original.

Si vous voulez extraire le contenu d'une page PDF et l'éditer, c'est assez simple. Ma bibliothèque CAM::PDF vous permet de le faire par programme ou la ligne de commande:

use CAM::PDF; 
my $pdf = CAM::PDF->new($filename); 
my $page_content = $pdf->getPageContent($pagenum); 
# ... 
$pdf->setPageContent($pagenum, $page_content)l 
$pdf->cleanoutput($out_filename); 

ou

getpdfpage.pl in.pdf 1 > page1.txt 
setpdfpage.pl in.pdf page1.txt 1 out.pdf 
+0

Merci. Je ne suis pas vraiment un grand fan de Perl, alors j'ai fini par faire du publipostage avec mon document original pour obtenir mon résultat. –