我需要一个强大的产品,用于使用ASP.NET WebForms / MVC的C#API在Web服务器上从网页创建PDF文件。该产品应支持标记中的SVG和PATH标记,并且能够呈现通过在呈现页面后触发的ajax调用创建的标记。以下步骤将使您更好地了解我正在努力实现的目标。
用户点击网页上的“导出到PDF”按钮。这会向通用处理程序(ashx文件)发送请求。
通用处理程序验证用户的凭据和安全许可,然后将要呈现为PDF文件的网页的URL传递给PDF生成工具(这是C#API发挥作用的地方)。
PDF生成工具将PDF文件保存在服务器上的临时文件夹中。
将临时PDF读入字节数组并发送到响应流,然后用户可以下载该文件。
如果PDF生成工具支持它,它会将PDF文件返回给用户的浏览器,而不是保存到服务器上的临时位置。
我目前正在使用activePDF的WebGrabber工具来实现这一目标,但它在渲染Kendo DataViz图表时遇到了问题(他们使用SVG和PATH标签)。我也试过Aspose.Pdf,这太可怕了。我想知道是否有人对此有过任何经验,并且可以推荐一种能够满足这些要求的专业工具。
最后一些注释:
答案 0 :(得分:2)
我们需要使用我们的WCF服务在服务器中生成PDF。我们需要创建PDF并合并,我们使用PDFSharp,不确定它是否能够处理你所描述的内容。
我们还使用了ActiveReports服务器版本7,它将输入作为xml并输出为PDF,WORD和HTML
答案 1 :(得分:1)
我通常使用ActiveReports来生成PDF,但这更像是一个可以导出为PDF的报告引擎。如果您可以将屏幕截图作为图像获取,则可以动态地将图像添加到报表中,然后将其发送到PDF。
或者,如果要求是打印特定页面,如收据,那么我就不会抓取URL。相反,我会将收据列为报告,然后提供相应的数据以生成该报告,将其导出为PDF,并将其发送到浏览器。
答案 2 :(得分:1)
我之前在ASP.NET MVC中使用wkhtmltopdf从网页呈现PDF。但是,我总是称它为exe,而不是API。
看起来有一个项目为它提供了一个C#API here。