2016-06-22 5 views
2

je ce que je présume être un fichier PDF/A-1a qui a été généré par FOP apache et a une tête de recouvrement mis sur l'utilisation de OverlayPDF PDFBox. preflight reconnaît le fichier comme ok (mais évidemment seulement PDF/A-1b) et Acroreader dit qu'il est "PDF/A" mode et "Tagged: oui" dans les propriétés du document. Je voudrais voir à quoi cela ressemble donc je pourrais peut-être faire quelques petites améliorations. Ma question est, où puis-je regarder pour voir le contenu étiqueté (c'est-à-dire la représentation textuelle de quoi en PDF est une séquence creuse de sorties char), de préférence sans codage moi-même, par ex. en utilisant le débogueur/PDFReader de pdfbox? Je suis un peu perdu là-bas - existe-t-il un moyen alternatif d'obtenir une sortie textuelle de la structure du document, par ex. dans un fichier xml pour le rechercher en utilisant un éditeur? - TIA!Trouver le contenu tagué PDF/A-1a en utilisant PDFBox

Modifier

L'en-tête (s) elle-même est à l'origine PostScript et converti en PDF/A-1b en utilisant ghostscript, puis recouvert d'

java -jar pdfbox-app-2.0.0-RC3.jar OverlayPDF letter_plain.pdf \ 
    followingpages_letterhead.pdf -first firstpage_letterhead.pdf \ 
    letter_with_head.pdf 

Le letter_plain.pdf est généré avec FOP en utilisant

fop -pdfprofile 'PDF/A-1a' -v -d -c my_fop_config.cfg -xml letter.xml \ 
    -xsl letter_to_fo.xsl -pdf letter_plain.pdf 

Les versions utilisées sont pdfbox 2.0 et fop 1.1. Dans le cas où letter_with_head.pdf ne serait plus PDF/A-1a alors la question s'appliquerait à letter_plain.pdf qui devrait être 1a selon l'appel de fop, devrait choisir une solution différente (comme svg) pour obtenir l'en-tête alors.

Edit 2

Exemple pdfs peuvent être trouvés ici: https://www.magentacloud.de/share/j9qk7jfzyv - il n'y a pas besoin d'un followingpages_letterhead.pdf séparé que l'échantillon est une seule page.

Edit 3

Je soupçonne que le texte est enterré quelque part en dessous Root/StructTreeRoot/ParentTree/Nums/[1]/[3]/P/P/P/P/P/P (en supposant que le P est la carte en quelque sorte les fo:block « s) mais ne peut nulle part montrer le texte du pdf.

+0

serait-il possible de partager les documents en question? –

+0

pdfs exemples sont ici https://www.magentacloud.de/share/j9qk7jfzyv –

+0

Pour commencer, Adobe Acrobat Preflight prétend qu'il ya un certain nombre de questions de validité PDF/A-1a déjà en letter_plain.pdf. – mkl

Répondre

2

Les entrées de l'arborescence de la structure du PDF à des cartes de main au contenu marqué dans les pages de flux de contenu. A titre d'exemple l'entrée dans

Root/StructTreeRoot/K/[0]/K/[0]/K/[1]/K/[0]/K/[0]/K/[0]/K/[0] 

cartes pour cette partie des pages de flux de contenu

/Span << /MCID 0 >> BDC 
    BT 
    /F15 11 Tf 
    1 0 0 -1 0 9.163 Tm 
    [ (Bes) 15 (tell-Nr) 48 (. 1) 34 (23) 6 (456) 29 (7) 40 (8) ] TJ 
    ET 
EMC 

Comme on peut le voir il n'y a pas de définition supplémentaire donc il n'y a pas facilement du texte affichable autre que l'analyse syntaxique du TJ opérateur dans cette séquence d'exemple. Ainsi, le marquage est utilisé pour définir la structure du document pointant vers des blocs de construction différents uniquement.

De plus, il y a quelques informations pour le support d'accessibilité. Mais cela se limite à spécifier l'attribut Lang dans l'arborescence de la structure.

+0

Merci beaucoup @Maruan, cela explique beaucoup. Serait-ce l'endroit où un autre texte d'accessibilité serait placé s'il était là? Comme "Bestell-Nr. 12345678" pour cette ligne? Est-ce que je devrais consulter les fop'pers sur pourquoi il n'y a pas de texte d'alt bien qu'il devrait (A-1a) et pourrait (fop obtient le texte original) être là? –

+0

Mhmm - autant que je comprenne qu'il serait plus facile d'obtenir le texte «simple», PDF/A-1a n'est pas obligé de fournir cette information AFAIK. –