将数据注入asciidoc模板中定义的变量

时间:2018-03-20 20:36:21

标签: java latex asciidoc asciidoctor

我现在已经在线浏览了一段时间,而我似乎无法确定这是否可能,所以希望有人能指出我某个方向..

我特别想知道是否可以以编程方式将数据插入到asciidoc模板中,以便我可以使用它来生成类似发票文档的内容。我看过AsciidoctorJ,这似乎是生成asciidoc文件的pdf的最后一步,这很好。

我已经查看了asciidoc中宏的文档,但似乎无法找到我想要的内容。

我找到了一个使用latex和一个名为Java LaTeX Report的库的示例,它允许您使用以下内容定义.tex文件:

#foreach( $name in $services )
    \Fee{$name[0]} {$name[1]} {1} 
#end

然后从代码中的数据填充这些变量并通过执行以下处理模板:

ArrayList<ArrayList<String>> services = new ArrayList<ArrayList<String>>();

        ArrayList<String> subservice1 = new ArrayList<String>();
        ArrayList<String> subservice2 = new ArrayList<String>();
        ArrayList<String> subservice3 = new ArrayList<String>();

        subservice1.add("Software");
        subservice1.add("50");
        subservice2.add("Hardware1");
        subservice2.add("500");
        subservice3.add("Hardware2");
        subservice3.add("850");

        services.add(subservice1);
        services.add(subservice2);
        services.add(subservice3);      

        converter.replace("services", services);

        converter.parse(template, invoice1);

在latex中生成文本:

\Fee{Software} {50} {1} 
\Fee{Hardware1} {500} {1} 
\Fee{Hardware2} {850} {1} 

是否有一些库可以让我为asciidoc做类似的事情?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

通过我在网上找到的内容,没有办法在asciidoc中本地使用LaTeX替代品。但是,您可以使用FreeMarker之类的模板语言来实现类似的结果来进行变量绑定。该输出将是asciidoc模板,其中插入了所有数据。您可以定义输出文件的扩展名,以便可以参数化任何文件类型。