2015-06-25 3 views
1

Я пытаюсь преобразовать SVG в многостраничный PDF-документ. Я использовал Apache Batik для преобразования, но не предусмотрено для многостраничных страниц pdfs в нем. Проведя некоторое исследование, я узнал о docbook, и он работал достаточно хорошо. Он использует ANT скрипты для преобразования.SVG to Multipage PDF

Я хотел бы знать, как docbook имеет дело с многостраничными PDF-файлами, поскольку docbook использует Apache FOP, который использует Apache Batik для преобразования SVG в PDF.

Создает ли он отдельные PDF-файлы и в конечном итоге объединяет их для создания единого PDF-файла? И если он делает то же, что и выше, то я сам создам отдельные PDF-файлы с помощью Apache Batik и объединим их с помощью PDFBox.

Спасибо.

Решение С помощью XSL-FO с SVG в качестве внешнего графического или встроенного SVG

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> 
<fo:layout-master-set> 
    <fo:simple-page-master page-height="2339px" page-width="1654px" master-name="PageMaster"> 
     <fo:region-body margin="0mm 0mm 0mm 0mm"/> 
    </fo:simple-page-master> 
</fo:layout-master-set> 
<fo:page-sequence master-reference="PageMaster"> 
    <fo:flow flow-name="xsl-region-body"> 
     <fo:block> 
      <fo:external-graphic src="url(new sample.svg)" width="100%" height="100%" content-width="100%" content-height="100%"/> 
     </fo:block> 
    </fo:flow> 
    </fo:page-sequence> 
<fo:page-sequence master-reference="PageMaster"> 
    <fo:flow flow-name="xsl-region-body"> 
     <fo:block> 
      <fo:external-graphic src="url(new sample2.svg)" width="100%" height="100%" content-width="100%" content-height="100%"/> 
     </fo:block> 
    </fo:flow> 
    </fo:page-sequence> 
</fo:root> 
+0

Мы также используем библиотеку Batik для создания pdf-документа из файла svg. Экспорт одной страницы - это ограничение этой библиотеки, используемой для экспорта PDF-файлов, и в настоящее время размер страницы просто увеличен, чтобы разместить больше данных. В основном мой текст слишком длинный, и я хочу, чтобы он отображался на нескольких страницах в документе PDF. Поскольку вы достигли этого с помощью docbook, можете ли вы, пожалуйста, направить нас, как реализовать это в нашем приложении. Заранее спасибо за вашу помощь. – Rashmi

ответ

1

Нет это не так. FOP использует стандарт XSL FO. Вы определяете такие вещи, как геометрия страницы, правила хранения контента и блоки потока контента. Он не создает каждую страницу в формате PDF и не присоединяется к ним. Он использует только Batik для преобразования SVG в PDF-объекты для включения в выход PDF. Таким образом, Batik создает только «блок-область» ... как изображение, хотя в векторном формате ... и это лишь один из блоков, используемых для перехода в геометрию страницы.

+0

хорошо, поэтому я, наконец, создаю XSL-FO с внешней графикой в ​​качестве SVG и конвертируя их в PDF. Пожалуйста, найдите образец XSL-FO в редакторе вопросов. Кроме того, спасибо за помощь. –