直接将 .aspx 转换为 .pdf [关闭]
Posted
技术标签:
【中文标题】直接将 .aspx 转换为 .pdf [关闭]【英文标题】:Directly convert .aspx to .pdf [closed] 【发布时间】:2010-11-16 06:22:45 【问题描述】:我正在进行的一个项目要求我构建一个以 html (.aspx) 和 PDF 格式输出的报告。是否有可用的解决方案允许我将 .aspx 页面的输出提供给 PDF 生成实用程序?完全支持 HTML 和 CSS 将是理想的。
谢谢!
【问题讨论】:
感谢您到目前为止的回答!我可能应该澄清一件事...... Web 应用程序使用 Web 表单和 SSL 证书进行保护。希望这不会是一个问题。从我正在阅读的内容来看,ABCpdf 和 wkhtmltopdf 似乎是最好的选择。 ABCpdf 似乎更好地与 .NET 集成,wkhtmltopdf 可能在渲染复杂的 CSS 方面做得更好,因为它使用了 WebKit 渲染引擎。 CSS 可能是半复杂的,将来可能会添加图像(图表等)。谢谢! 【参考方案1】:wkhtmltopdf 会做到的.... 用法:
wkhtmltopdf http://www.google.com google.pdf
就是这样。你可以去任何网页......甚至是aspx。 css 比任何其他实用程序都受到更好的支持,因为它使用 webkit html 渲染引擎(Safari、Chrome)。享受
有一个 .exe (7 mb) 可以从 .Net 中使用,只需使用 Process.Start 确保将 exe 复制到项目目录中,否则必须指定完整路径。 例如:
static void HtmlToPdf(string website,string destinationFile)
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "wkhtmltopdf.exe";
startInfo.Arguments = website+" "+destinationFile;
Process.Start(startInfo);
我认为 SSL 是受支持的,但我认为目前 2-way SSL 不会起作用。这是我见过的最好的单站 HTML -> PDF 工具。
【讨论】:
工作得很好,即使是我的网络托管(网络应用程序生成 pdf 发票) 我发现它破坏了一些页面 - 例如检查这一页:jsfiddle.net/BgNPC/8【参考方案2】:iTextSharp 可以将 HTML 转为 PDF,但只有基本的 HTML 和 CSS 不完全支持。
一些关于向 iTextSharp 发送 HTML 的文章:
http://somewebguy.wordpress.com/2009/05/08/itextsharp-simplify-your-html-to-pdf-creation/
http://aspdotnetcodebook.blogspot.com/2008/07/how-to-export-content-of-gridview-to.html
http://geekswithblogs.net/casualjim/archive/2005/11/13/59943.aspx#393262
【讨论】:
【参考方案3】:我过去使用过HTMLDoc,它在将带有一些基本格式的 HTML 表格、图像等转换为体面的 PDF 报告方面做得很好。似乎还有一个open source version。
iTextSharp 在基本级别呈现 html。
我发现破解一个简单的 HTML 渲染器可以让我立即提供 PDF 功能,然后我不得不在以后重新安装一个 PDF 报告渲染器。如果您将表示层与数据和业务逻辑分开,这应该非常简单。
我当时使用了PDFlib,但iTextSharp 和PDFlib 都是非常棒的库,可用于以编程方式从您的数据源创建PDF。
我还没有看到一个完美的 HTML 2 PDF 渲染器,所以我会计划一个两阶段的方法。您可能还想查看this question 以了解其他选项。
【讨论】:
@Jle 对 wkhtmltopdf 的建议听起来像是 htmldoc 的更好替代品。【参考方案4】:AspPDF 是一个 ActiveX 服务器组件,用于动态创建、读取和修改可移植文档格式 (PDF) 文件。
http://www.asppdf.com
【讨论】:
【参考方案5】:ActivePDF WebGrabber 是一款出色的产品,一旦您正确配置了所有内容。它的成本很高,但它对 HTML 和 CSS 的支持很棒。
【讨论】:
【参考方案6】:我们为此使用了Alt-Soft XML2PDF 产品。它可以使用XSL-FO markup language将任何XML文件转换为PDF。
因此,如果您的 ASPX 页面与 XHTML 兼容,那么 Xml2PDF 将非常愉快且轻松地将这些页面转换为 PDF。这是一个示例页面 - 包含一个可下载的 ASP.NET 示例 - 展示了它是如何工作的:http://www.alt-soft.com/products_HTML2PDF.aspx
它不是免费的,但物有所值!
马克
【讨论】:
【参考方案7】:http://aspdotnetcodebook.blogspot.com/2009/04/how-to-convert-web-page-to-pdf.html 向您展示如何使用 iTextSharp 覆盖渲染并将内容更改为 PDF
【讨论】:
【参考方案8】:这是将 ASPX 页面转换为 PDF 的最佳控件:
http://www.essentialobjects.com/Products/EOPdf/ASPXToPDF.aspx
这是一个 ASP.NET 服务器控件,您可以直接放入您的页面。它自动处理 ASP.NET 身份验证和会话。因此,即使页面请求登录并使用会话数据,您也可以转换当前页面。
【讨论】:
我无法从任一服务器下载它 如何下载?以上是关于直接将 .aspx 转换为 .pdf [关闭]的主要内容,如果未能解决你的问题,请参考以下文章