1

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

它将在 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);
}
}
4

1 回答 1

2

为此,您将需要利用iTextSharp 库之类的东西。这是一个直接的解决方案。考虑以下代码块:

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 的所有概念的类,而不仅仅是段落。

于 2013-07-18T12:49:25.277 回答