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-29 01:55 pm (UTC)
nine_k: A stream of colors expanding from brain (Default)
From: [personal profile] nine_k
8 лет назад libreoffice (ну, open office) оказался единственным приемлемым решением, когда мне нужно было делать подобные вещи. Заодно он, конечно, умел генерить .doc для дополнительного счастья клиентов.

Date: 2014-10-27 01:36 pm (UTC)
From: [identity profile] dzz.livejournal.com
Я когда-то использовал htmldoc, но кириллические шрифты там прикручивались нештатно.
Решение работает под Солярисом в Транстелекоме уже лет 7, все довольны ;)
Edited Date: 2014-10-27 01:38 pm (UTC)

(no subject)

From: [identity profile] dzz.livejournal.com - Date: 2014-10-27 02:04 pm (UTC) - Expand

Date: 2014-10-27 01:43 pm (UTC)
From: [identity profile] permea-kra.livejournal.com
Я после некоторого шаманства пользовался гентушным умолчальным техом. Было это давно, поэтому детали помню довольно смутно, но по-моему это был техлайв + латех. Юникод там правда надо было подключать ручками.

(no subject)

From: [identity profile] permea-kra.livejournal.com - Date: 2014-10-27 04:54 pm (UTC) - Expand

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2014-10-27 05:06 pm (UTC) - Expand

Date: 2014-10-27 01:47 pm (UTC)
From: [identity profile] silentpom.livejournal.com
применяем fop для простых случаев, вроде работает

(no subject)

From: [identity profile] silentpom.livejournal.com - Date: 2014-10-27 03:06 pm (UTC) - Expand

(no subject)

From: [identity profile] silentpom.livejournal.com - Date: 2014-10-27 03:09 pm (UTC) - Expand

(no subject)

From: [identity profile] greenvoid.livejournal.com - Date: 2014-12-12 08:04 am (UTC) - Expand

(no subject)

From: [identity profile] greenvoid.livejournal.com - Date: 2014-12-12 10:03 pm (UTC) - Expand

(no subject)

From: [identity profile] greenvoid.livejournal.com - Date: 2014-12-14 09:53 pm (UTC) - Expand

Date: 2014-10-27 02:09 pm (UTC)
From: [identity profile] ico.livejournal.com
После ковыряния с разными остановился на wkhtmltopdf как наиболее внятно конфертирующим.

(no subject)

From: [identity profile] ico.livejournal.com - Date: 2014-10-27 02:15 pm (UTC) - Expand

(no subject)

From: [identity profile] p_govorun.livejournal.com - Date: 2014-10-27 03:17 pm (UTC) - Expand

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2014-10-27 05:40 pm (UTC) - Expand

(no subject)

From: [identity profile] ico.livejournal.com - Date: 2014-10-27 02:16 pm (UTC) - Expand

(no subject)

From: [identity profile] ico.livejournal.com - Date: 2014-10-27 02:22 pm (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/_slw/ - Date: 2014-10-28 10:15 am (UTC) - Expand

(no subject)

From: [identity profile] ico.livejournal.com - Date: 2014-10-28 11:35 am (UTC) - Expand

Date: 2014-10-27 02:12 pm (UTC)
From: [identity profile] ilya-portnov.livejournal.com
У нас в продакшене вовсю крутится решение на базе fop. Генерятся всякие разные отчёты, с таблицами, текстами итд, на русском, английском. Но у нас fop юзается как библиотека из жабы.

Date: 2014-10-27 02:15 pm (UTC)
From: [identity profile] r-a-d.livejournal.com
Не знаю как сейчас обстоят дела, но в далёком 2009 году, я генерил хитрые документы для УФМС с помощью библиотеки Pisa (надстройка над reportlab, вроде её переименовали потом). Приходилось создавать структуру документа с помощью HTML/CSS (шрифты внедрялись через CSS, arial.ttf лежал рядом), передавать его библиотеке и на выходе получать практически полный аналог в PDF. Всё это делалось в рамках веб-сервиса, написанного на Python/Django.
Edited Date: 2014-10-27 02:17 pm (UTC)

(no subject)

From: [identity profile] r-a-d.livejournal.com - Date: 2014-10-28 02:00 pm (UTC) - Expand

(no subject)

From: [identity profile] r-a-d.livejournal.com - Date: 2014-10-28 05:40 pm (UTC) - Expand

Date: 2014-10-27 02:31 pm (UTC)
From: [identity profile] solvento.livejournal.com
ghostscript? а ps создать из текста самому раз там по минимуму.
ну или поискать готовый html2ps на перле

Date: 2014-10-27 02:38 pm (UTC)
From: [personal profile] ramendik
iText PDF вроде как. Жабская библиотека, но из командной строки вроде как запускают. Иксы не использует, предназначена для серверов.

Date: 2014-10-27 02:42 pm (UTC)
phd_ru: (Default)
From: [personal profile] phd_ru
Reporlab с русскими буквами отлично работает, мы на нём отчёты для печати генерировали. Это у rst2pdf проблемы. :-(

(no subject)

From: [personal profile] phd_ru - Date: 2014-10-27 03:23 pm (UTC) - Expand

Date: 2014-10-27 02:51 pm (UTC)
From: [identity profile] amarao-san.livejournal.com
node.js + pdf.js?

(no subject)

From: [identity profile] amarao-san.livejournal.com - Date: 2014-10-27 04:18 pm (UTC) - Expand

(no subject)

From: [identity profile] amarao-san.livejournal.com - Date: 2014-10-27 05:39 pm (UTC) - Expand

Date: 2014-10-27 02:58 pm (UTC)
From: [identity profile] tzirechnoy.livejournal.com
>не использующим X-овых библиотек

Почему? Чем тебе не нравятся иксовые библиотеки?

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

Урежь остера.
Весь BMP не поддержывает никто. Совсем. Включая виндовый notepad и гнутый charmap. Для всх можно найти комбинацыю из half-width character + accent +RL, на которой оно сломается. Или просто символы из devangari, которые забыли включить в таблицы. Это судьба.

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2014-10-27 05:41 pm (UTC) - Expand

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2014-10-27 06:38 pm (UTC) - Expand

(no subject)

From: [personal profile] yurikhan - Date: 2014-10-28 02:54 am (UTC) - Expand

(no subject)

From: [identity profile] z3vv5yqifqx6.livejournal.com - Date: 2014-10-28 06:33 am (UTC) - Expand

(no subject)

From: [personal profile] yurikhan - Date: 2014-10-28 12:14 pm (UTC) - Expand

Date: 2014-10-27 02:59 pm (UTC)
From: [identity profile] tzirechnoy.livejournal.com
Ну и да, я бы начал пилить pdflatex. Да, я знаю, что у него непреодолимые проблемы начинаются с combining characters -- ну... они, конечно, непреодолимые, но в принцыпе решаемые.

Date: 2014-10-27 03:19 pm (UTC)
From: [identity profile] slobin.livejournal.com
В порядке бреда: конвертор из состава calibre. Я, правда, никогда им не пользовался вот только что впервые в жизни скачал вариант под винду (причём XP) и запустил. Plain text в 1251 она мне сконвертировала, русские буковки на месте. (пауза, пробую дальше) Ага, utf-8 с кириллицей и греческим одновременно тоже. Дальше пробовать лень.

Update: погоди, тебе ведь для книжки надо? Ну тогда точно calibre! ;-)

... In Soviet Russia, English pidgins YOU!! ...

Edited Date: 2014-10-27 03:23 pm (UTC)

(no subject)

From: [identity profile] slobin.livejournal.com - Date: 2014-10-27 11:28 pm (UTC) - Expand

Date: 2014-10-27 05:54 pm (UTC)
From: [identity profile] taris_marh.livejournal.com
FOP мучил в разных позах с 2003-го по 2007-й и вот "на днях" сдал генерацию открыток с его помощью. Может почти всё. Не работают только некоторые хитрые вещи типа float и ещё что-то в этом роде. то есть, если не надо хитровывернутого обтекания разных блоков, то, можно сказать, умеет всё. Кириллица как таковая ему по барабану - работает с UTF-8 и не жужжит. Конкретно в последнем проекта надо было сделать, чтобы на одной стороне листа было до 9 открыток, а на другой - соответствующие им "обороты" с адресами и прочими реквизитами и поздравительная надпись. Единственное, что не получилось - "затекание" текста в "карман" над индексом. Правда, про шрифты ему надо рассказывать отдельно, но мне это дело забороть удалось, потому что нужен был как раз кириллический шрифт. Конкретно - Arial задействовал. Из более навороченных вариантов через XSL-FO я знаю только Antenna, которая коммерческая и под винду. Допилить DocBook труда не составляет, значительую часть можно сделать просто настройкой.

(no subject)

From: [identity profile] taris_marh.livejournal.com - Date: 2014-10-27 06:57 pm (UTC) - Expand

(no subject)

From: [identity profile] taris_marh.livejournal.com - Date: 2014-10-28 03:01 am (UTC) - Expand

Date: 2014-10-27 06:19 pm (UTC)
From: [identity profile] prividen.livejournal.com
Года 4 назад развлекался, прикручивая генерацию PDF к MediaWiki.
Остановился на питоновской mwlib, которая выдавала удовлетворяющие меня результаты - нормальная поддержка кириллицы, встроенные шрифты с только необходимыми глифами (как это там называется).
Насколько я помню, унутре себя она пользуется pyPdf.

Date: 2014-10-27 06:31 pm (UTC)
From: [identity profile] tzirechnoy.livejournal.com
Кстати, шутки ради напомню: pdf -- формат текстовый, и генерировать его можно самостоятельно, без чтения слишком большого количества документацыи, путём printf... Ну, или puts.

Date: 2014-10-27 07:14 pm (UTC)
From: [identity profile] taris_marh.livejournal.com
Да, ещё одно средство для генерации PDF - PyFPDF (https://code.google.com/p/pyfpdf/). Это библиотека для "ручной" сборки PDF, но какой-то генератор на этом собрать можно. Вряд ли она годится для форматирования книг, но вспомнилось. тоже использовал в одном своём проекте и, вероятно, придётся переделывать открыточный проект на неё, потому что некоторые манипуляции FOP делать не умеет.

Date: 2014-10-27 09:37 pm (UTC)
From: [identity profile] sastanin.livejournal.com
Предложение: поскольку многоязыковые документы с любыми шрифтами и форматированием на уровне подмножества HTML удобнее всего писать на HTML (ну или генерить его чем угодно), то может быть поискать варианты headless конвертации HTML в PDF?

Например, есть такая вещь PhantomJS (http://phantomjs.org/) — a headless WebKit scriptable with a JavaScript API. Скрипт в четыре строки рендерит и сохраняет страницу в PNG/JPEG/SVG/PDF на выбор. Попробовал сохранить в PDF: с русскими буквами проблем вроде нет, PDF нормальный (не картинкой, поиск по тексту работает), но в PDF маловат трекинг шрифта, буквы касаются друг друга (возможно, настраивается, возможно, можно поправить в CSS). Использовал этот метод (http://phantomjs.org/api/webpage/method/render.html).

Date: 2014-10-27 09:45 pm (UTC)
From: [identity profile] sastanin.livejournal.com
Под капотом у него для генерации PDF стоит QPrinter (https://github.com/ariya/phantomjs/blob/master/src/webpage.cpp#L1095).

(no subject)

From: [identity profile] sastanin.livejournal.com - Date: 2014-10-28 04:05 pm (UTC) - Expand

Date: 2014-10-28 10:42 am (UTC)
From: [identity profile] ospf-ripe.livejournal.com
Мы используем phantomjs для конвертации html->pdf. Какие то X-овые библиотеки нужны, но сам X-сервер не нужен.

Date: 2014-11-08 07:16 pm (UTC)
From: [identity profile] victor-sudakov.livejournal.com
Проверь еще на всякий случай lout, я лет 15 назад пробовал использовать его вместо LaTeX. Но я сомневаюсь, что в нем хорошо с unicode.

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 1314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 13th, 2025 03:47 pm
Powered by Dreamwidth Studios