从降价文档中生成一个包含文本框字段的PDF



我有几百个LibreOffice文档作为笔记提供给我的学生。它们包含用于放置答案等的文本框字段。我想将它们合并到一个文档中,以便在插入、删除、重新排列页面时更新章节号。我还想将它们转换为Markdown或Ascidoc等标记语言,以获得与此问题无关的脚本编写的其他优势。

一旦使用了这种新格式,我将在修订时定期从主标记文档的各个部分创建PDF文档。我用Asciiddoctor PDF这样的工具做到了这一点,我喜欢它,因为我可以在PDF输出中突出显示语法。

我需要一些指导的部分是在PDF中获取文本框字段。我猜标记语言对此没有标记。DocBook怎么样?我是否需要为标记编写某种预处理程序,在成为postscript的过程中转换一些作为文本框替代的自定义标记?我对PDF或postscript了解不多。我对其他方法持开放态度,因为我还没有开始写任何脚本。

在HTML中,文本框是一个UI元素。在PDF(或纸上(中;框";。

制作一个盒子没有直接的Asciidoc标记,但有一些标记可以创造性地用来实现这个目标。

例如,我们可以使用一个源块来指定多个空行,以定义框应该具有的空间量:

[source, subs="+attributes"]
.Enter your notes here
----
{nbsp}
{nbsp}
{nbsp}
{nbsp}
{nbsp}
----

{nbsp}条目使用nbsp属性,该属性引入了一个非中断空间。这样可以防止源块向下折叠为一行。要使用{nbsp},我们必须将subs="+attributes"添加到[source]角色中,否则您将在输出中看到{nbsp}文本本身,而不是不间断的空格。

您可以调整您的asciidoctor pdf主题以更改背景、边框等。请参阅:https://github.com/asciidoctor/asciidoctor-pdf/blob/master/docs/theming-guide.adoc

如果文档已使用源块,则可能需要使用尚未使用的其他类型的块(例如块(来获得所需的边框样式。为了获得所需的空间量,您可以使用文字块:

[example]
====
[literal]
....
{nbsp}
{nbsp}
{nbsp}
{nbsp}
{nbsp}
....
====

我使用FODT格式作为LibreOffice的输出,这是一种类似HTML的文本格式,然后使用NodeJS上的nunjucks来模板和填充文本,然后将最终的FODT文件直接传递给一个名为Gotenberg项目的转换器,该转换器适用于办公文档。它在码头集装箱上运行。您可以在以下位置找到它:https://thecodingmachine.github.io/gotenberg/#introduction

我使用这种方法生成具有非常特定格式的电子发票,并将最终输出为PDF。我喜欢这种方法,而不是直接从PDFMake(在nodejs中(和其他方法生成它,因为LibreOffice中的任何人都可以修改模板,只需将其保存为FODT(Flat Open Document(,gotenberg就会生成一个很棒的PDF,并且不使用类似浏览器引擎的木偶来生成PDF。

问候,

相关内容

最新更新