2016-08-18 8 views
6

Я создаю PDF-файлы с помощью Apache FOP 2.1.Как установить язык по умолчанию в Apache FOP

Для этого я пытаюсь установить язык по умолчанию на английский.
Это должно быть проверено после создания PDF-файла с помощью опции Adobe Reader «Файл/Свойства/Расширенные/Параметры чтения». В настоящее время это значение пуст.

Image showing language is not set

Я попытался установить xml:lang="en" в fo:root элемента в первой последовательности страниц, или в самом первом элементе из .xsl файлов ... Ничего швам, чтобы сделать трюк.

Любой совет?
Спасибо Dimitris.

Update:
Я попытался еще 2 варианта, как предложено в ответах, ни один из 2 работал

  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
Начали щедрость по этому вопросу.
Любая помощь приветствуется и rewarderd

+0

Хм, пытаясь использовать ответы от http://stackoverflow.com/questions/38347687/ и ссылки на pdf, я бы ' en ... '(не знаю, откуда: в xmlns) (а также' xml: lang = "en" 'в fo: root), но он не отображает язык в теге acrobat. –

+0

В моем предыдущем комментарии, однако, exiftool на этом pdf-файле ** отобразит **' Язык: en' поэтому он правильно вносит его в файл. Проблема может заключаться в том, что поле в диалоговом окне свойств acrobat относится к чему-то другому. См. Также [PDF16: Установка языка по умолчанию с использованием записи/Lang в каталоге документа документа PDF] (https://www.w3.org/TR/WCAG20-TECHS/PDF16.html) –

+1

Я предполагаю, что это просто не работает в Reader. Если вы перейдете на страницу выше: https://www.w3.org/TR/WCAG20-TECHS/PDF16.html, а затем загрузите точный образец, который они ссылаются, и посмотрите на свойства, он показывает пустое. Я также искал свои PDF-файлы из FOP, RenderX, Word ... некоторые помечены, все виды. Я не мог найти никого, имеющего какую-либо ценность, если бы рассматривал этот путь. –

ответ

1

Вам может понадобиться установить language (http://www.w3.org/TR/xsl/#language). См. «Язык» в http://xmlgraphics.apache.org/fop/compliance.html

Вы бы подумали, что xml:lang будет работать, но вы говорите, что это не так. В FAQ FOP есть ответ о настройке language для управления переносом, поэтому стоит попробовать, хотя language определен только для fo:block и fo:character.

Возможно, вам потребуется включить доступный PDF. См. https://xmlgraphics.apache.org/fop/2.1/accessibility.html, в котором указаны ссылки на язык, заданный в PDF (в том числе от xml:lang).

+0

Спасибо Тони, я уже пробовал эти ... Они не имеют никакого влияния – Dimitris

1

В соответствии со всем, что я пробовал, поле «Язык» в Свойствах документа, показанное adobe reader, не имеет отношения к языку документа, фактически найденному в pdf (он всегда пуст).

Тег xml: lang = "en" в fo: root с FOP 2.1 достаточно, чтобы exiftool отображал документ как имеющий английский язык, а также для PDFDebugger из pdfbox, чтобы показать запись/Lang в каталоге документа в котором указан язык в соответствии с таблицей pdf_reference 1.7. Таблица 3.25 «Записи в словаре каталога».

Код

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

делает то же самое в выводе PDF-файл как XML: языки.

Additonally вы также можете установить язык в метаданных (также внутри fo:declarations)

<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> 

Но мой фат 2,1, кажется, устанавливает, что слишком автомагически, если XML: языки есть.

Таким образом, было бы интересно, если кто-то упадет, кто может объяснить, что на самом деле показывает эта языковая собственность документа в adobe reader.

+0

Ни один из этих 2 не работает ... :(спасибо в любом случае – Dimitris

+0

Ну, они работают, они устанавливают язык документа Вы можете задать другой вопрос: что делает Adobe Reader в поле «Язык»? Может быть, это привлекает тех людей, которые могут ответить на него. Или, может быть, проверьте некоторые форумы на Adobe. –

+0

давайте посмотрим, что выйдет здесь [Свойство Reader Document «Язык»] (https://forums.adobe.com/message/8952443) –