Files
gotenberg/build/docs/04-office.md
2018-12-10 20:08:45 +01:00

1.9 KiB
Raw Blame History

title
title
Office

Gotenberg provides the endpoint /convert/office for Office document conversions.

It accepts POST requests with a multipart/form-data Content-Type.

Basic

You may send one or more Office documents. Following file extensions are accepted:

  • .doc
  • .docx
  • .odt
  • .xls
  • .xlsx
  • .ods
  • .ppt
  • .pptx
  • .odp

All files will be merged into a single resulting PDF.

Attention: currently, unoconv cannot perform concurrent conversions. That's why for Office conversions, the API does only one conversion at a time. See the scalability section to find how to mitigate this issue.

cURL

$ curl --request POST \
    --url http://localhost:3000/convert/office \
    --header 'Content-Type: multipart/form-data' \
    --form files=@document.docx
    --form files=@document2.docx
    > result.pdf

Go

import "github.com/thecodingmachine/gotenberg/pkg"

func main() {
    c := &gotenberg.Client{Hostname: "http://localhost:3000"}
    req := &gotenberg.OfficeRequest{
        FilePaths: []string{
            "document.docx",
            "document2.docx",
        },
    }
    dest := "result.pdf"
    c.Store(req, dest)
}

PHP

use TheCodingMachine\Gotenberg\Client;
use TheCodingMachine\Gotenberg\DocumentFactory;
use TheCodingMachine\Gotenberg\OfficeRequest;

$client = new Client('http://localhost:3000', new \Http\Adapter\Guzzle6\Client());
$files = [
    DocumentFactory::makeFromPath('document.docx', 'document.docx'),
    DocumentFactory::makeFromPath('document2.docx', 'document2.docx'),
];
$request = new OfficeRequest($files);
$dirPath = "/foo";
$filename = $client->store($request, $dirPath);

Fonts

By default, only ttf-mscorefonts fonts are installed.

If you wish to use more fonts, you will have to create your own image:

FROM thecodingmachine/gotenberg:3

RUN apt-get -y install yourfonts