有没有办法使用JavaScript(或C#)打开PDF文档并让它自动打开Acrobat,让用户编辑文档,然后在用户关闭文档时,保存回服务器。
从我的研究中,我发现人们推荐iTextsharp,但我不认为这会做我想要完成的事情。
基本上我试图模仿SharePoint的Check Out / Check In功能。
答案 0 :(得分:4)
很多可能取决于您要完成的具体内容以及您对环境/用户的控制程度。看看Acrobat X和SharePoint的功能,看起来对Acrobat X内置了对SharePoint的支持。
这可以通过创建Acrobat插件轻松(好:-))完成。插件能够监控Adobe Acrobat中的无数事件并对其做出反应。他们可以执行复杂的操作,例如添加文件系统(例如,它允许您打开和保存实际存储在数据库中的文件),但肯定有更简单的策略可以想象。
想象一下生活在Adobe Acrobat中的插件,它监视用户打开的每个文件。看到从服务器打开的文件后,它会将该文档标记为您的文档并将其与服务器一起检出(但是您要实现该文档)。当用户保存文档时也会收到通知(在实际保存之前和之后),并且可以再次采取适当的措施。
所以一般的答案是肯定的,这在某些情况下是可行的,如果您愿意编写插件,并且如果您对您的环境有足够的控制权,那么您可以确保所有用户实际安装了此插件在Adobe Acrobat中。
答案 1 :(得分:3)
要将文档保存回SharePoint,应该在客户端应用程序中提供支持。如果我正确理解Acrobat X支持此http://pdfdevjunkie.host.adobe.com/pdf/AcrobatXandMicrosoftSharePoint.pdf。那不是你要找的吗?
答案 2 :(得分:3)
忽略浏览器,假设您正在使用C#应用程序,这很可能并且不像看起来那么复杂。详细信息将取决于您的确切设置,但我建议使用la:
从服务器下载文件并将其存储在a .PDF extension的临时位置。您的下载可能是over HTTP或via a UNC path or mapped drive。确保您保存的位置是您可以读/写并删除文件的位置 - standard temp folder就足够了。
使用Process.Start启动Acrobat。如果Acrobat(或其他合适的编辑器)将在用户系统上注册为默认程序,当用户双击PDF时打开该默认程序,您可以只处理Process.Start文档本身,而不指定特定的动词(命令)。否则,您可以look up and specify the correct verb或launch Acrobat itself and specify the filename。
您可以等待用户关闭Acrobat,即for the Acrobat process to finish或watch the file for changes,然后做出反应。请记住,如果观察Acrobat可能保留对文件的独占锁定的更改,直到用户关闭该文档或Acrobat,因此您可能需要等待Acrobat完成或检测到更改后,定期检查(轮询)直到您可以访问该文件。
Upload the file通过whatever means回到服务器似乎是最合适的。
答案 3 :(得分:1)
我知道没有JS解决方案来编辑PDF(26.06.13),但有一种方法可以预览它们,例如使用纯JS解决方案PDF.JS.
您需要使用纯提交的数据在服务器端生成PDF文件。