📜  将html转换为pdf c#(1)

📅  最后修改于: 2023-12-03 15:25:15.492000             🧑  作者: Mango

将HTML转换为PDF的C#介绍

在C#中,将HTML转换为PDF可以使用多种方法和工具,如wkhtmltopdf、iTextSharp、PDFsharp等库。这些工具可以帮助开发人员根据需要创建高质量的PDF文档,并且可定制化程度很高。

wkhtmltopdf

wkhtmltopdf是一个开源命令行工具,可以将HTML转换为PDF。它使用webkit引擎将HTML渲染成PDF。可以使用Process.Start方法在C#代码中调用wkhtmltopdf工具。

示例代码:

Process p = new Process();
p.StartInfo.FileName = "wkhtmltopdf.exe";
p.StartInfo.Arguments = "http://www.baidu.com output.pdf";
p.Start();
p.WaitForExit();

该示例代码将百度首页转换为PDF。

iTextSharp

iTextSharp库是一个PDF文档处理库,可以让开发人员在C#中创建和处理PDF文档。iTextSharp提供了很多方法和工具,可以将HTML转换为PDF。使用该库需要先将HTML文件转换成流或字节数组,然后使用iTextSharp的PdfWriter类将流写入PDF文档中。

示例代码:

using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;

public void HTMLToPDF(string htmlString, string filePath)
{
    using (FileStream stream = new FileStream(filePath, FileMode.Create))
    {
        Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
        PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
        pdfDoc.Open();
        using (TextReader reader = new StringReader(htmlString))
        {
            XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, reader);
        }
        pdfDoc.Close();
    }
}

该示例代码将HTML字符串转换为PDF文件。

PDFsharp

PDFsharp是一个开源库,可以在C#中创建PDF文档。PDFsharp提供了很多方法和工具,可以将HTML转换为PDF。使用该库需要先将HTML文件转换成流或字节数组,然后使用PDFsharp的PdfDocument类将流写入PDF文档中。

示例代码:

using PdfSharp.Drawing;
using PdfSharp.Pdf;
using System.IO;

public void HTMLToPDF(string htmlString, string filePath)
{
    PdfDocument pdfDoc = new PdfDocument();

    PdfPage pdfPage = pdfDoc.AddPage();
    XGraphics graph = XGraphics.FromPdfPage(pdfPage);
    var htmlRenderer = new HtmlRenderer();

    var image = new Bitmap(new MemoryStream(Encoding.UTF8.GetBytes(htmlString)));

    var imageHeight = image.Height;
    var imageWidth = image.Width;
    var img = XImage.FromGdiPlusImage(image);

    graph.DrawImage(img, 0, 0, imageWidth, imageHeight);

    pdfDoc.Save(filePath);
    pdfDoc.Close();
}

该示例代码将HTML字符串转换为PDF文件。

如上所述,使用C#将HTML转换为PDF可以使用多种方法和工具。开发人员可以选择最适合自己需求的方法和工具来实现PDF文档的生成。