在我的项目中,需要将一些数据集导出为 PDF 格式。
我了解到 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);