This action will force synchronization from xh/textpdf, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
给定一个 XML 模板文件,然后通过 Json 提供模板数据,整合后生成 PDF 文档。
这个项目可以用于需要动态生成 PDF 的场景,例如试卷、合同,等等。
模板提供文档的固定内容,然后留出数据混入的标记,下面是一个简单的例子:
<textpdf>
<para>这是固定内容,<value id="json_key" />继续固定内容。</para>
</textpdf>
上面<value id="json_key" />
部分会从 JSON 数据源中通过 json_key
获取数据填入其中,其它部分为固定内容。
TextPDF 的 XML 模板侧重于描述排版效果,例如'字体大小','粗体','斜体','段落缩进','段前段后空间',等等。以便能生成满意的 PDF 文档。模板中唯一动态的内容是<value id="some">
标签,其会被 JSON 中的同名 key 值替换掉,下面是一个更加丰富的模板示例:
<!-- 模板根标签必须是 textpdf -->
<textpdf>
<title>这是一段标题,它的默认格式和普通段落不一样,字体要大一些,并且居中显示</title>
<title font-size="12">可以直接指定标题的字体大小来改变默认值</title>
<section>这是一个比标题略小,左对齐的段落</section>
<para>普通段落</para>
<para font-family="heiti" font-size="11" font-style="bold,underline,italic"
align="right" indent="22" space-before="12" space-after="20">这个段落定义了许多格式</para>
<para>可以通过<span font-style="bold">span元素来嵌套文字风格,</span>这样可以在一个段落中出现多种风格。</para>
</textpdf>
TextPDF 的模板只支持简单的排版格式(查看模板说明)。
TextPDF 可以将.doc
文件转换成 TextPDF 的 XML 模板文件,对于.doc
中的___________
会自动转换为 XML 模板的 <value>
标签,这样后续再通过整合 JSON 数据来合成最终的 PDF 文件。
模板的数据源以 JSON 格式提供,格式非常简单,所有模板数据放在data
对象中,其它不限,例如:
{
"data" : {
"key1": "value1",
"key2": "value2"
},
"your" : "Some",
"meta" : "Other"
}
通常的情况是用户根据 XML 模板来录入那些需要填充的字段,并保存到数据库或文件中,后续再通过程序来合成 PDF。
在实际应用中,用户需要从某个地方输入 XML 模板中的录入域(<value>
),为此,TextPDF 可以将 XML 模板转换为 HTML 文件,所有的<value>
标签会转换为 HTML 的输入框,用户只能录入这些输入框的数据。
java -jar textpdf.jar [OPTION] <xmlfile|docfile> [jsonfile]
Options:
-o filename: Output pdf file name
xmlfile
|docfile
作为文档模板输入源,jsonfile
为数据输入源,默认的 PDF 输出文件名称和 xmlfile
同名,后缀为 .pdf
,可以通过 -o
选项改变输出文件名称。
版本 0.2 开始,可以直接将 .doc 文件转换为 PDF 文件,这只不过是先将 .doc 转换为 XML 模板,然后再通过模板转换为 PDF。这只是为了方便,TextPDF 的目标不是将 .doc 转换为 PDF,这方面使用 LibreOffice 或者其它工具可以得到更加专业的效果。
import com.lucky_byte.pdf.TextPDF;
try {
File xmlfile = new File("path/to/xmlfile");
File jsonfile = new File("path/to/jsonfile");
File pdffile = new File("path/to/pdffile");
TextPDF.gen(xmlfile, jsonfile, file.pdf);
} catch (Exception ex) {
ex.printStackTrace();
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。