【发布时间】:2019-02-06 15:32:11
【问题描述】:
请检查这里的代码。面临从上到下合并 2 个 PDFPtable 的问题。
PdfPTable table = new PdfPTable(new float[] { 1.0f, 2.0f, 5.0f, 1.0f, 2.0f });
table.setWidthPercentage(100.0f);
ArrayList<String> lHeaders = new ArrayList<>();
lHeaders.add("S. No.");
lHeaders.add("Course Code");
lHeaders.add("Course Name");
lHeaders.add("Credit");
lHeaders.add("Letter Grade");
ArrayList<String> lData = new ArrayList<>();
lData.add("1");
lData.add("D 210");
lData.add("COMPUTER & INFORMATION TECHNOLOGY FUNDAMENTAL LAB-II");
lData.add("1.0");
lData.add("BB");
// Create and add a title across both columns.
Font headerfont = new Font(Font.TIMES_ROMAN, 15, Font.BOLD);
// PdfPCell cell = new PdfPCell (new Paragraph ("New Mustang
// Features"));
PdfPCell cell;
for (String i : lHeaders) {
cell = new PdfPCell(new Paragraph(i, headerfont));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setBackgroundColor(new Color(255, 0, 0));
// cell.setPadding (10.0f);
table.addCell(cell);
}
// Add header cells for these columns.
// cell = new PdfPCell (new Paragraph ("Feature"));
// PdfPCell cell1;
Font datafont = new Font(Font.HELVETICA, 10, Font.NORMAL);
for (String j : lData) {
cell = new PdfPCell(new Paragraph(j, datafont));
cell.setHorizontalAlignment(Element.ALIGN_LEFT);
// cell.setPadding (10.0f);
table.addCell(cell);
}
Font headerfont2 = new Font(Font.TIMES_ROMAN, 10, Font.BOLD);
PdfPTable table2 = new PdfPTable(8);
table2.setWidthPercentage(100.0f);
PdfPCell cell2;
cell2 = new PdfPCell(new Paragraph("CURRENT SEMESTER RECORD", headerfont2));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell2.setColspan(4);
table2.addCell(cell2);
cell2 = new PdfPCell(new Paragraph("CUMULATIVE SEMESTER RECORD", headerfont2));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell2.setColspan(4);
table2.addCell(cell2);
cell2 = new PdfPCell(new Paragraph("TOTAL CREDIT POINTS", headerfont2));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table2.addCell(cell2);
cell2 = new PdfPCell(new Paragraph("TOTAL CREDIT", headerfont2));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table2.addCell(cell2);
cell2 = new PdfPCell(new Paragraph("CREDITS EARNED", headerfont2));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table2.addCell(cell2);
cell2 = new PdfPCell(new Paragraph("SGPA", headerfont2));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table2.addCell(cell2);
cell2 = new PdfPCell(new Paragraph("TOTAL CREDIT POINTS", headerfont2));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table2.addCell(cell2);
cell2 = new PdfPCell(new Paragraph("TOTAL CREDIT", headerfont2));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table2.addCell(cell2);
cell2 = new PdfPCell(new Paragraph("CREDITS EARNED", headerfont2));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table2.addCell(cell2);
cell2 = new PdfPCell(new Paragraph("CGPA", headerfont2));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
table2.addCell(cell2);
cell2 = new PdfPCell(new Paragraph("Result declared on :", headerfont2));
cell2.setHorizontalAlignment(Element.ALIGN_LEFT);
cell2.setPaddingTop(40);
cell2.setBorderWidthLeft(0.5f);
cell2.setBorderWidthBottom(0.5f);
cell2.setColspan(4);
table2.addCell(cell2);
cell2 = new PdfPCell(new Paragraph("Controller of Examinations", headerfont2));
cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
cell2.setPaddingTop(40);
cell2.setBorderWidthRight(0.5f);
cell2.setBorderWidthBottom(0.5f);
cell2.setColspan(4);
table2.addCell(cell2);
我创建了两个 PDFPtable 实例,一个是 table,另一个是 table2,我只想合并这两个实例并从我的代码中返回。可能吗?我不想从我的代码中将它添加到文档中并返回文档实例。 pdf 看起来像附加的图像。
【问题讨论】:
-
用
PdfPTable table2 = table替换PdfPTable table2 = new PdfPTable(8)怎么样? -
@mkl no 我已经添加了两个 PDFPTable 1.
PdfPTable table = new PdfPTable(new float[] { 1.0f, 2.0f, 5.0f, 1.0f, 2.0f });和另一个 2.PdfPTable table2 = new PdfPTable(8);是否可以合并这两个表? -
你为什么要把它们做成两张表?
-
因为您可以查看随附的 pdf 屏幕截图,所以有 2 个表格。是否可以使用单个 PdfPtable 创建这两个表格,如果可以,那么如何?提前致谢。
-
好的,这些表的结构完全不同;虽然可以使它们成为一个(具有更多声明的列和许多列跨度),但这几乎没有意义。你还能改变方法签名吗,例如它是否返回
PdfPTable的列表而不是一个列表?这将允许您毫无问题地返回两个表。