java - 通过 HTTP 转换文档

标签 java documents4j

documents4j-server 运行并监听 http://localhost:9998是否可以使用直接 HTTP 命令转换文档?

示例:

http://localhost:9998?source=C:\Test.doc?target=C:\Test.pdf

更多信息:

我比自己领先了几步......

我使用在 Apache-Tomcat 上运行的 Apache FOP servlet 作为服务从 XML/XSLT 生成 PDF 文档。

运行后可以通过http生成PDF。

示例:

http://localhost:8080/fop/
  ?xml=C:/temp/Test.xml
  &xslt=C:/temp/Test-Style-Sheet.xsl
  &pdf=C:/temp/Test.pdf

我从数据库应用程序(它设置 XML 源并管理生成的 PDF)执行此命令。

我一直在寻找使用 Documents4j 执行类似操作以将 Word Doc 转换为 PDF 的功能。

所以我现在意识到我真正需要的是能够将源文档的名称/类型和转换类型(加上任何其他所需的参数)传递给外部程序/http端口,然后可以将请求打包适本地然后启动正式的转换过程。

有人可以提供建议或解决方案吗?

最佳答案

如果不是您尝试的方式,转换服务器将无法读取或写入您的文件系统。没有服务器可以做到这一点,这将是一个严重的安全漏洞。

相反,您可以通过 HTTP POST 将文件作为消息正文发送,这就是客户端所做的。然后,答案包含转换后的文件作为响应的正文。您正在使用请求 header 来指定您的请求:

  1. 为了定义输入类型,您将使用 HTTP Content-Type header 。
  2. 为了定义请求的类型,您将使用 HTTP Accept header 。

举个例子,要将文件从 MS Word 转换为 PDF,您可以使用 application/vnd.com.documents4j.any-msword 作为输入,使用 application/pdf 作为接受 header 的类型。

您还可以使用docs4j附带的客户端实现,这在 Converter client in the readme 下进行了描述。 。该客户端发送的正是这样的请求。

编辑:您需要为此设置自己的最小客户端应用程序。一个最小的应用程序如下所示:

class MyApp {
  public static void main(String[] args) {
    IConverter converter = LocalConver.make();
    converter
      .convert(new File(args[0])).as(DocumentType.MS_WORD)
      .to(new File(args[1])).as(DocumentType.PDF)
      .execute();
    converter.shutDown();
  }
}

假设您通过命令行交出了第一个和第二个命令。或者,您可以通过 RemoteConverter 连接到服务器。当然,您也可以使用内置的命令行工具来实现 HTTP 无法提供的功能。如果这是您的要求,您可以编写一个委托(delegate)给该命令行工具的小应用程序。

关于java - 通过 HTTP 转换文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28445772/

相关文章:

java - 复杂 Web 应用程序上的 ConversionInputException

java - 用于警报对话框的 XML?

java - 使用带有android的IText创建PDF时获取IOException

java - 线程 "main"java.lang.Error : Unresolved compilation problem: LocalConverter cannot be resolved 中出现异常

java - 请提供使用 Documents4j 将 Word 文件简单转换为 PDF 格式的明确示例?

java - 如何在Linux上使用documents4j?

java - 如果没有 Microsoft Word,documents4j 到 pdf 的转换器无法工作?

java - 如何在 C 中创建 Java ArrayList

java - Akka Java容错和Actor重新启动

java - Firefox 驱动程序无法检测到 webelement