PDF 生成模板编辑器
开源可视化 PDF 生成引擎,支持自定义模板,并提供面向开发者的 API,灵活构建文档生成流程。
1.3.0 版本在 CConverterProperties 中新增 setPageMargins(top, right, bottom, left) 和 getPageMargins()。页边距单位为 CSS 像素(CSS px),对每页生效;setPageSize() 的页面宽高单位为点(point)。正文 CSS @page 规则中显式指定的页边距优先于属性中的设置。
import CPDFGeneration.CConverterProperties;
import CPDFGeneration.CHtmlConverter;
CConverterProperties properties = new CConverterProperties();
try {
properties.setPageMargins(48, 40, 48, 40);
int[] margins = properties.getPageMargins();
System.out.println("Top margin: " + margins[0] + " CSS px");
CHtmlConverter.CErrorCode status = CHtmlConverter.ConvertToPdf(
"input.html", "margins.pdf", properties);
if (status != CHtmlConverter.CErrorCode.HTML_CONVERTER_SUCCESS) {
throw new IllegalStateException("HTML conversion failed: " + status);
}
} finally {
properties.release();
}四个边距必须为非负数。getPageMargins() 返回一个新数组,顺序为上、右、下、左;修改该数组不会更新属性。新建的 CConverterProperties 默认四个边距均为 0。邮件转换在未传入属性对象时使用独立的默认边距,详见邮件转换。
转换期间应保持属性对象及其字体提供者有效;使用结束后,按上例释放属性对象。