我一直指向ITextSharp的方向,当我从NuGet下载软件包时,我发现一些名为RazorToPDF的东西只是为了发现由于项目不再受支持而无法解决的格式问题。
经过更多的研究后,我惊讶地发现在SO上没有类似措辞的问题。
那么伙计们,将MVC项目中的HTML页面/表格转换为PDF文件的最佳方法是什么?
答案 0 :(得分:0)
将MVC项目中的HTML页面/表格转换为PDF文件的最佳方法是什么?
通常,从客户端的Web浏览器将其打印为PDF格式。
问题是,在这种情况下,依靠视图的最终用户视角,您还依赖于该视图的最终用户呈现。这是一个应该完全从这个特定方程中删除的步骤。
请注意,HTML网页呈现方式与PDF呈现方式之间存在根本差异。这两者不是100%可互换的。 PDF具有静态页面大小,并且元素绝对放置,而HTML具有动态大小,并且元素放置在流布局中。还有一些其他注意事项,例如可能在该视图中进行的客户端DOM操作。 “渲染”它很快就变成了一个基于浏览器的活动,这是你不应该真正需要在服务器端做的事情。
不要将PDF视为渲染视图后的额外步骤,而应将其视为与其他视图并行的视图和/或其自身。一个请求的操作导致HTML视图,另一个请求的操作导致PDF“视图”。因此,在将文件内容返回给客户端之前,您可以设计PDF模板的外观,并使用数据(使用类似iTextSharp)填充它。