【发布时间】:2011-07-14 11:59:40
【问题描述】:
我有一个带有抽象方法 draw(Graphics2D g2) 和方法 print()、showPreview()、printPDF() 的抽象类。对于我的 Java 程序中的每个文档,我实现了 draw(),因此我可以打印、显示预览并为每个文档创建一个 PDF 文件。 我的问题是如何从该 Graphics 对象创建具有多个页面的 PDF。 我通过为每一页创建一个 PDF 文件来解决它,然后将这些文件合并到一个新文件中。但必须有更好的方法。 我有以下代码来创建一页 PDF:
public void printPDF1(){
JFileChooser dialog = new JFileChooser();
String filePath = "";
int dialogResult = dialog.showSaveDialog(null);
if (dialogResult==JFileChooser.APPROVE_OPTION){
filePath = dialog.getSelectedFile().getPath();
}
else return;
try {
Document document = new Document(new Rectangle(_pageWidth, _pageHeight));
PdfWriter writer = PdfWriter.getInstance(document,
new FileOutputStream(filePath));
document.open();
PdfContentByte cb = writer.getDirectContent();
g2 = cb.createGraphics(_pageWidth, _height);
g2.translate(0, (_numberOfPages - _pageNumber) * _pageHeight);
draw(g2);
g2.dispose();
document.close();
}
catch (Exception e2) {
System.out.println(e2.getMessage());
}
}
【问题讨论】: