我需要将一堆 HTML 文件(大约 30 个)转换为 PDF。如果我可以创建目录和链接页面会很棒,但现在我很乐意转换单个文件:)
我已经尝试了几种解决方案,最成功的是 EO.PDF,但它在每一页上都放了一个讨厌的水印,它无法处理超过几兆的文件,我的一些是 10 兆以上。
我已经阅读了很多关于 wkhtmltopdf 的好东西,并且我找到了它的包装器 WkHTMLToSharp。我找不到任何文档,所以我拼凑了以下代码,这是抛出异常。我将不胜感激任何帮助解决这个问题。
我注意到导致异常的行。(非常无用的)例外是:
"The type initializer for 'WkHtmlToXSharp.WkHtmlToPdfConverter' threw an exception."
- 代码 -
/// <summary>
/// Creates a PDF file from the HTML file passed in
/// </summary>
/// <param name="cFile">Full path to HTML file to generate PDF from</param>
/// <param name="pdfFile">Full path of PDF output file</param>
public static void WritePDF(string cFile, string pdfFile)
{
// Generates "The type initializer for
// 'WkHtmlToXSharp.WkHtmlToPdfConverter' threw an exception.":
WkHtmlToPdfConverter w = new WkHtmlToPdfConverter();
byte[] strHTML = w.Convert(cFile);
File.WriteAllBytes(pdfFile, strHTML);
w.Dispose();
}
在解决了缺少 DLL 的问题后,我发现那段代码实际上转换了 HTML 字符串,而不是文件。我可以使用它,但更喜欢使用 HTML 文件。
此外,PDF 文件中没有显示任何图像。它们都是 JPG(我知道 GIFS 存在问题)。