2016-08-18 7 views
6

Ich erzeuge PDF-Dateien mit Apache FOP 2.1.Wie setze ich die Standardsprache in Apache FOP

Dafür versuche ich, die Standardsprache auf Englisch einzustellen.
Dies soll nach der Erstellung der PDF über die Adobe Reader Option Datei/Eigenschaften/Erweitert/Leseoptionen verifiziert werden. Dieser Wert ist derzeit leer.

Image showing language is not set

Ich habe versucht, xml:lang="en" in fo:root Element, in ersten Seite-Sequenz oder im ersten Element der .xsl Datei ... Nichts Nähte Einstellung den Trick zu tun.

Irgendwelche Tipps?
Danke Dimitris.

Update:
I 2 versucht haben mehr Optionen in den Antworten, wie vorgeschlagen, weder der 2 arbeitete

  1. <fo:declarations> <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/‌extensions/pdf"> <pdf:string key="Lang">en</pdf:string> </pdf:catalog>
  2. <x:xmpmeta xmlns:x="adobe:ns:meta/"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/"> <dc:title>the document title</dc:title> <dc:language>en</dc:language>

Update 2
Haben Sie eine Prämie in dieser Frage gestartet.
Jede Hilfe willkommen und rewarderd

+0

Hm, versuchen, die Antworten von http://stackoverflow.com/questions/38347687/ und die pdf-Referenz zu verwenden, würde ich ' de ... '(keine Ahnung, woher das; in den xmlns kommt) (sowie' xml: lang = "de" 'in der fo: root), aber es wird nicht die Sprache im Acrobat-Tag angezeigt. –

+0

Auf meinem vorherigen Kommentar zeigt jedoch exiftool auf dieser PDF-Datei **" Language: en " so macht es es richtig in die Datei. Das Problem besteht möglicherweise darin, dass das Feld im Dialogfeld "Acrobat-Eigenschaften" auf etwas anderes verweist. Siehe auch [PDF16: Festlegen der Standardsprache mit dem Eintrag/Lang im Dokumentenkatalog eines PDF-Dokuments] (https://www.w3.org/TR/WCAG20-TECHS/PDF16.html) –

+1

Ich vermute, dass es das ist funktioniert einfach nicht in Reader. Wenn Sie auf die obige Seite gehen: https://www.w3.org/TR/WCAG20-TECHS/PDF16.html und dann laden Sie das genaue Beispiel, auf das sie verweisen, und betrachten Sie die Eigenschaften, es zeigt leer. Ich suchte auch meine PDFs von FOP, RenderX, Word ... einige getaggt, alle Arten. Ich konnte keinen einzigen finden, der einen Wert hatte, wenn er auf diese Weise betrachtet wurde. –

Antwort

1

Sie müssen möglicherweise language (http://www.w3.org/TR/xsl/#language) einzustellen. Siehe 'Sprache' in http://xmlgraphics.apache.org/fop/compliance.html

Sie würden denken, dass xml:lang funktionieren würde, aber Sie sagen, dass es nicht funktioniert. Die FOP FAQ hat eine Antwort über die Einstellung language zur Steuerung der Silbentrennung, also ist es einen Versuch wert, obwohl language nur für fo:block und fo:character gilt.

Möglicherweise müssen Sie barrierefreies PDF aktivieren. Siehe https://xmlgraphics.apache.org/fop/2.1/accessibility.html, die Verweise auf die Sprache enthält, die in der PDF-Datei festgelegt wurde (einschließlich von xml:lang).

+0

Danke Tony, ich habe bereits versucht, diese ... Sie haben keine Auswirkungen – Dimitris

1

Nach allem, was ich versucht habe, hat das Feld Sprache in den Dokumenteigenschaften von Adobe Reader nicht viel mit der Dokumentsprache zu tun, die tatsächlich in der PDF gefunden wird (sie ist immer leer).

Das xml: lang = "en" -Tag im fo: root mit FOP 2.1 genügt, damit exiftool das Dokument in englischer Sprache auflistet und für den PDFDebugger aus pdfbox den Eintrag/Lang im Dokumentenkatalog anzeigt Hier wird die Sprache nach der pdf_reference 1.7 Tabelle 3.25 "Einträge im Katalogwörterbuch" angegeben.

Der Code

<fo:declarations> 
<pdf:catalog 
    xmlns:pdf="http://xmlgraphics.apache.org/fop/‌extensions/pdf"‌​> 
    <pdf:string key="Lang">en</pdf:string> 
    </pdf:catalog> 

tut genau das gleiche in der PDF-Ausgabe als xml: lang.

Additonally können Sie auch die Sprache in den Metadaten (auch innerhalb fo:declarations) gesetzt

<x:xmpmeta 
    xmlns:x="adobe:ns:meta/" 
    xmlns:dc="http://purl.org/dc/elements/1.1/" 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 
    <rdf:RDF> 
     <rdf:Description rdf:about=""> 
     <dc:language><rdf:Bag><rdf:li>en</rdf:li></rdf:Bag></dc:language> 

Aber mein Geck 2.1 scheint, dass auch automatisch einstellen, wenn das xml: lang ist.

So wäre es interessant, wenn jemand reinkommt, der erklären kann, was diese Dokumentspracheneigenschaft im Adobe Reader tatsächlich zeigt.

+0

Keine dieser 2 Arbeit ... :(danke trotzdem – Dimitris

+0

Nun, sie arbeiten in sie die Sprache des Dokuments einstellen Sie könnten Ihre Frage anders stellen: Was zeigt Adobe Reader im Feld "Sprache"? Vielleicht zieht das die Leute an, die es beantworten können. Oder sehen Sie sich ein paar Foren bei Adobe an: –

+0

Schauen wir mal, was hier herauskommt "Sprache"] (https://forums.adobe.com/message/8952443) –

Verwandte Themen