当我生成pdf表格时,我想使用itext java在pdf的左上角添加表格编号
问题描述:
嗨当我使用java与itext生成表格时,我想在表头上方的文档 的左上角添加表格编号请让我知道如何做到这一点。当我生成pdf表格时,我想使用itext java在pdf的左上角添加表格编号
PdfPTable table = new PdfPTable(3); // 3 columns.
table.setWidthPercentage(100);
PdfPCell cell1 = new PdfPCell(new Paragraph("Cell 1"));
PdfPCell cell2 = new PdfPCell(new Paragraph("Cell 2"));
PdfPCell cell3 = new PdfPCell(new Paragraph("Cell 3"));
cell1.setBorder(0);
cell2.setBorder(0);
cell3.setBorder(0);
table.addCell(cell1);
table.addCell(cell2);
table.addCell(cell3);
如何设置表格对齐到页边距开始。
答
你的问题很混乱。你说你正在创建一个表单,但是当你说表单时,你似乎不是指交互式表单,而是指包含表格的普通PDF。
你说你要添加的头上述一些,但你不告诉我们您头的意思。你假设阅读你的问题的人可以阅读你的想法。
我想你想使用页面事件在每个页面的左上角添加String
。这将使你的问题的itextsharp: How to generate a report with dynamic header in PDF using itextsharp?
几乎重复的您可以创建PdfPageEventHelper
这样的一个子类:
public class Header extends PdfPageEventHelper {
protected Phrase header;
public void setHeader(Phrase header) {
this.header = header;
}
@Override
public void onEndPage(PdfWriter writer, Document document) {
PdfContentByte canvas = writer.getDirectContentUnder();
ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, header, 36, 806, 0);
}
}
然后,您可以使用此Header
类是这样的:
public void createPdf(String filename) throws IOException, DocumentException {
// step 1
Document document = new Document();
// step 2
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
Header event = new Header();
writer.setPageEvent(event);
// step 3
document.open();
// step 4
List<Integer> factors;
for (int i = 2; i < 301; i++) {
factors = getFactors(i);
if (factors.size() == 1) {
document.add(new Paragraph("This is a prime number!"));
}
for (int factor : factors) {
document.add(new Paragraph("Factor: " + factor));
}
event.setHeader(new Phrase(String.format("THE FACTORS OF %s", i)));
document.newPage();
}
// step 5
document.close();
}
在你例如,您不会有:
event.setHeader(new Phrase(String.format("THE FACTORS OF %s", i)));
你会碰到这样的:
event.setHeader(new Phrase(number));
哪里number
是要在坐标x = 36加号,Y = 806
那你试试?你是从头开始创建一个文档还是你正在填写一个现有的表单?你使用'showTextAligned()'方法吗?什么地方出了错?你需要澄清。在目前的状态下,你的问题不能得到回答,因为你没有给我们足够的信息。 – 2014-12-02 06:52:38
@Lowagie如何将showTextAligned()应用到表中。 – 2014-12-02 07:39:02