2011-03-02 85 views
1

当有人在文档链接检查用户是否被授权查看文档或不是Intranet门户时,我们需要将MS Office文档实时转换为PDF。我们还需要根据文档的上次修改日期来缓存文档,如果其他用户请求同一文档并且文档内容自上次转换后未被修改,则不应再次转换文档。文档转换实时 - 实施问题

我对如何实现这一点有一些基本问题 - 并想检查是否有人有以前的经验或想法他们如何看到这实现?例如,如果我们选择J2EE作为技术,并选择其中一个用于PDF转换的开源Java库;我有以下问题。

  1. 如果有一个100 MB的文档 - 我们需要从文档托管的系统下载整个文档,然后开始转换文档。考虑到这需要实时查看,这种方法可能会对响应时间产生重大影响。有没有选择阅读文档的第一页而不下载整个文档,以便我们可以逐页转换文档?
  2. 我们如何缓存文档?我不认为我们可以将文档存储在服务器或数据库中。原因是这可能会导致任何人有权访问数据库或服务器 - 可以访问文档内容。有什么想法吗?
  3. 或者你建议任何开箱即用的产品来做到这一点,而不是自定义开发?

感谢

回答

1

我为创建使用Java/.NET Web服务调用一个product that does exactly what you are trying to do的公司工作,所以让我看看,如果我能回答你的问题不带偏见。

  1. 整个文档将需要下载,因为它需要将PDF转换(例如,用于页码目的)之前被解释才能进行。我相信你只是举了一个例子,但对于MS-Office文档,100MB非常大,尽管我们时常会看到它。

  2. 您可以根据您的确切安全要求实施缓存。如果您不想将转换后的文件存储在(安全)数据库或文件系统中,那么您可能希望将它们存储在防火墙后面的其他服务器上。根据您预期的文档数量和大小,您可能需要将它们缓存在内存中。我确信有很多J2EE缓存库可用,我知道.NET中有很多。只需将最常请求的文档保存在缓存中即可。

  3. 根据您的预算,你可能会去out of the box product(提示提示:-)。我知道有可用于Java的免费库,它们充分利用Open Office,但是在OO中打开MS-Office文件时会遇到相同的格式限制。尝试进行自己的MS-Office集成/自动化时要小心。有可能使它可靠和可扩展(我们做到了),但这需要很长时间和很多工作。

我希望这有助于。