3

我需要一个强大的产品,用于使用用于 ASP.NET WebForms/MVC 的 C# API 从 Web 服务器上的网页创建 PDF 文件。该产品应支持标记中的 SVG 和 PATH 标记,并且能够呈现通过在呈现页面后触发的 ajax 调用创建的标记。以下步骤将使您更好地了解我要完成的工作。

  1. 用户单击网页上的“导出为 PDF”按钮。这会将请求发送到通用处理程序(ashx 文件)。

  2. 通用处理程序验证用户的凭据和安全许可,然后将要呈现为 PDF 文件的网页的 URL 传递给 PDF 生成工具(这是 C# API 发挥作用的地方)。

  3. PDF 生成工具将 PDF 文件保存在服务器上的临时文件夹中。

  4. 临时 PDF 被读入字节数组并发送到响应流,然后用户可以在其中下载文件。

  5. 如果 PDF 生成工具支持它,它会将 PDF 文件返回到用户的浏览器,而不是保存到服务器上的临时位置。

我目前正在使用 activePDF 的 WebGrabber 工具来完成此操作,但在渲染 Kendo DataViz 图表时遇到问题(它们使用 SVG 和 PATH 标签)。我也试过 Aspose.Pdf 这太可怕了。我想知道是否有人对此有任何经验并且可以推荐可以处理这些要求的专业工具。

只是一些最后的笔记:

  • WebBrowser.Print() 方法不是一个选项。
  • Adobe 是否针对这些要求提供任何服务?
  • 我查看了 iText,但不知道它是否支持 Kendo DataViz 图表。
4

3 回答 3

2

我们需要使用我们的 WCF 服务在服务器中生成 PDF。我们需要创建 PDF 并合并,我们使用了 PDFSharp,不确定它是否可以处理您所描述的内容。

http://www.pdfsharp.net/

我们还使用了 ActiveReports 服务器版本 7,它以 xml 格式输入并以 PDF、WORD 和 HTML 格式输出

于 2013-02-28T19:35:13.453 回答
1

我通常使用ActiveReports来生成 PDF,但这更像是一个可以导出为 PDF 的报告引擎。如果您可以获取截图作为图像,您可以将图像动态添加到报告中,然后将其发送到 PDF。

或者,如果要求打印特定页面,例如收据,那么我不会获取 URL。相反,我会将收据布置为报告,然后提供适当的数据来生成该报告,将其导出为 PDF,并将其传送到浏览器。

于 2013-02-28T19:32:13.460 回答
1

我之前在 ASP.NET MVC 中使用wkhtmltopdf从网页渲染了 PDF 。但是,我一直将其称为 exe,而不是 API。

看起来有一个项目在这里为其提供 C# API 。

于 2013-02-28T22:44:43.403 回答