html - 从 xml 创建可打印 pdf 的一般过程

标签 html css xml xslt

这是一个非常非常基本的问题。我是自学使用 html、xml 和 css 的,所以请原谅我的无知。我的情况如下:我知道如何编写 XMl 文件,我可以创建我想要的 html 输出并使用 Css 以我需要的方式设置页面样式。现在,我想根据这个结果打印一本书。我需要它将我的 html 页面的内容拆分为 A4 页面,添加页码和行号。我必须学习什么技术才能做到这一点?我在网上看到 xsl:fo 用于将 xml 转换为 pdf。有什么方法可以使用 html/css 输出,或者我是否需要使用 xsl:fo 编写一个全新的样式表?我需要学习 JavaScript 吗?我愿意做任何这些,我只是不知道从哪里开始。

我看过将我的 xml 文件导入到 indesign 中,这可行,但我必须再次完成所有文本样式设置工作。必须有更好的方法。

最佳答案

如果你想使用 CSS 来设计你的打印输出,专有的 Prince XML似乎是唯一可以生成体面排版的工具。

转向开源工具,您可以使用 XSLT 将自定义 XML 转换为 XSL-FO,然后 Apache FOP生成 PDF,但是输出不像 TeX 那样干净,您还需要在 XSL-FO 而不是 CSS 中指定所有布局。

我建议将您的 XML 转换为(HTML 或 DocBook XML),然后使用 Pandoc将其转换为 PDF。 Pandoc 使用 pdflatex、xetex 或 luatex 生成 PDF。如果您不熟悉 LaTeX 宏包,我建议使用 ConTeXt macro 包,它具有更一致的布局命令,并且不依赖于基本功能的包。要更改布局,请使用自定义 Pandoc template文件生成所需的 ConTeXt 文件。这将按如下方式工作:

$ saxon -o docbook-file.xml custom.xml stylesheet.xslt #generate DocBook
$ pandoc -f docbook docbook-file.xml -t context --standalone --template template.tex -o out.tex #generate ConTeXt
$ context out.tex #generate PDF

关于html - 从 xml 创建可打印 pdf 的一般过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25890120/

相关文章:

jquery - 选择带有文本链接的所有复选框

css - 如何为 IE 修复 ExtJS 作用域的 CSS?

javascript - Node.js Xml2js 属性的结果

javascript - 本地 href 不会在 WAMP 中进行鼠标悬停/悬停

html - 使用xpath获取html元素的文本内容

html - anchor 标记文本从 div 框溢出

javascript - 错误消息首先出现在左上角,然后出现在中间

html - 我的网站菜单在 IE 上无法正确显示

java - 在android中处理xml文件后出现奇怪的字符

php - SimpleXML 和 PHP : Extract part of XML document & convert as Array