我正在寻找在服务器上呈现 PDF 的选项,以避免用户必须下载它们(它们是大文档)和/或安装和配置 PDF 阅读器(观众不精通技术)。Google Viewer 和 Scribd 是很好的例子,但我对在网络上提供 PDF(用于 Google)或将它们存储在另一方的服务器(Scribd)上不感兴趣。
我现在最喜欢的是FlexPaper和PDFWebViewer.NET,但我想看看我是否缺少任何其他选项。关于这个主题的大多数相关 SO 问题都有些过时了,所以也许有一些新的东西?
还有其他选择吗?
试用Atalasoft ($$)
您可以使用Aspose.Pdf.Kit for .NET将 PDF 页面转换为图像,然后使用任何图像控件查看这些图像。您可以将它与 Windows 窗体或 Web 窗体一起使用。您还可以使用程序员指南、技术文章、视频和演示获得完整的帮助。您也可以在论坛中提出任何技术问题。
我是 Aspose.Pdf.Kit 团队的成员。
在服务器上渲染 PDF 不是一种非常可扩展的方法。对于小型工作组,您可以这样做,但对于较大的工作组,您需要大量的硬件和带宽。返回 pdf 的各个部分要容易得多,因为格式是为此而设计的。我认为iTextSharp 可以提供帮助。
有这个。
有点杂乱无章,但它是免费的,如果你喜欢这种东西,你可以自己动手。
试用RAD PDF ($$)
您可以为此目的使用ASP.Net ReportViewer 控件。通常,该控件用于导出为 PDF,但根据此,您可以在 ReportViewer 中显示现有的 PDF 文件:
您可以通过调用 ReportViewer.LocalReport.Render() 并为格式指定“PDF”来呈现为 PDF。然后可以在应用程序中以任何方式使用此字节流。
这是该讨论的代码。您可能会在评论中找到一些其他有用的信息。
Dim warnings As Warning() = Nothing
Dim streamids As String() = Nothing
Dim mimeType As String = Nothing
Dim encoding As String = Nothing
Dim extension As String = Nothing
Dim bytes As Byte()
'Get folder on web server from web.config
Dim FolderLocation As String
FolderLocation = System.Configuration.ConfigurationManager.AppSettings("ReportOutputPath")
'First delete existing file
Dim filepath As String = FolderLocation & "PCSummary.PDF"
File.Delete(filepath)
'Then create new pdf file
bytes = ReportViewer1.LocalReport.Render("PDF", Nothing, mimeType, _
encoding, extension, streamids, warnings)
Dim fs As New FileStream(FolderLocation & "PCSummary.PDF", FileMode.Create)
fs.Write(bytes, 0, bytes.Length)
fs.Close()