最佳实践
资源管理
java
CDocument document = new CDocument();
CBorder border = new CBorder(1f);
CBorderRadius radius = new CBorderRadius(5f)
// 使用这些资源
document.saveToFile("output.pdf");样式复用
java
// 创建可重用的样式
CStyle bodyTextStyle = document.createStyle();
bodyTextStyle
.setFontSize(12)
.setFontFamily("Arial");
bodyTextStyle.setMarginBottom(10);
CStyle headingStyle = document.createStyle();
headingStyle
.setFontSize(18)
.setFontWeight(CFontWeight.BOLD);
headingStyle.setMarginTop(15)
.setMarginBottom(10);
// 应用到多个元素
paragraph1.addStyle(bodyTextStyle);
paragraph2.addStyle(bodyTextStyle);
heading1.addStyle(headingStyle);
heading2.addStyle(headingStyle);性能优化
java
// 1. 批量创建元素时,考虑预先创建样式
CStyle itemStyle = document.createStyle();
itemStyle.setFontSize(12);
itemStyle.setMarginBottom(5);
for (int i = 0; i < 1000; i++) {
CText text = div.createTextElement("Item " + i);
text.addStyle(itemStyle); // 复用样式而不是每次设置
}
//2. 使用流输出而不是先写入内存
try (FileOutputStream fos = new FileOutputStream("large.pdf")) {
document.saveToFile(fos);
} catch (IOException e) {
e.printStackTrace();
}错误处理
java
try {
CDocument document = new CDocument();
CPage page = document.createPage(595, 842);
// 验证图片路径
String imagePath = "path/to/image.png";
File imageFile = new File(imagePath);
if (imageFile.exists()) {
CImage image = page.createDivElement().createImageElement(imagePath);
} else {
System.out.println("图片文件不存在: " + imagePath);
}
document.saveToFile("output.pdf");
} catch (Exception ex) {
System.out.println("生成 PDF 时出错: " + ex.getMessage());
ex.printStackTrace();
}