SVG в многостраничный PDF

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

Я хотел узнать, как 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>

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


Ответы (1)


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

person Kevin Brown    schedule 26.06.2015
comment
хорошо, поэтому я наконец создаю XSL-FO с внешней графикой в ​​формате SVG и конвертирую их в PDF. Пожалуйста, найдите образец XSL-FO в редактировании Вопроса. Дополнительно спасибо за помощь. - person gursahib.singh.sahni; 06.07.2015