Преобразование PDF в XML в Marklogic

У нас есть несколько файлов PDF в нашей файловой системе, которые загружаются на сервер Marklogic через MLCP. После загрузки PDF-файла в Marklogic срабатывает CPF, для которого преобразование по умолчанию включено. Это приводит к преобразованию файлов PDF в файлы XML (формат docbook). PDF-файл может содержать предложение в конце страницы, и некоторая часть текста переносится на следующую страницу. Проблема в том, что при преобразовании текст с каждой страницы сохраняется в теге, а это означает, что перетекающий текст со следующей страницы появляется в отдельном теге. Например, рассмотрите предложение «Быстрая коричневая лиса перепрыгивает через ленивую собаку». Теперь «быстрая коричневая лиса» появляется на одной странице PDF-файла, а остальные «перепрыгивают через ленивую собаку» переходят на следующую страницу. После преобразования это то, что появляется в XML:

......
<para>The quick brown fox</para>
...... (some information about headers)
<para>jumps over the lazy dog</para>

Есть ли способ сохранить непрерывность текста во время преобразования?


person ArinCool    schedule 18.12.2013    source источник


Ответы (1)


Есть два способа добраться туда. Более сложный предварительный способ и более простой способ постобработки. (1) Через файл конфигурации PDF. По умолчанию это PDFtoXHTML.cfg в подкаталоге Converters/cvtpdf вашей установки. Вы можете создать свой собственный файл конфигурации и сослаться на него через параметры конфигурации в xdmp:pdf-convert. То, что вы хотите сделать, это добавить поле обрезки на страницы, чтобы обрезать номера страниц, верхние/нижние колонтитулы и т. д. Синтаксис этого:

[ANNOT PLAN]
0.Iceni Crop Box =1-# [341.15, 91.78, 259.87, 364.84];
[-- END --]

Как понять, какой должна быть геометрия этой коробки? Для этого вы можете скачать инструмент Gemini от Iceni. Это прекрасно работает, если все документы, которые вы обрабатываете, имеют одинаковую геометрию.

(2) С помощью постобработки вывода docbook. Начало и конец страницы размечаются в XHTML, сгенерированном в результате преобразования PDF, и это также распространяется на Docbook. Что-то типа:

&amp;para>
  &amp;phrase id="pge03"> &amp;/phrase>
&amp;/para> &amp;para>
  &amp;phrase id="pgs04"> &amp;/phrase>
&amp;/para>
&amp;para/>

Вы можете запустить какую-то таблицу стилей, которая ищет этот шаблон и удаляет информацию о верхнем/нижнем колонтитуле страницы поблизости. Это становится сложным, потому что вам придется решить, сшивать ли смежные абзацы вокруг разрыва страницы вместе, предположительно, на основе информации о стиле. По умолчанию Docbook не сохраняет информацию о стиле из XHTML, но вы можете получить ее, если вам это нужно, установив для опции сохранения стилей значение false на шаге Docbook. Посмотрите в конвейере Docbook. (Это происходит из Installer/conversion/docbook-pipeline.xml в вашем каталоге установки.)

person mholstege    schedule 18.12.2013