我正在寻找一种可以很好地生成单页PDF的工具。我的需求是:

  • 可以放入PDF/EPS/...作为背景
  • 绝对定位
  • 能够定义表,列出
  • 能够旋转块
  • 合理简单的语法(将用于自动生成许多外观相似的文档)
  • 可从Python轻松使用
  • 免费或非常便宜的

  • 本质上,我在寻找的工具X是OODraw/CorelDraw/...,就像LaTeX是OOWrite/MS Word一样。

    我看过webkit2pdf和一个 headless 的OODraw,但两者似乎都有些过分。 XML-FO有一些局限性,例如无法预测文档跨过多少页。 Reportlab价格昂贵。

    有任何想法吗?

    谢谢!

    最佳答案

    绝对 PGF/TikZ 。卖点:

    通过此代码创建:

    % 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}
    

    公然从examples被盗。

    10-06 03:13