2010-06-22 77 views
0

我正在寻找在服务器上渲染PDF的选项,以避免用户不得不下载它们(它们是大文档)和/或安装并配置PDF阅读器(观众不是技术精通)。 Google Viewer和Scribd都是很好的例子,但我并不想让网络上的PDF可用(用于Google)或将它们存储在另一方的服务器上(Scribd)。用于服务器端PDF查看的替代方法?

我的最爱现在是FlexPaperPDFWebViewer.NET但我想看看我是否缺少任何其他选项。大多数关于这个话题的相关SO问题都有些过时,所以也许有一些新的东西?

要检出的其他选项是什么?

+0

你最终使用了什么?我正在寻找类似的东西... – Cerveser 2012-07-19 19:50:50

+0

我们放弃了它。 Google Docs查看器没有什么商业广告,经过几次尝试以及新的安全要求,我们不得不改变方向。 FlexPaper很好,但是我们使用它的时候质量和文件大小是不可接受的。 Atalasoft正在变得更好,但我仍然认为它是半成品。 Doc Viewer(http://open.blogs.nytimes.com/2010/03/27/a-new-view-introducing-doc-viewer-2-0/)值得一看。 ViewONE(http://www.daeja.com/products/)最适合Applet团队。 – RyanW 2012-07-19 22:06:13

+0

你有没有使用谷歌文档查看器的带宽限制问题?如果是这样,你是否解决了这个问题? – 2014-08-06 18:15:23

回答

0

您可以使用ASP.Net ReportViewer控件来实现此目的。通常情况下,该控件用于导出为PDF,但根据this,可以显示在的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() 
+0

谢谢,但这个解决方案向浏览器提供了一个PDF文件吗?我已经有一个PDF,并希望提供其他内容(图像,闪光,HTML,无论如何),因此一个50 MB的PDF文件不需要由最终用户下载。 – RyanW 2010-06-22 21:03:45

1

this

有点混杂,但它是免费的,如果你喜欢那样的事情,你就会弄脏自己的手。

+0

谢谢,在那篇文章中有转化为图像的一些很好的基础。 – RyanW 2010-06-23 19:14:18

1

渲染PDF文件不是一个非常可扩展的方法。你可以为一个小型工作组做到这一点,但对于一个更大的团队来说,你需要大量的硬件和带宽。由于格式就是这样的,所以返回pdf的各个部分要容易得多。我认为iTextSharp 可以提供帮助。

1

您可以使用Aspose.Pdf.Kit for .NET将PDF页面转换为图像,然后使用任何图像控件查看这些图像。您可以在Windows窗体或Web窗体中使用它。您还可以使用Programmer's Guide,技术文章,视频和演示获得完整的帮助。您也可以在论坛中提出任何技术问题。

我是Aspose.Pdf.Kit团队的成员。

+0

谢谢,我再看看Pdf.Kit,你说得对,它会进行图像转换。但是,这里的关键在于接近PDF阅读器提供的内容,所以我需要的不仅仅是“任何”图像控件,例如由Tall Components提供的PDFWebViewer。 – RyanW 2010-06-23 19:13:20