如何将数据打印为pdf格式?

时间:2013-07-18 12:46:06

标签: c#

在我的申请中,学生将填写所有详细信息,然后点击提交按钮。

它将在studentDetails.aspx页面显示学生的所有详细信息。

在studentDetails.aspx页面中,有一个“打印”按钮。

我想要的是,当学生点击此打印按钮时,它应以PDF文件格式显示学生的详细信息,随时可以打印。

我尝试了以下内容,任何人都可以帮我解决这个问题......“

protected void Button1_Click(object sender, EventArgs e)
    {
        Uri strurl = Request.Url;
        string url = strurl.ToString();

    string filename = "Test";

    HtmlToPdf(url, filename);
}
public static bool HtmlToPdf(string Url, string outputFilename)
{
    string filename = ConfigurationManager.AppSettings["ExportFilePath"] + "\\" + outputFilename + ".pdf";


    Process p = new System.Diagnostics.Process();
    p.StartInfo.Arguments = Url + " " + filename;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.CreateNoWindow = true;

    p.StartInfo.FileName = HttpContext.Current.Server.MapPath(@"C:\Users\$$\Documents\Visual Studio 2008\Projects\santhu") + "wkhtmltopdf.exe";

    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.RedirectStandardError = true;
    p.StartInfo.RedirectStandardInput = true;
    p.Start();
    string output = p.StandardOutput.ReadToEnd();

    p.WaitForExit(60000);

    int returnCode = p.ExitCode;
    p.Close();
    return (returnCode == 0 || returnCode == 2);
}
}

1 个答案:

答案 0 :(得分:2)

你会想要利用iTextSharp library这样的东西。这是一个直接的解决方案。请考虑以下代码块:

using (Document doc = new Document(PageSize.A4, 0, 0, 0, 0))
{
    using (FileStream stream = new FileStream(targetPath, FileMode.Create))
    {
        PdfWriter.GetInstance(doc, stream);

        doc.Open();

        var font = FontFactory.GetFont("Courier", 10);
        var paragraph = new Paragraph(sb.ToString(), font);
        doc.Add(paragraph);

        doc.Close();
    }
}

这需要一个文本文件并将其转换为PDF。现在很明显你需要根据自己的需要对其进行修改,但是你看它是多么简单。此外,该库还包含PDF的所有概念类,而不仅仅是段落。