使用PDF Reactor作为Web服务

时间:2015-12-15 11:47:13

标签: reactor pdf-reactor

我正在发现PDF反应堆,我想将它用作网络服务。要测试文件,我使用cURL

curl -v -X POST --header "Content-Type:application/xml" http://localhost:9423/service/rest/convert/async -d @test.html

这是对的吗?

test.html:

<html>
<body>
Coucou, je suis terrien.
</body>
</html>

感谢您的帮助,

Cédrik

编辑#1: 上述指挥官的回应:

* About to connect() to localhost port 9423 (#0)
*   Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 9423 (#0)
> POST /service/rest/convert/async HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: localhost:9423
> Accept: */*
> Content-Type:application/xml
> Content-Length: 50
> 
< HTTP/1.1 400 Bad Request
< Content-Type: text/plain
< Date: Tue, 15 Dec 2015 11:47:29 GMT
< Content-Length: 307
< Server: Jetty(9.3.2.v20150730)
< 
* Connection #0 to host localhost left intact
* Closing connection #0
JAXBException occurred : élément inattendu (URI : "", local : "html"). Les éléments attendus sont <{http://webservice.pdfreactor.realobjects.com/}configuration>. élément inattendu (URI : "", local : "html"). Les éléments attendus sont <{http://webservice.pdfreactor.realobjects.com/}configuration>. 

1 个答案:

答案 0 :(得分:1)

当通过cURL使用PDFreactor的REST API时,您必须向服务器发送配置XML或JSON,其中包括PDFreactor和您的文档的配置,如下所述:http://www.pdfreactor.com/product/doc_html/index.html#d0e688

XML的示例配置如下所示:

config.xml中:

<tns:configuration xmlns:tns="http://webservice.pdfreactor.realobjects.com/">
    <document>&lt;html&gt; &lt;body&gt; Coucou, je suis terrien. &lt;/body&gt; &lt;/html&gt;</document>
</tns:configuration>

然后您可以调用以下内容:

curl -v -X POST --header "Content-Type:application/xml" http://localhost:9423/service/rest/convert/async.xml -d @config.xml

输出如下所示:

* About to connect() to localhost port 9423
*   Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 9423
> POST /service/rest/convert/async.xml HTTP/1.1
> User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
> Host: localhost:9423
> Accept: */*
> Content-Type:application/xml
> Content-Length: 195
> 
> <tns:configuration xmlns:tns="http://webservice.pdfreactor.realobjects.com/">   <document>&lt;html&gt;&lt;body&gt;Coucou, je suis terrien.&lt;/body&gt;&lt;/html&gt;</document></tns:configuration>HTTP/1.1 202 Accepted
< Access-Control-Allow-Credentials: true
< Access-Control-Allow-Headers: Accept, Content-Length, content-type, Host, User-Agent
< Access-Control-Allow-Methods: GET, PUT, POST, DELETE
< Access-Control-Expose-Headers: Location
< Cache-Control: no-cache
< Date: Wed, 16 Dec 2015 16:34:19 GMT
< Location: http://localhost:9423/service/rest/progress/c2a58dbd-ef9d-4b79-87d9-079c139fe9ed
< Content-Length: 0
< Server: Jetty(9.3.2.v20150730)
* Connection #0 to host localhost left intact
* Closing connection #0

“位置”响应标头包含可用于检索转换进度的URL,因此您可以检索进度(ID当然会有所不同):

curl -v http://localhost:9423/service/rest/progress/c2a58dbd-ef9d-4b79-87d9-079c139fe9ed

这将返回转换进度,如果转换已完成,则“Location”repsonse标头将包含一个用于检索文档的新URL。您可以使用“.pdf”检索PDF二进制数据,或使用“.xml”检索包含PDF的XML数据,如base64编码的字符串,文档的页数等。

curl -v http://localhost:9423/service/rest/document/c2a58dbd-ef9d-4b79-87d9-079c139fe9ed.pdf