XSL-FO是W3C制定的XML排版语言,用于将结构化数据精确渲染为PDF等可打印格式;它需经XSLT转换XML为FO文件,再由FO处理器(如Apache FOP)解析布局指令生成PDF,核心依赖XML数据源、XSLT转换器和FO处理器三步协作。
XSL-FO(Extensible Stylesheet Language Formatting Objects)是一种基于XML的排版语言,由W3C制定,专门用于将结构化数据精确渲染为可打印格式,最常用的是生成PDF。它不直接处理原始XML,而是作为XSLT转换的“中间格式”:先用XSLT把XML
转成FO文件(.fo),再交由FO处理器(如Apache FOP)渲染成PDF。
XSL-FO本身不是独立工具,而是一套声明式标记规范,依赖三步协作完成PDF生成:
变成带页眉、表格、字体设置的
不需要XSLT也能试水——直接写一个最小可行FO文件(如hello.fo),用FOP命令行一键转PDF:
FOP_HOME)hello.fo,内容包含必需结构:、(定义A4纸张与边距)、(含正文流)里,例如font-family="SimSun"(中文必须显式指定字体)fop -fo hello.fo -pdf hello.pdf
生成中文PDF失败,90%出在字体环节:
encoding="UTF-8"
fop.xconf中添加字体目录(如fonts/ ),并放入simsun.ttc或msyh.ttf等真实字体文件你好 ,不能只写sans-serif
它适合对排版精度要求高、内容结构固定的批量文档:
writing-mode="tb-rl"支持竖排中文,或切换lang="ja"调用日文字体keep-with-next="always"防止标题孤行)