我生成一个文件,如在下面的代码,除了ofcourse的表的内容,这是不同的。 我需要做的是确保此表不超过一个页面的大小,无论在细胞中的内容量。 有没有办法做到这一点?
进口com.itextpdf.text.Phrase; 进口com.itextpdf.text.Document; 进口com.itextpdf.text.DocumentException; 进口com.itextpdf.text.PageSize; 进口com.itextpdf.text.pdf.PdfPCell; 进口com.itextpdf.text.pdf.PdfPTable; 进口的java.awt.Desktop; 进口的java.io.File; 进口java.io.FileNotFoundException; 进口java.io.FileOutputStream中; 进口产生java.io.IOException;公共无效createTemplate()抛出DocumentException,FileNotFoundException异常,IOException的{字符串TARGET = System.getProperty( “的user.home”)+ “\ temp.pdf”;
文档文件=新文件(PageSize.A4); PdfWriter作家= PdfWriter.getInstance(文件,新的FileOutputStream中(TARGET)); document.open();PdfPTable table = new PdfPTable(7); for (int i = 0; i < 105; i++) { Phrase p = new Phrase("some text"); PdfPCell cell = new PdfPCell(); cell.addElement(p); table.addCell(cell); } table.setTotalWidth(PageSize.A4.getWidth()-10); table.setLockedWidth(true); PdfContentByte canvas = writer.getDirectContent(); PdfTemplate template = canvas.createTemplate(table.getTotalWidth(),table.getTotalHeight()); table.writeSelectedRows(0, -1, 0, PageSize.A4.getHeight(), template); Image img = Image.getInstance(template); img.scaleToFit(PageSize.A4.getWidth(), PageSize.A4.getHeight()); img.setAbsolutePosition(0, PageSize.A4.getHeight()); document.add(img); document.close(); Desktop desktop = Desktop.getDesktop(); File file = new File(TARGET); desktop.open(file); }
编辑:@Bruno Lowagie。 与包裹的图像模板中的提示音正好给我,我改变根据的代码,但我现在得到的是一个空的PDF。 我是不是做错了什么,或者这是错误的做法产品总数?