2011-01-11 5 views
2

Fondamentalement, j'essaie d'ajouter un lien hypertexte dans un PDF en modifiant le post-scriptum.Création d'un lien hypertexte PDF avec PostScript

Voici le code qu'Adobe prévu pour générer un lien via postscript:

[/Rect [ 0 425 295 445 ] /Action << /Subtype /URI /URI (http://www.adobe.com/) >> /Border [ 0 0 2 ] /Color [ .7 0 0 ] /Subtype /Link ANN pdfmark

Et voici un exemple de code que je suis en train de modifier:

%PDF-1.4 
%âãÏÓ 
6 0 obj 
>stream 
    1 w 
    [] 0 d 
    0.0 g 
    36 775 m 
    576 775 l 
    s 
endstream 
endobj 
7 0 obj 
>stream 
    BT 
    36 777 Td 
    0 Tr 
    /F1 16 Tf 
    0.0 g 
    (Test PDF) Tj 
    ET 
endstream 
endobj 
1 0 obj 
>/ProcSet[/PDF]>>/Parent 8 0 R/MediaBox[0 0 612 792]/Contents[6 0 R 7 0 R]/Type/Page>> 
endobj 

9 0 obj 
>/ProcSet[/PDF]>>/Parent 8 0 R/MediaBox[0 0 612 792]/Contents[10 0 R 11 0 R]/Type/Page>> 
endobj 
8 0 obj 
> 
endobj 
12 0 obj 
> 
endobj 
13 0 obj 
> 
endobj 
xref 
0 14 
0000000000 65535 f 
0000017066 00000 n 
0000000015 00000 n 
0000000116 00000 n 
0000000212 00000 n 
0000000319 00000 n 
0000000422 00000 n 
0000003831 00000 n 
0000025138 00000 n 
0000024976 00000 n 
0000017226 00000 n 
0000021450 00000 n 
0000025207 00000 n 
0000025253 00000 n 
trailer 
]>> 
startxref 
25381 
%%EOF
+1

ce que vous essayez de modifier ici est ** PAS ** code PostScript. C'est PDF. (Oui, vous pouvez ajouter du code à PostScript afin d'avoir des hyperliens dans le fichier PDF résultant. * Le mot-clé ici est * pdfmark * ...) –

Répondre

1

Les dix chiffres les nombres à la fin sont un index de la position d'octet dans le fichier de chaque objet. Au strict minimum, si vous modifiez le contenu d'un PDF, vous devrez corriger cet index.

La référence à la structure d'un document PDF peut être téléchargé à partir Abdobe: http://www.adobe.com/devnet/pdf/pdf_reference.html

6

Voici une suggestion que vous n'avez pas demandé, mais qui peut néanmoins vous aider à atteindre votre objectif: Utilisation Ghostscript pour convertir vos fichiers PDF et ajouter les liens hypertexte.

Voici comment. L'exemple suppose que vous utilisez Windows. Sous Linux ou Mac OS X, utilisez gs (au lieu de gswin32c.exe et utiliser \ comme continuation de ligne au lieu de ^:

gswin32c.exe^
    -o with-hyperlink.pdf^
    -sDEVICE=pdfwrite^
    -c "[ /Rect [0 425 295 465]"^
    -c " /Border [0 0 2]"^
    -c " /Color [.7 0 0]"^
    -c " /Page 1"^
    -c " /Action <</Subtype /URI"^
    -c " /URI (http://stackoverflow.com/questions/4663409/creating-a-pdf-hyperlink-with-postscript/4674664#4674664)>>"^
    -c " /Subtype /Link"^
    -c " /ANN pdfmark"^
    -f without-hyperlink.pdf 

Cette commande re-PDF d'origine distillant, sans-hyperlink.pdf, en avec -hyperlink.pdf Le PDF résultant aura le lien hypertexte à la page 1.

Il est possible, mais beaucoup trop lourd de manipuler le contenu d'un PDF dans un éditeur de texte, mais vous devez être un vrai expert PDF pour ce faire pour la plupart des fichiers PDF:

Questions connexes