6

我有一个现有的 Swing 桌面应用程序,我希望将其转换为 Web 应用程序。停止这样做的第一件事是桌面应用程序处理 PDF 文件的写入和读取。用户还填写了应用程序需要阅读的 PDF 表格。

现在桌面应用程序中的一个典型用例是,用户登录打开一个 PDF 表单并填写它。Swing 应用程序管理文件的存储位置,因此它转到文件并读取表单,提取数据并将数据存储在数据库中。用户可能不会一次性填写表格。他可能会保存它,稍后再回来继续。

所有这些现在都需要由 Web 应用程序来完成。我的问题是我不希望用户多次下载并上传表单到服务器。这会占用带宽,并且还要求用户在本地保存文件并在他完成填写表格后将其上传回来对我没有吸引力,因为桌面应用程序也很好地用于管理这些文件的位置。

我是否需要实现诸如保管箱之类的东西?一个持续运行的小守护进程检查哪些文件已更新并将其上传到服务器?这会很困难,因为在服务器上我不知道文件是否是最新的。以前有人可能做过类似的事情吗?

4

4 回答 4

5

我有另一个建议:为什么不向用户显示具有相同字段的表单并在用户提交后将它们传输到 PDF。这样,Pdf 就不会离开服务器,您只需传输最少量的数据。

于 2012-08-09T05:35:16.530 回答
3

切换到应用程序的 Web 版本可能会迫使您重新考虑您做事的某些方式。当然,浏览器有意限制对本地文件系统的访问,这为您当前的操作模式引入了主要障碍。

即使您可以在浏览器中显示 PDF,检测编辑的完成并将其从浏览器代码中发送回服务器(这可能是可能的),您也会受到不同浏览器的影响pdf插件已安装。

正如 Vitaliy 已经提到的,切换能够在浏览器中填充(网络)表单意味着整个下载上传问题都消失了。但是,您必须将用户在网页中所做的事情以某种方式输入 PDF。如果您不必从 PDF 开始,但可以收集数据并在最后生成 PDF,那么您可能有更多选择。例如,如果您没有太多样式的文档可供使用,您可以使用 iText 直接创建 PDF。你可以使用像 Docmosis 这样的东西,你可以给它模板,然后让它在以后填充和渲染 PDF。使用 Docmosis 选项,您还可以向 Docmosis 询问模板中的字段列表,以便可以基于所选模板构建 Web 表单,让用户填写,然后将该数据推送到 Docmosis 以生成文件。

希望那里有一些对您有用的选项。

于 2012-08-09T09:18:59.300 回答
0

几年前我曾研究过类似的问题,尽管我没有处理签名表格。签名肯定会使它变得更加困难。但是,我能够使用 iText 创建带有字段的 PDF 表单,并且只将字段数据提交回服务器。顺便说一句,不幸的是,我不记得我们到底是什么/如何做到的,但可以确认它是可行的(有限制/警告)。例如:用户必须安装 PDF 阅读器插件,并且用户每次都被迫删除 pdf。

基本上,我所做的是使用 iText 从 PDF 创建 FDF(带有表单现有表单字段)。FDF 中的提交按钮实际上将表单数据提交到您选择的 URL(与 HTML 表单不同)。一旦你有了这些数据,我相信我使用 iText 在服务器端将表单字段(来自 FDF)与 PDF 合并。

一旦您使用服务器来维护所有表单数据,您用来确保单个用户更新最新和最好的表单数据的同步/锁定过程取决于您。

您在 jowierun 下的评论表明您也想处理 word/excel/etc 文档,所以我不完全确定我是否理解您的需求。您最初的帖子讨论了在本地填写 PDF 表单的需求,但之后听起来您正在寻找文件共享系统。

您能否准确说明您要完成的工作?

于 2012-08-15T20:45:59.757 回答
0

Adobe在此处记录了如何执行此操作。永远不要低估谷歌设计的力量。我知道这可以工作,因为我已经在线使用了 PDF 表单。

于 2012-08-15T00:35:05.090 回答