我的任务是从数据库中提取一组记录并将其转换为pdf文件。
List<EligibilityCheckReportInfo> list = dbManager.GetEligibiltyCheckReportInfo(" where ( eligibility_check.REGDATE BETWEEN '" + dbManager.GetMySqlType("01/02/2017") + "' AND '" + dbManager.GetMySqlType2("14/02/2017") + "' ) ");
&#34;列表&#34;是我从数据库生成的数据。我需要将列表转换为pdf。有人能告诉我这样做的方法吗?任何指导或提示将不胜感激。我试图从谷歌寻找答案,但我只能找到从gridview转换为pdf的文章。先谢谢你们。
答案 0 :(得分:4)
根据您的具体用例,有几个选项。
我们目前没有从您想要的数据类型直接转换为pdf。 所以,你可以自己做一些工作 但不是很多。
查看我们的网站(特别是样本),了解如何使用iText制作表格。无需计算坐标。您所做的只是定义您希望表格中有多少列,然后将单元格添加到表格中。
http://developers.itextpdf.com/examples-itext7
protected void manipulatePdf(String dest) throws Exception {
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest));
Document doc = new Document(pdfDoc);
Table table = new Table(8);
for (int i = 0; i < 16; i++) {
table.addCell("hi");
}
doc.add(table);
doc.close();
}
所以,就像我说的那样,你的用例所需的工作量取决于你想要解决这个问题的彻底/普遍程度。 您可以实现一些仅适用于您的数据的功能。或者你可以去制作处理任意gridview的通用版本。
但最终,iText期望的是,您为每个单元格提供一些文本值。
答案 1 :(得分:1)
答案 2 :(得分:-2)
PDFsharp是一个很棒的图书馆。
http://www.pdfsharp.com/PDFsharp/
棘手的部分是你必须设置页面中每个元素的绝对位置(X,Y)。所以你必须自己设计页面的布局。
示例代码:
PdfDocument pdf = new PdfDocument();
pdf.Info.Title = "Title";
pdf.Info.Author = "Author";
PdfPage pdfPage = pdf.AddPage();
XGraphics graph = XGraphics.FromPdfPage(pdfPage);
graph.DrawString("Hello", new XFont("Verdana", 12, XFontStyle.Regular), XBrushes.Black, new Point(50, 50), XStringFormats.TopLeft);
pdf.Save(pdfFilename);