vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Интересно, чем бы таким опенсурсным и не использующим X-овых библиотек (headless, серверным) можно в наше время генерировать PDF-документы, содержащие в основном обычный текст с минимальными шрифтовыми выделениямии (уровня примерно HTML 2.0 - заголовки двух-трех уровней, пара видов логического выделения в тексте, 2-3 вида списоков).

Но чтобы нормально работало по меньшей мере со всем Basic Multilingual Plane юникода (входной формат - что-то в utf-8).

Варианты на базе pdftex не предлагать. Про них и лежащие там грабли сам знаю.
Варианты на базе xelatex или luatex готов посмотреть, если мне убедительно объяснят, что вот здесь все хорошо, и будет работать со всеми буковками, которые есть в шрифте DejaVuSans, LiberationSerif или что там оно испольузе

В принципе, сейчас библиотеки для создания pdf есть во всех подряд языках. Но вот попробовал питоновскую (которая reporlab, вернее командно-строчная обертка вокруг неё - rst2pdf) не тянет кириллицы совсем. Это я еще не злобствую, и не подсовываю туда right-to-left письменности.

То что у libreoffice есть headless-режим я знаю.

Про apache fop с удовольствием бы послушал рассказы тех, кто щупал.

Date: 2014-10-28 04:05 pm (UTC)
From: [identity profile] sastanin.livejournal.com
Вопрос в том, что браузерный движок — зрелое и очень хорошо поддерживаемое ПО для рендеринга текста на множестве языков. Думаю, и в libreoffice, и где-то между xetex и бесчисленными макропакетами лежит гораздо больше нетоптанных грабель, чем в webkit. Хотя бы потому, что количество пользователей несопоставимо.

Всем заявленным изначально требованиям phantomjs полностью или частично удовлетворяет:

[+] рендерит обычный текст с минимальными шрифтовыми выделениямии (уровня примерно HTML 2.0)

[+] поддерживает Unicode

[±] поддерживает современные шрифты и их возможности¹

[+] не использует pdftex

[±] может рендерить RTL письменность²

[+] опенсорс

[+] headless, для работы X-сервер не требуется

[±] не зависит от x11: пакет в моём дистрибутиве зависит от libx11 следующим образом: phantomjs -> gstreamer0.10-base -> libxv -> libxext -> libx11; однако беглый взгляд на build.sh (https://github.com/ariya/phantomjs/blob/master/build.sh#L177) показывает, что можно собрать без gstreamer и поддержки видео; соответственно, без x11.


¹ webkit поддерживает также font features, а вот PDF-принтер пока нет

² c rtl, кажется, всё в порядке, но я попробовал подсунуть ему вертикальный японский (https://dl.dropboxusercontent.com/u/444684/OpenWebDemos/css3writingModes/japanese-upright.html), сверху-вниз, справа-налево; webkit это уже умеет отображать правильно, а вот принтер повернул глифы.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

June 2025

S M T W T F S
1 23 4 56 7
89 1011 12 13 14
1516 17 18 192021
2223 2425262728
2930     

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 25th, 2025 04:23 pm
Powered by Dreamwidth Studios