C# 将HTML网页、HTML字符串转换为PDF
    		       		warning:
    		            这篇文章距离上次修改已过435天,其中的内容可能已经有所变动。
    		        
        		                
                要在C#中将HTML页面或字符串转换为PDF,可以使用第三方库如wkhtmltopdf。wkhtmltopdf是一个用于网页渲染到PDF的开源工具,它可以通过命令行接口使用。
在C#中,你可以使用System.Diagnostics.Process类来调用wkhtmltopdf命令行接口。以下是一个简单的示例代码,展示了如何将HTML字符串转换为PDF:
首先,确保你已经安装了wkhtmltopdf。你可以从这里下载安装程序:https://wkhtmltopdf.org/downloads.html
然后,在C#项目中,你可以使用以下代码:
using System.Diagnostics;
 
public class HtmlToPdfConverter
{
    public void ConvertHtmlToPdf(string htmlContent, string outputPdfPath)
    {
        // 确保wkhtmltopdf在系统PATH中,或者提供完整路径
        var wkhtmltopdfPath = "wkhtmltopdf";
 
        // 创建临时的HTML文件
        var tempHtmlPath = "temp.html";
        System.IO.File.WriteAllText(tempHtmlPath, htmlContent);
 
        try
        {
            var startInfo = new ProcessStartInfo
            {
                FileName = wkhtmltopdfPath,
                Arguments = $"{tempHtmlPath} {outputPdfPath}",
                UseShellExecute = false,
                CreateNoWindow = true,
                WindowStyle = ProcessWindowStyle.Hidden
            };
 
            using (var process = Process.Start(startInfo))
            {
                process.WaitForExit(); // 等待转换完成
            }
        }
        finally
        {
            // 删除临时HTML文件
            if (System.IO.File.Exists(tempHtmlPath))
            {
                System.IO.File.Delete(tempHtmlPath);
            }
        }
    }
}
 
// 使用方法
var converter = new HtmlToPdfConverter();
converter.ConvertHtmlToPdf("<html><body><h1>Hello World</h1></body></html>", "output.pdf");请确保wkhtmltopdf可执行文件的路径已正确设置在wkhtmltopdfPath变量中,并且你有足够的权限来执行该命令行工具以及写入和删除临时文件。
评论已关闭