FOP 错误说 HTML 文件需要匹配结束标记,即使它已经这样做了

FOP Error Says HTML File Needs Matching End Tag Even Though It Already Does

我目前正在使用 Apache FOP 创建 HTML 文件的 PDF 版本。文件本身已经准备好各种 fo 标签,但是当我尝试使用命令行 (fop -fo NoteBook.html -pdf test.pdf) 执行 FOP 时,我收到一条错误消息 "the element type 'META' must be terminated by the matching end-tag ''".特指标签。完整搜索文件后,我找到了结束标记。是什么导致 FOP 出现这种错误?

注意:我在分享该程序的实际代码方面非常有限。

您收到的错误可能是由于您的 HTML 文件无效 XML,因此无法解析。

例如 <meta name="description" content="a book"> 是正确的 HTML,但为了有效 XML 它应该是 <meta name="description" content="a book"/><meta name="description" content="a book"></meta>.

但这只是冰山一角,真正的问题在于 FOP 不接受 HTML 文件作为输入;它接受:

  • 符合 XSL-FO specifications
  • 的 FO 文件
  • 或 XML 文件 + 生成 FO 结果的 XSLT 样式表(只是为了方便用户,因为样式表转换是使用库完成的,而不是直接由 FOP 完成)

如果您有一个 HTML 文件并想使用 FOP 生成 PDF,您必须找到或开发一种工具将其转换为 FO 文件。特别是,如果您选择使用 XSLT 转换,则必须确保输入有效 XML.