A simple RESTful server for converting documents using unoconv
unoconv is required for converting documents
# apt-get install unoconv
npm install unoconv-server
Start a server in command-line:
./unoconv-server start
Get command line help
./unoconv-server --help
unoconv-server, a simple RESTful server for converting documents
please visit https://github.com/alphakevin/unoconv-server
usage: unoconv-server <command> <options>
commands:
start [<hostname>[:<port>]] start the server, default to localhost:4000
help converter get converter help
options:
-h, --help print this help message
Use in your application
const expores = require('express');
const unoconv = require('unoconv-server');
const app = express();
app.use('/unoconv', unoconv());
// ... your own express routes
app.listen(3000);
When the server starts, it will start a listener for better performance, the listener will be stopped together with the server.
The server provides a similar interface like unoconv, you can simply remove --
or -
and use /
instead of white-space between the arguments, all after /convert
.
POST /convert/format/<format>[/output/<filename>] HTTP/1.1
You can upload file by either of the following method:
multipart/form-data
upload with afile
field of the file to be converted.- RAW upload a file in HTTP body with
Content-Type
andContent-Disposition
header provided.
If the /output/<value>
option is provided, the Content-Disposition
header will contain the new filename.
The converted document will be directly output from the HTTP response body.
Name | Description |
---|---|
HOSTNAME |
For server listening hostname |
PORT |
For server listening port |
Visit http://127.0.0.1:4000/help
, or get help in command-line:
./unoconv-server help converter
Here we use cURL for examples.
curl -F file=@example.docx http://127.0.0.1:4000/convert/format/pdf/output/newname.pdf > result.pdf
curl -X POST \
-T "example.docx" \
-H "Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document" \
-H "Content-Disposition: attachment; filename="example.docx"" \
http://127.0.0.1:4000/convert/format/pdf/output/newname.pdf > result.pdf
/e, /export/<value> set export filter options
/f, /format/<value> specify the output format
/F, /field/<value> replace user-defined text field with value
/i, /import/<value> set import filter option string
/o, /output/<value> output basename, filename or directory
/password/<value> provide a password to decrypt the document
unoconv-server
can start from docker without source code or npm installed:
docker run -d -p 4000:4000 --name unoconv alphakevin/unoconv-server
This is a simple server and it does not include authorization method, please take your own risk if you want to deploy it public directly.
export
, field
, import
, password
options are not tested, it just pass them to unoconv.
- unoconv A node.js wrapper for converting documents with unoconv.
- unoconv2 A version forked from node-uniconv which has better error handling.
- tfk-api-unoconv Unoconv as a webservice together with docker image.
MIT