文档转换实时 - 实施问题

时间:2011-03-02 19:17:18

标签: caching pdf-generation pdf-conversion

当有人在检查用户是否有权查看文档的内部网门户网站后,有人提供文档链接时,我们需要将MS Office文档实时转换为PDF。我们还需要根据文档的最后修改日期来缓存文档,如果另一个用户请求同一文档并且文档内容自上次转换后未被修改,我们就不应该再次转换文档。

我对如何实现这一点有一些基本的问题 - 并且想检查一下是否有人以前的经验或想法他们如何看待这个实现?

例如,如果我们选择J2EE作为技术,并选择一个用于PDF转换的开源Java库;我有以下问题。

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

1 个答案:

答案 0 :(得分:1)

我为使用product that does exactly what you are trying to do / Java网络服务电话创建.NET的公司工作,所以让我看看我是否可以毫无偏见地回答您的问题。

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

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

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

  4. 我希望这会有所帮助。