将记录列为pdf格式c#

时间:2017-06-28 07:49:56

标签: c# asp.net list pdf itext

我的任务是从数据库中提取一组记录并将其转换为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的文章。先谢谢你们。

3 个答案:

答案 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)

简便方法-ArrayToPdf(githubnuget

byte[] pdf = myList.ToPdf();
File.WriteAllBytes("result.pdf", pdf);

答案 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);