.NET图形库,用于在浏览器中显示图像(pdf,.docx和任何其他格式的图像)

时间:2012-12-13 22:31:15

标签: c# asp.net .net asp.net-mvc asp.net-mvc-4

我正在开发一个ASP .NET MVC应用程序,用户可以将文件上传到存储库。这些文件可以是pdf,doc,任何类型的图像等等。

当用户选择要导入的文件时,我想在浏览器中显示该文件,以便他们可以在上传之前查看其内容。

我知道我可以使用某种IFrame来显示pdf,但我正在寻找一些特定的类或.net库来实现这个功能。

我只需要一个北方。

4 个答案:

答案 0 :(得分:0)

这是一个非常棘手的问题。有一些图书馆可以提供帮助。例如,PDF文件可能会呈现为ghostscript的图像。 Word和Excel文件可能会转换为PDF或具有多个库的图像。他们都没有,AFAIK,非常擅长,所以我不推荐一个。

您可以自动执行MSO以执行到PDF的转换,但这对服务器代码来说绝对不安全。另一种可能性是将源文档转换为SWF文件(如flexpaper)并在flash中显示。有一些很棒的库,但它会限制你支持的客户端。 Sharepoint也支持提供某些功能。其他人使用过OpenOffice to convert MSO文件,但质量也有所下降。

我无法真正建议任何具体方向,因为它高度依赖于您/您公司愿意花的钱和期望的结果。祝你好运。

答案 1 :(得分:0)

您可以尝试依赖Windows和浏览器缩略图,例如here,但是您必须确保:

  1. 您可以以最精细的方式滥用服务器(安装内容,从ASP.NET与shell交谈)

  2. 您在服务器上为要预览的每种类型安装了缩略图提供程序。我想从你可以在资源管理器中看到缩略图的那一刻开始,你就可以了。因此,对于pdf,您可能需要从Adobe安装PDF Reader。

  3. 应在保存缩略图的情况下保存Docx文件(请参阅link)。似乎没有其他简单,免费的方法将docx转换为缩略图。我遇到的“最佳”解决方案是以某种方式再次自动保存,并确保选中缩略图选项。

答案 2 :(得分:0)

我不想说这是不可能的,但不能用有限的努力来完成。

您要求的是基于浏览器的解决方案,因为您希望用户能够在>上传之前“审核”文档。

因此,您不能使用服务器端解决方案,这实际上是通过引用“.Net库”来提出的。

.Net库依赖于已安装的.Net版本,对于存在图形浏览器的所有操作系统,所有版本都不存在。

接下来,最近浏览器安全性的更改不允许在输入字段中读取所选文件的完整客户端文件名。

您必须依赖HTML5及其FileReader来访问文件的字节流,但即便如此,您也只能从图像文件中检索图像。 (see sample

由于浏览器和平台支持,不包括Flash,ActiveX,Java中基于浏览器的解决方案,这使得JavaScript成为唯一“合理”的解决方案:您需要一个库来支持每种格式的文件,以便将文件转换为以浏览器支持的图像格式显示图像,或提取文件的文本(+图像)表示。

答案 3 :(得分:0)

非常棒的...只是想分享我的研究结果,我找到了一个由Mozilla Labs支持的基于客户端的好解决方案。这是一个基于HTML5和Javascript的框架,不需要本机代码。

这里是项目网站: https://github.com/mozilla/pdf.js

这是你的能力: http://mozilla.github.com/pdf.js/web/viewer.html

最后一个很棒的视频解释了如何工作 http://www.youtube.com/watch?v=Iv15UY-4Fg8&noredirect=1

根据我的问题,我们将在服务器上将每个可能的文件转换为PDF,然后使用此框架呈现此PDF。