我有一个jtable
我正在用来显示一些数据。假设我有大约200行数据。我能够pdf
通过使用生成iText library,
但是我面临的问题是未生成所有行。如何动态添加,new page
以便生成所有行?请查看下面的代码,请在这里帮助我。
Document doc = new Document(new Rectangle(1350, 1450));
PdfDestination pdfDest = new PdfDestination(PdfDestination.XYZ, 0, 800, 0.50f);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date = new java.util.Date();
String generatedDate = formatter.format(date);try {
PdfWriter writer;
writer = PdfWriter.getInstance(doc, new FileOutputStream(save_pdf.getSelectedFile().getAbsoluteFile() + ".pdf"));
writer.setViewerPreferences(PdfWriter.PageLayoutSinglePage);
doc.open();
PdfAction action = PdfAction.gotoLocalPage(1, pdfDest, writer);
writer.setOpenAction(action);
doc.add(new Paragraph("REPORTS", f));
doc.add(new Paragraph("Document Generated On - " + generatedDate, f));
PdfContentByte cb = writer.getDirectContent();
cb.saveState();
Graphics2D g2;
g2 = cb.createGraphics(1350, 1275);
Shape oldClip = g2.getClip();
g2.clipRect(0, 0, 1350, 1275);//1275
table1.print(g2);
JTableHeader h = table1.getTableHeader();
h.print(g2);
g2.setClip(oldClip);
writer.newPage();
g2.dispose();
cb.restoreState();
} catch (DocumentException | FileNotFoundException e) {
}
doc.close();
好的,这是一个非常基本的示例……
JTable通过各种print方法,已经支持打印了,基本上,这归结为获取JTable Printable
接口实例并将其传递给打印API,该API需要Graphics2D上下文来绘制……
奇怪的是,您具有Graphics2D上下文,因此这里的技巧是“充当”打印机并自己调用JTable的Printable print方法…
DefaultTableModel model = new DefaultTableModel(0, 10);
for (int row = 0; row < 400; row++) {
Object[] values = new Object[10];
for (int col = 0; col < 10; col++) {
values[col] = ((char) ('A' + col)) + "x" + row;
}
model.addRow(values);
}
JTable table = new JTable(model);
table.setSize(table.getPreferredSize());
JTableHeader tableHeader = table.getTableHeader();
tableHeader.setSize(tableHeader.getPreferredSize());
Document doc = new Document(new Rectangle(1350, 1450));
PdfDestination pdfDest = new PdfDestination(PdfDestination.XYZ, 0, 800, 0.50f);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date = new java.util.Date();
String generatedDate = formatter.format(date);
Paper paper = new Paper();
paper.setSize(1350, 1450);
paper.setImageableArea(10, 10, 1350 - 20, 1450 - 20);
PageFormat pf = new PageFormat();
pf.setPaper(paper);
Printable printable = table.getPrintable(JTable.PrintMode.NORMAL, null, null);
try {
PdfWriter writer;
writer = PdfWriter.getInstance(doc, new FileOutputStream("test.pdf"));
writer.setViewerPreferences(PdfWriter.PageLayoutSinglePage);
doc.open();
// Use this to "test" if there is page
// available for printing, otherwise it prints
// a empty page and I can't figure out
// how to remove it :P
BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = img.createGraphics();
Font f = new Font(Font.TIMES_ROMAN, 12f);
int page = 0;
int result = Printable.NO_SUCH_PAGE;
PdfContentByte cb = writer.getDirectContent();
do {
result = printable.print(g, pf, page);
if (result == Printable.PAGE_EXISTS) {
cb.saveState();
Graphics2D g2 = cb.createGraphics(1350, 1450);
System.out.println(page);
result = printable.print(g2, pf, page);
g2.dispose();
cb.restoreState();
doc.add(new Paragraph("REPORTS", f));
doc.add(new Paragraph("Document Generated On - " + generatedDate, f));
page++;
doc.newPage();
}
} while (result == Printable.PAGE_EXISTS);
g.dispose();
} catch (DocumentException | PrinterException | FileNotFoundException e) {
e.printStackTrace();
} finally {
doc.close();
}
现在,我需要显示表以便显示行标题,但是可能还有其他解决方法。
我正在尝试用Java阅读文本,但效果不好。这是我的密码 但是这样的结果 请稍等... 如果此消息最终未被文档的正确内容替换,则PDF查看器可能无法显示此类文档。 您可以通过访问http://www.adobe.com/go/reader_download.升级到适用于Windows®、Mac或Linux®的最新版本的Adobe Reader 有关Adobe Reader的更多帮助,请访问http:
问题内容: 我正在构建一个POC。我为Google Plus创建了一个直通代理服务。不使用任何代理服务,我得到的是我的输出: 但是,当我尝试使用简单的传递服务执行相同操作时,我只会得到: 我在wso2esb网站上看到他们有一个错误,并且为解决该错误而给出的解释是所接收的json数据格式不正确。但是现在我该如何解决该问题。我的意思是,在esb将其转换为json数据之前,他们可以通过任何方式操作jso
我正在使用下面的代码将postingdata添加到firebase中。问题是,当我在onComplete中注释finish方法时,我的所有数据都正确写入firebase数据库。但是,当我取消对finish方法的注释时,大多数数据都不是用datbase编写的。我想用finish方法写入完整数据。
本文向大家介绍java在pdf中生成表格的方法,包括了java在pdf中生成表格的方法的使用技巧和注意事项,需要的朋友参考一下 1、目标 在pdf中生成一个可变表头的表格,并向其中填充数据。通过泛型动态的生成表头,通过反射动态获取实体类(我这里是User)的get方法动态获得数据,从而达到动态生成表格。 每天生成一个文件夹存储生成的pdf文件(文件夹的命名是年月日时间戳),如:201511
问题内容: 我有一个Java类,正在使用iText库生成PDF文件。现在,根据我的需要,我必须将生成的PDF文件保存到MySQL数据库表中,但是我不知道该怎么做。 我担心的是: 我应该在PDF表的MySQL列中使用哪种 数据类型 来保存PDF文件 哪个查询会将生成的PDF文件插入数据库 目前,我正在生成PDF文件,并将其存储到本地磁盘的硬编码文件路径中。 这是我的Java PDF生成代码: 请帮我
有一个目录 写入终端 我得到了错误 proc-gen-go:无效的Go导入路径"转发"为"proto/forward.proto" 导入路径必须至少包含一个正斜杠(“/”)字符。 看见https://developers.google.com/protocol-buffers/docs/reference/go-generated#package了解更多信息。 --go\u out:protoc