Альтернатива латексу

Я ищу альтернативу латексу.

Программное обеспечение следует использовать для создания цветных счетов-фактур (PDF) для газовой и электроэнергетической промышленности.

Я знаю, что латекс отлично подходит для математики, но в данном случае он не подходит.

Латекс слишком умен и хочет делать то, что происходит с правилами латекса.

Но в моем случае я просто хочу, чтобы результат выглядел так, как хочет клиент.

Требуемые функции:

  • Открытый исходный код
  • Поддержка латиницы1
  • Поддержка юникода было бы здорово
  • создает PDF-файлы (DIN A4)
  • работает на линуксе без графического интерфейса
  • текстовый, а не графический интерфейс (libreoffice не является решением)
  • Поддержка таблиц, занимающих несколько страниц. Заголовки таблиц должны снова появиться на второй странице.
Для JavaScript я сделал все это и многое другое, используя отличную бесплатную автотаблицу jsPdf . При необходимости вы можете использовать его для запуска в безголовом браузере. В противном случае я уверен, что несравненный @SteveBarnes может порекомендовать модуль Python :-)

Ответы (3)

КаирSVG

«Преобразуйте файлы SVG в PDF и PNG».

домашняя страница , исходный код: Python с некоторыми зависимостями библиотеки, отличной от Python (например, cairo2), механизм рендеринга: cairo2, лицензия: LGPG-3.0

электрон-pdf

«Инструмент командной строки для создания PDF-файлов из файлов URL, HTML или Markdown с помощью электронной почты ».

исходный код: JavaScript , движок рендеринга: Chromium ( Blink ), лицензия: MIT

WeasyPrint

«WeasyPrint — это интеллектуальное решение, помогающее веб-разработчикам создавать PDF-документы. Оно превращает простые HTML-страницы в великолепные статистические отчеты, счета-фактуры, билеты…»

домашняя страница , документы , примеры , исходный код: Python , лицензия: BSD

wkhtmltopdf

wkhtmltopdf и wkhtmltoimage — это инструменты командной строки с открытым исходным кодом (LGPLv3) для преобразования HTML в PDF и различные форматы изображений с использованием механизма рендеринга Qt WebKit. Они работают полностью «без головы» и не требуют отображения или службы отображения.

домашняя страница , документация по командной строке (скриптам) , исходный код: C/C++ , механизм рендеринга: WebKit, лицензия: LGPLv3

Веб-браузеры, безголовые

В категории безголовых браузеров есть несколько кандидатов , которые также можно рассматривать для генерации HTML в PDF.

Например, ...

Хром, Хром

chromium-browser \
  --headless \
  --disable-gpu \
  --print-to-pdf="path/to/file01.pdf" \
  http://www.example.com/

### also works with a local file input URL
# file:///some/path/to/source_file.html

/Applications/Chromium.app/Contents/MacOS/Chromium \
  --headless \
  --disable-gpu \
  --print-to-pdf="some/path/file01.pdf" \
  file:///Users/username/Desktop/input.html
Большое спасибо за эти ссылки. Я просто про себя: Почему нет решений на базе движка рендеринга хрома. Теперь его будет использовать даже Microsoft.
@guettli добавил несколько кандидатов, использующих механизм рендеринга Chrome/Chromium Blink.

Pandoc ( https://pandoc.org/ ) будет создавать PDF-файлы из текста Markdown и других форматов. Sphinx ( https://www.sphinx-doc.org/en/master/ ) похож, но использует reStructuredText в качестве входных данных и более настраиваемый — вы можете определить CSS для управления макетом, цветами и другими элементами стиля.

rinohtype * — это (чистый) пакет Python, который преобразует структурированные документы в формат PDF. Стиль документа PDF легко настраивается с помощью таблиц стилей и шаблонов документов.

Основным входным форматом для rinohtype является reStructuredText , и Sphinx может использоваться для предоставления расширенных возможностей авторинга.

* Полное раскрытие: rinohtype разработан мной