OOWrite должен ПРОПИТАТЬ ЛАТЕКСОМ, как OODraw к?

Я ищу инструмент для хорошей генерации единственной страницы PDFs. Мои потребности:

  • Способный поместить PDF/EPS/... как фон
  • Абсолютное расположение
  • Способный определить таблицы, списки
  • Способный повернуть блоки
  • Довольно легкий синтаксис (будет использоваться для автоматической генерации многих подобно выглядящих документов),
  • Легко применимый из Python
  • Свободный или очень дешевый

В сущности я ищу инструмент X, который является к OODraw/CorelDraw/..., как ЛАТЕКС к Word OOWrite/MS.

Я посмотрел на webkit2pdf и бездисплейный OODraw, но оба кажутся чем-то вроде излишества. XML-FO имеет некоторые ограничения, такие как неспособность предсказать, сколько страниц Ваш документ охватывает. Reportlab дорог.

Какие-либо идеи?

Спасибо!

6
задан grimborg 17 May 2010 в 14:46
поделиться

3 ответа

ReportLab может быть хорошим решением:

Инструментарий ReportLab - это проверенный временем, сверхпрочный механизм с открытым исходным кодом для программного создания PDF-документов и основа RML; он также содержит библиотеку для создания платформонезависимой векторной графики. Это быстрое, гибкое, кроссплатформенное решение, написанное на языке Python.

http://www.reportlab.com/software/opensource/

0
ответ дан 8 December 2019 в 15:59
поделиться

Альтернативой TikZ является использование Metapost с контекстом: это немного более выразительный язык, чем PGF, базовый язык для TikZ, в рамках языка обработки на основе Tex, Context, который лучше подходит для макета страницы в PDF, чем Latex или Plain Tex.

Три момента в пользу Context / Metapost:

  1. Ключевое выразительное преимущество Metapost над PGF состоит в том, что это язык решения ограничений, который может определять пересечение кривых. Это позволяет указать рекурсивные алгоритмы для макета дерева, скажем, которые упаковывают деревья как можно ближе без перекрытия, что невозможно сделать в PGF. См. Раздел 9 Руководства пользователя Metapost ;
  2. Слои контекста позволяют довольно легко вставлять изображения PDF за текстом или другими изображениями PDF. См. запись о слоях в вики-странице контекста ;
  3. Контекст позволяет задавать макет страницы по отношению к сеткам, что действительно неприятно делать с латексом. См. Раздел 3.4 Контекст: руководство .

И три в пользу Latex / TikZ:

  1. Они лучше документированы и более широко используются.
  2. У TikZ есть прекрасная библиотека образцов графики.
  3. TikZ работает со всеми основными реализациями Tex, в то время как Context привязан к Luatex.

Лучше всего начать узнавать об использовании контекста с Metapost два (длинных!) Вводных руководства Ханса Хагена: Контекст: экскурс и Metafun (Metafun - это реализация Metapost с некоторыми расширениями).

3
ответ дан 8 December 2019 в 15:59
поделиться

Определенно PGF/TikZ. Точка продажи:

example figure

Создано этим кодом:

% Rooty helix
% Author: Felix Lindemann
\documentclass{minimal}

\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}

\pagestyle{empty}
\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}

\xdefinecolor{darkgreen}{RGB}{175, 193, 36}
\newcounter{cntShader}
\newcounter{cntRoot}
\setcounter{cntShader}{20}
\def\couleur{darkgreen}

\begin{tikzpicture}
    \foreach \y in {86,38,15}{
        \setcounter{cntShader}{1}
        \coordinate (a) at (0,0);
        \coordinate (b) at (0:1);
        \foreach \x in {1,...,\y}{%
            \coordinate (c) at ($ (b)!1cm!270:(a) $);
            \begin{pgfonlayer}{background}
                \draw[fill=\couleur!\thecntShader] (a)--(b)--(c)--cycle;
            \end{pgfonlayer}
            \setcounter{cntRoot}{\x}
            \addtocounter{cntRoot}{1}
            \node[fill=white,draw,circle,inner sep=1pt] at (c)
                {$\sqrt{\thecntRoot}$};
            \coordinate (b) at (c);
            \pgfmathsetcounter{cntShader}{\thecntShader+4}
            \setcounter{cntShader}{\thecntShader}
       }
    }
    \node[fill=white,draw,circle,inner sep=1pt] at (0:1) {$\sqrt{1}$};
\end{tikzpicture}

\end{document} 

Откровенно украдено из примеров.

12
ответ дан 8 December 2019 в 15:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: