C#/ ASP.NET - 从PDF / DOC文件中获取缩略图

时间:2013-07-08 08:54:47

标签: c# asp.net pdf doc

我有一个ASP.NET WebForms应用程序(用C#编写),允许用户使用FileUpload控件上传文件。

如果我可以自动从文件生成缩略图,那将是多么美妙。像JPG / PNG这样的图像当然是微不足道的,但是用户经常上传.DOC和.PDF文件 - 有没有办法可以将.DOC和.PDF文件转换为图像,这样我就可以获得缩略图了?

谢谢!

5 个答案:

答案 0 :(得分:0)

对于PDf,您可以尝试使用websupergoo中的ABCPDF。有了它你应该能够生成一个缩略图, 用于从PDF创建PNG的文档链接。 http://www.websupergoo.com/helppdf8net/source/4-examples/19-rendering.htm

对于Doc来说,它有点复杂,您将不得不在托管应用程序的服务器上安装Office应用程序,并从那里操纵图像。

看看这篇文章。它允许您提取Windows资源管理器用于Office文档和常规图像的缩略图图像。 http://msdn.microsoft.com/en-us/library/aa289172.aspx

答案 1 :(得分:0)

在纸上,最有希望的方法是在服务器端这样做。因此,如果文件已上传,则服务器可以生成预览图像。

在Windows上,会有一些选择。

a)Windows Shell可以做到这一点。不过这条路很危险。 b)https://filepreviews.io/是一项服务,但需要付费。 c)box是执行此操作的另一项服务。

现在在Linux甚至Windows子系统中的Linux上,可以使用某些命令行实用程序来做到这一点。

a)将文档转换为pdf:

Convert DOC to PDF

b)然后,获取pdf第一页的位图,并使用ghostscript。 .NET和Windows也存在ghostscript。

Bitmap of PDF First Page

答案 2 :(得分:0)

对于PDF,您可以在这里找到我的答案:Generate a pdf thumbnail (open source/free)

请注意,这是唯一合法的答案,而无需支付任何其他软件费用-如果您未按照其条款使用某些开源软件,则会获得大量许可。

据我所知,OpenOffice会生成这样的缩略图,因此对于文档文件也应该容易使用此答案。

答案 3 :(得分:0)

您可以使用GhostScriptWrapper直接从pdf生成图像缩略图。您可以从https://github.com/mephraim/ghostscriptsharp获得ghostScriptWrapper,也可以从nuget软件包管理器解决方案中包含ghostscript dll

答案 4 :(得分:-1)

客户端,我没有发现任何有用的信息。

但是,在服务器端,可以选择先将.docx.xlsx文件转换为临时PDF文件,然后创建缩略图。第一步使用Microsoft.Office.Interop,第二步使用Microsoft.WindowsAPICodePack.Shell.ShellFile

Here is an article可能会帮助您