在我的項目中,需要以PDF格式導出一些數據集。如何導出使用pdf模板和itext的數據集?
我瞭解到iText很有用,PdfpTable可以完成這項工作,但它需要大量代碼來處理樣式。雖然使用PDF模板可以節省調整樣式的時間和代碼,但我只能在模板中設置某些字段。
你能給我一些建議,使用像foreach這樣的命令來顯示數據集嗎?提前致謝!
下面是使用pdfpTable我的代碼,它所做的工作,但代碼是有點醜:
PdfPTable pdfTable = createNewPDFTable();
for (int i = 0; i < dataSet.size(); i++) {
MetaObject metaObject = SystemMetaObject.forObject(dataSet.get(i));
for (String field : fields) {
Phrase phrase = new Phrase(String.valueOf(metaObject.getValue(field) != null ? metaObject.getValue(field) : "")
, PDFUtil.createChineseSong(DEFAULT_CELL_FONT_SIZE));
PdfPCell fieldCell = new PdfPCell(phrase);
fieldCell.setBorder(Rectangle.NO_BORDER);
fieldCell.setFixedHeight(DEFAULT_COLUMN_HEIGHT);
fieldCell.setHorizontalAlignment(Element.ALIGN_CENTER);
fieldCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
pdfTable.addCell(fieldCell);
}
}
這裏有一些代碼使用pdfp模板,這是從iText的例子複製的工作尚未完成,因爲我還沒有找到正確的方式來顯示數據集。
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
AcroFields form = stamper.getAcroFields();
form.setField("text_1", "Bruno Lowagie");
form.setFieldProperty("text_1", "setfflags", PdfFormField.FF_READ_ONLY, null);
感謝您的回覆。也許我沒有清楚地描述這個問題,PdfpTalbe的第一個片段是我目前使用的,它已經完成了整個工作,並且我想用PDF模板來替換第一種方式,但由於我沒有完成工作,所以工作還沒有完成沒有找到適當的方式來顯示數據集。使用HTML是一個很好的建議,我會試一試。 –
我不明白(而且我還是不明白)爲什麼你在'PdfPTable'中使用表單域。我只是使用'PdfPTable'並用數據填充(不包含表單域)。 –
我不使用PdfpTalbe中的表單域,我只想使用PDF模板和表單文件來替換PdfpTale。 –