我有一个现有的swing桌面应用程序,我希望将其转换为Web应用程序。停止这样做的第一件事是桌面应用程序处理PDF文件的写入和读取。用户还填写需要由应用程序读取的PDF表单。
现在,桌面应用程序中的典型用例就像用户登录一样打开PDF表单并填写。 swing应用程序管理文件的存储位置,以便它进入文件并读取表单,提取数据并将数据存储在数据库中。用户可能无法一次性填写表单。他可能会保存它以后再回来并继续。
所有这些都需要现在通过网络应用程序完成。我的问题是我不希望用户多次下载并上传表单到服务器。这将占用带宽并且还要求使用本地保存文件并在填写表单后将其上传回来对我不感兴趣,因为桌面应用程序也很好地用于管理这些文件的位置。
我是否需要实现像Dropbox这样的东西?一个小的deamon连续运行以检查已更新的文件并将其上传到服务器?这很难,因为在服务器上我不知道文件是否是最新的。有没有人曾经做过这样的事情?
答案 0 :(得分:5)
我有另外的建议:为什么不向用户显示具有相同字段的表单,并在用户提交后将其传输到PDF。这样,Pdf不会离开服务器,只传输最少量的数据。
答案 1 :(得分:3)
切换到应用程序的Web版本可能会迫使您重新思考一些您正在做的事情。当然,浏览器在访问本地文件系统时是有意限制的,这为您当前的操作模式带来了一个主要障碍。
即使您可以在浏览器中显示PDF,也可以检测编辑完成并将其从浏览器代码中发送回服务器(这可能是可能的),您将受到不同浏览器的影响(奇怪)安装了任何pdf插件的东西。
正如Vitaliy已经提到的,切换能够在浏览器中填充(网络)表单意味着整个下载上传问题消失了。但是,你必须采取用户在网页中所做的事情并以某种方式将其转换为PDF。如果您不必从PDF开始,但可以收集数据并在最后生成PDF,那么您可能有更多选择。例如,如果没有太多样式的文档可以使用,可以使用iText直接创建PDF。你可以使用像Docmosis这样的东西,你可以给模板,然后让它填充和渲染PDF。使用Docmosis选项,您还可以向Docmosis询问模板中的字段列表,以便根据所选模板构建Web表单,让用户填写,然后将该数据推送到Docmosis以生成文件。
希望那里有一些对你有用的选择。
答案 2 :(得分:0)
Adobe documents how to do this here。永远不要低估谷歌设计的力量。我知道这可以工作,因为我已经在线使用PDF表格。
答案 3 :(得分:0)
基本上我所做的是使用iText从PDF创建FDF(具有表单现有表单字段)。 FDF中的提交按钮实际上将表单数据提交到您选择的URL(与HTML表单不同)。有了这些数据后,我相信我使用iText将表单字段(来自FDF)与服务器端的PDF合并。
使用服务器维护所有表单数据后,用于确保单个用户更新最新和最佳表单数据的同步/锁定过程取决于您。
你在jowierun下的评论表明你想要处理word / excel / etc文档,所以我不完全确定我理解你的需求。您的初始帖子讨论了在本地填写PDF表单的需求,但之后听起来好像您正在寻找文件共享系统。
您能否详细说明您想要完成的工作?