Word-zu-PDF-API#
Die Word-zu-PDF-API konvertiert Microsoft-Word-Dokumente (.doc, .docx) über POST /v1/convert/doc-to-pdf in PDF und nutzt dafür die originalgetreue Rendering-Engine von LibreOffice. Formatierung, Schriften und Seitenlayout des Dokuments bleiben in der PDF-Ausgabe erhalten. Die Antwort besteht standardmäßig aus rohen PDF-Bytes oder, bei direct_download=false, aus JSON-Metadaten mit einer vorsignierten Download-URL.
Endpunkt#
POST /v1/convert/doc-to-pdf
Content-Type: multipart/form-data
Akzeptierte Eingabe: .docx or .doc-Dateien
Ausgabeformat: .pdf (application/pdf)
Authentifizierung#
Erfordert entweder einen privaten API-Schlüssel oder ein JWT-Token von einem öffentlichen Schlüssel.
X-API-Key: sk_your_private_key
Oder:
Authorization: Bearer <jwt_token>
Request-Parameter#
| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
file |
file | Ja | -- | Die zu konvertierende .docx or .doc-Datei. |
output_filename |
string |
Nein | Name der Eingabedatei | Benutzerdefinierter Ausgabedateiname. Die Erweiterung .pdf wird automatisch angehängt. |
direct_download |
boolean |
Nein | true |
Bei true werden rohe PDF-Bytes zurückgegeben. Bei false werden JSON-Metadaten mit einer vorsignierten Download-URL zurückgegeben. |
pdf_options |
string |
Nein | null |
JSON-String. Für diesen Endpunkt wird nur die Option grayscale unterstützt (siehe unten). |
PDF-Optionen#
Bei den von LibreOffice betriebenen Dokumentkonvertern wird das Seitenlayout (Größe, Ränder, Ausrichtung) durch die Einstellungen des Dokuments selbst bestimmt. Das einzige anwendbare pdf_options-Feld ist:
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
grayscale |
boolean |
false |
Wandelt das Ausgabe-PDF per Ghostscript-Nachbearbeitung in Graustufen um. |
pdf_options gelten für diesen Endpunkt nicht. Die PDF-Ausgabe behält die im Originaldokument definierte Formatierung bei. Um das Seitenlayout zu ändern, passen Sie das Quelldokument vor dem Upload an.
Konvertierungsdetails#
- Verwendet LibreOffice (über unoserver) für serverseitiges Dokumenten-Rendering
- Formatierung, Schriften, Seitenlayout und eingebettete Medien des Dokuments bleiben erhalten
- Konvertierungs-Timeout: 120 Sekunden
- Die Ausgabe gibt das Dokument originalgetreu so wieder, wie es beim Druck aus LibreOffice erscheinen würde
Antwort#
Direktdownload (direct_download=true, Standard)#
HTTP 200 OK
Content-Type: application/pdf
Content-Disposition: inline; filename="document_20260405_123456789.pdf"
Gibt rohe PDF-Bytes zurück.
Metadaten-Antwort (direct_download=false)#
{
"presigned_url": "https://spaces.example.com/...",
"object_key": "env/files/{project_id}/doc-to-pdf/document_20260405_123456789.pdf",
"filename": "document_20260405_123456789.pdf",
"file_size": 67890,
"conversion_time_seconds": 3.5
}
Codebeispiele#
Python#
import requests
with open("document.docx", "rb") as f:
response = requests.post(
"https://api.enconvert.com/v1/convert/doc-to-pdf",
headers={"X-API-Key": "sk_your_private_key"},
files={"file": ("document.docx", f)}
)
with open("output.pdf", "wb") as out:
out.write(response.content)
Node.js#
const form = new FormData();
form.append("file", fs.createReadStream("document.docx"));
const response = await fetch("https://api.enconvert.com/v1/convert/doc-to-pdf", {
method: "POST",
headers: { "X-API-Key": "sk_your_private_key" },
body: form
});
fs.writeFileSync("output.pdf", Buffer.from(await response.arrayBuffer()));
PHP#
$ch = curl_init("https://api.enconvert.com/v1/convert/doc-to-pdf");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["X-API-Key: sk_your_private_key"],
CURLOPT_POSTFIELDS => ["file" => new CURLFile("document.docx")]
]);
$pdf = curl_exec($ch);
curl_close($ch);
file_put_contents("output.pdf", $pdf);
Go#
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("file", "document.docx")
file, _ := os.Open("document.docx")
io.Copy(part, file)
writer.Close()
req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/doc-to-pdf", body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("X-API-Key", "sk_your_private_key")
resp, _ := http.DefaultClient.Do(req)
Mit Graustufen-Ausgabe#
import requests
import json
with open("document.docx", "rb") as f:
response = requests.post(
"https://api.enconvert.com/v1/convert/doc-to-pdf",
headers={"X-API-Key": "sk_your_private_key"},
files={"file": ("document.docx", f)},
data={"pdf_options": json.dumps({"grayscale": True})}
)
Fehlerantworten#
| Status | Bedingung |
|---|---|
400 Bad Request |
Datei ist keine .docx or .doc-Datei |
400 Bad Request |
Dokumentkonvertierung fehlgeschlagen (beschädigte oder nicht unterstützte Datei) |
400 Bad Request |
Ungültiges pdf_options-JSON |
401 Unauthorized |
Fehlender oder ungültiger API-Schlüssel / JWT-Token |
402 Payment Required |
Monatliches Ops-Kontingent aufgebraucht |
402 Payment Required |
Speicherlimit erreicht |
413 Payload Too Large |
Datei überschreitet die maximale Dateigröße des Plans |
500 Internal Server Error |
Zeitüberschreitung bei der Konvertierung (120-Sekunden-Limit) |
Limits#
| Limit | Wert |
|---|---|
| Max. Dateigröße | Planabhängig (Founding: 5 MB) |
| Konvertierungs-Timeout | 120 Sekunden |
| Monatliche Konvertierungen | Planabhängig |
Häufig gestellte Fragen#
Wie konvertiere ich eine DOCX-Datei per REST API in ein PDF?#
Senden Sie eine multipart/form-data-Anfrage an POST /v1/convert/doc-to-pdf mit Ihrer .docx- oder .doc-Datei im Feld file, authentifiziert über X-API-Key oder ein Bearer-JWT. Standardmäßig besteht die Antwort aus den rohen PDF-Bytes mit Content-Type: application/pdf.
Bleiben Schriften und Formatierung bei der Word-zu-PDF-Konvertierung erhalten?#
Ja. Der Endpunkt verwendet LibreOffice (über unoserver) für serverseitiges Rendering, daher bleiben Formatierung, Schriften, Seitenlayout und eingebettete Medien des Dokuments erhalten. Die Ausgabe gibt das Dokument so wieder, wie es beim Druck aus LibreOffice erscheinen würde.
Kann ich Seitengröße, Ränder oder Ausrichtung beim Konvertieren von Word zu PDF ändern?#
Nein. Das Seitenlayout wird durch die Einstellungen des Dokuments selbst bestimmt, und das einzige auf diesem Endpunkt unterstützte pdf_options-Feld ist grayscale. Um das Seitenlayout zu ändern, passen Sie das Quelldokument vor dem Upload an.
Warum ist meine Word-zu-PDF-Konvertierung fehlgeschlagen oder abgelaufen?#
Ein 400 Bad Request bedeutet, dass die Datei nicht .docx oder .doc ist, beschädigt oder nicht unterstützt wird oder das pdf_options-JSON ungültig ist. Ein 500 Internal Server Error bedeutet, dass die Konvertierung das 120-Sekunden-Timeout überschritten hat.
Kann ich statt der PDF-Bytes eine Download-URL erhalten?#
Ja. Setzen Sie direct_download=false, dann gibt der Endpunkt JSON-Metadaten zurück, darunter presigned_url, object_key, filename, file_size und conversion_time_seconds.