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.
Hinweis: Seitengröße, Ränder, Ausrichtung, Skalierung, Kopf- und Fußzeilen aus 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.