2

我正在创建一个 HTML 电影目录,然后将其转换为 PDF。我使用的是 EO.Pdf,它适用于我的小测试样本。但是,当我对整个电影列表运行它时,生成的 HTML 文件将近 8000 行,7MB。EO.Pdf 尝试转换时超时。我相信这是免费版本的限制,因为我可以复制整个 HTML 并将其粘贴到他们的在线演示中并且它可以工作。

我正在寻找使用的替代方法。我不擅长命令行或运行外部程序,所以我更喜欢可以添加到 .NET 库并轻松使用的东西。我承认 EO.Pdf 的使用很简单,一旦我将 dll 添加到库并添加命名空间,只需一行代码即可将 HTML 代码或 HTML 文件转换为 PDF。我遇到的缺点是他们在每个页面上都有一个印章(16pt 字体),上面有他们的网站。它也不会拾取我一半的图像,不知道为什么。我在 HTML 文件中使用了图像的相对 URL,并在与 HTML 文件相同的目录中创建了 PDF。

我不想在 PDF 中重新创建布局,所以我认为 iTextSharp 之类的东西已经过时了。我读过一些关于 wkhtmltopdf 之类的东西或类似的奇怪东西。听起来不错,但需要一个包装器,我不知道如何实现或使用它。

我将不胜感激有关如何使用它们的基本说明的建议。一个库和几行关于如何使用它的信息。或者,如果您能告诉我如何设置/使用 wkhtmltopdf,我将非常感激!

提前致谢!

4

3 回答 3

3

我正在使用 wkhtmltopdf,对此我很满意。一种使用方式:

Process p = new Process();
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "wkhtmltopdf.exe";
p.StartInfo.Arguments = "-O landscape <<URL>> -";
p.Start();

然后你可以得到一个流:

p.StandardOutput.BaseStream

我使用它是因为我需要一个流,当然你可以以不同的方式调用它。


这里也是关于调用 wkhtmltopdf的讨论


我刚刚看到,有人正在为 wkhtmltopdf 实现一个 c# 包装器。我还没有测试过,但可能值得一看。

于 2011-07-13T08:16:26.713 回答
2

经过大量搜索后,我决定使用 HiQPdf。它使用简单,速度足以满足我的需求,而且价格点对我来说是可以接受的。

var converter = new HiQPdf.HtmlToPdf();
converter.Document.PageSize = PdfPageSize.Letter;
converter.Document.PageOrientation = PdfPageOrientation.Portrait;
converter.Document.Margins = new PdfMargins(15); // Unit = Points               
converter.ConvertHtmlToFile(htmlText, null, fileName);

如果您可以将其保持在 3 页,它甚至还包括免费版本。 http://www.hiqpdf.com/free-html-to-pdf-converter.aspx

不,我与他们没有任何关系。

于 2016-09-06T17:12:47.333 回答
0

我推荐ExpertPdf。

ExpertPdf Html To Pdf Converter非常易于使用,它支持最新的html5/css3。您可以将整个 url 转换为 pdf:

using ExpertPdf.HtmlToPdf; 
byte[] pdfBytes = new PdfConverter().GetPdfBytesFromUrl(url);

或一个 html 字符串:

using ExpertPdf.HtmlToPdf; 
byte[] pdfBytes = new PdfConverter().GetPdfBytesFromHtmlString(html, baseUrl);

您还可以选择将生成的 pdf 文档直接保存到磁盘上的文件流中。

于 2014-11-14T14:31:23.620 回答