mirror of
https://github.com/gotenberg/gotenberg.git
synced 2026-08-11 09:52:14 +01:00
120 lines
2.7 KiB
Markdown
120 lines
2.7 KiB
Markdown
---
|
|
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:
|
|
|
|
* `.txt`
|
|
* `.rtf`
|
|
* `.fodt`
|
|
* `.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](#scalability) to find how to mitigate this issue.
|
|
|
|
### cURL
|
|
|
|
```bash
|
|
$ curl --request POST \
|
|
--url http://localhost:3000/convert/office \
|
|
--header 'Content-Type: multipart/form-data' \
|
|
--form files=@document.docx \
|
|
--form files=@document2.docx \
|
|
-o result.pdf
|
|
```
|
|
|
|
### Go
|
|
|
|
```golang
|
|
import "github.com/thecodingmachine/gotenberg-go-client/v5"
|
|
|
|
func main() {
|
|
c := &gotenberg.Client{Hostname: "http://localhost:3000"}
|
|
req, _ := gotenberg.NewOfficeRequest("document.docx", "document2.docx")
|
|
dest := "result.pdf"
|
|
c.Store(req, dest)
|
|
}
|
|
```
|
|
|
|
### PHP
|
|
|
|
```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);
|
|
$dest = "result.pdf";
|
|
$client->store($request, $dest);
|
|
```
|
|
|
|
## Orientation
|
|
|
|
You may also customize the resulting PDF format.
|
|
|
|
By default, it will be rendered with `portrait` orientation.
|
|
|
|
### cURL
|
|
|
|
```bash
|
|
$ curl --request POST \
|
|
--url http://localhost:3000/convert/office \
|
|
--header 'Content-Type: multipart/form-data' \
|
|
--form files=@document.docx \
|
|
--form landscape=true \
|
|
-o result.pdf
|
|
```
|
|
|
|
### Go
|
|
|
|
```golang
|
|
import "github.com/thecodingmachine/gotenberg-go-client/v5"
|
|
|
|
func main() {
|
|
c := &gotenberg.Client{Hostname: "http://localhost:3000"}
|
|
req, _ := gotenberg.NewOfficeRequest("document.docx")
|
|
req.Landscape(true)
|
|
dest := "result.pdf"
|
|
c.Store(req, dest)
|
|
}
|
|
```
|
|
|
|
### PHP
|
|
|
|
```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'),
|
|
];
|
|
$request = new OfficeRequest($files);
|
|
$request->setLandscape(true);
|
|
$dest = "result.pdf";
|
|
$client->store($request, $dest);
|
|
```
|