在http://localhost:9998运行和监听documents4j-server是否可以使用直接HTTP命令转换文档?
示例:
http://localhost:9998?source=C:\Test.doc?target=C:\Test.pdf
更多信息:
我比自己领先几步......
我使用在Apache-Tomcat上运行的Apache FOP servlet作为服务从XML / XSLT生成PDF文档。
一旦运行PDF,就可以通过http生成。
示例:
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 to PDF转换的功能。
所以我现在意识到我真正需要的是能够将源文档的名称/类型和转换类型(加上任何其他必需参数)传递给外部程序/ http端口,然后可以打包请求适当地然后启动正式的转换过程。
有人能提供建议或解决方案吗?
答案 0 :(得分:0)
不是您尝试的方式,转换服务器将无法读取或写入您的文件系统。没有服务器可以做到这一点,这将是一个严重的安全漏洞。
相反,您可以通过HTTP POST
作为邮件正文发送文件,这就是客户端所做的事情。然后答案包含转换后的文件作为响应的主体。您正在使用请求标头指定您的请求:
Content-Type
标题。Accept
标题。例如,要将文件从MS Word转换为PDF,您可以使用application/vnd.com.documents4j.any-msword
作为输入,application/pdf
作为接受标头的类型。
您还可以使用documents4j附带的客户端实现,并在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使用。如果这是您的要求,您可以编写一个委托给该命令行工具的小应用程序。