C# 将HTML网页、HTML字符串转换为PDF
要在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
变量中,并且你有足够的权限来执行该命令行工具以及写入和删除临时文件。
评论已关闭