API PowerPoint vers PDF#
L'API PowerPoint vers PDF convertit les présentations Microsoft PowerPoint (.ppt, .pptx) en PDF via POST /v1/convert/ppt-to-pdf, en s'appuyant sur le moteur de rendu haute fidélité de LibreOffice. La mise en forme, les polices et la mise en page propres à la présentation sont préservées dans le PDF de sortie. La réponse contient les octets bruts du PDF par défaut, ou des métadonnées JSON avec une URL de téléchargement présignée si direct_download=false.
Endpoint#
POST /v1/convert/ppt-to-pdf
Content-Type : multipart/form-data
Entrée acceptée : fichiers .ppt or .pptx
Format de sortie : .pdf (application/pdf)
Authentification#
Nécessite soit une clé API privée, soit un token JWT issu d'une clé publique.
X-API-Key: sk_your_private_key
Ou :
Authorization: Bearer <jwt_token>
Paramètres de requête#
| Paramètre | Type | Requis | Défaut | Description |
|---|---|---|---|---|
file |
file | Oui | -- | Le fichier .ppt or .pptx à convertir. |
output_filename |
string |
Non | Nom du fichier d'entrée | Nom de fichier de sortie personnalisé. L'extension .pdf est ajoutée automatiquement. |
direct_download |
boolean |
Non | true |
Si true, renvoie les octets bruts du PDF. Si false, renvoie des métadonnées JSON avec une URL de téléchargement présignée. |
pdf_options |
string |
Non | null |
Chaîne JSON. Seule l'option grayscale est prise en charge sur cet endpoint (voir ci-dessous). |
Options PDF#
Pour les convertisseurs de documents basés sur LibreOffice, la mise en page (taille, marges, orientation) est déterminée par les réglages du document lui-même. Le seul champ pdf_options pris en compte est :
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
grayscale |
boolean |
false |
Convertit le PDF de sortie en niveaux de gris via un post-traitement Ghostscript. |
pdf_options ne s'appliquent pas à cet endpoint. Le PDF de sortie conserve la mise en forme définie dans le document d'origine. Pour modifier la mise en page, modifiez le document source avant de l'envoyer.
Détails de la conversion#
- Utilise LibreOffice (via unoserver) pour le rendu des documents côté serveur
- La mise en forme, les polices, la mise en page et les médias intégrés du document sont préservés
- Timeout de conversion : 120 secondes
- La sortie reproduit fidèlement le document tel qu'il apparaîtrait à l'impression depuis LibreOffice
Réponse#
Téléchargement direct (direct_download=true, par défaut)#
HTTP 200 OK
Content-Type: application/pdf
Content-Disposition: inline; filename="document_20260405_123456789.pdf"
Renvoie les octets bruts du PDF.
Réponse avec métadonnées (direct_download=false)#
{
"presigned_url": "https://spaces.example.com/...",
"object_key": "env/files/{project_id}/ppt-to-pdf/document_20260405_123456789.pdf",
"filename": "document_20260405_123456789.pdf",
"file_size": 67890,
"conversion_time_seconds": 3.5
}
Exemples de code#
Python#
import requests
with open("document.ppt", "rb") as f:
response = requests.post(
"https://api.enconvert.com/v1/convert/ppt-to-pdf",
headers={"X-API-Key": "sk_your_private_key"},
files={"file": ("document.ppt", f)}
)
with open("output.pdf", "wb") as out:
out.write(response.content)
Node.js#
const form = new FormData();
form.append("file", fs.createReadStream("document.ppt"));
const response = await fetch("https://api.enconvert.com/v1/convert/ppt-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/ppt-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.ppt")]
]);
$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.ppt")
file, _ := os.Open("document.ppt")
io.Copy(part, file)
writer.Close()
req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/ppt-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)
Avec sortie en niveaux de gris#
import requests
import json
with open("document.ppt", "rb") as f:
response = requests.post(
"https://api.enconvert.com/v1/convert/ppt-to-pdf",
headers={"X-API-Key": "sk_your_private_key"},
files={"file": ("document.ppt", f)},
data={"pdf_options": json.dumps({"grayscale": True})}
)
Réponses d'erreur#
| Statut | Condition |
|---|---|
400 Bad Request |
Le fichier n'est pas un fichier .ppt or .pptx |
400 Bad Request |
Échec de la conversion du document (fichier corrompu ou non pris en charge) |
400 Bad Request |
JSON pdf_options invalide |
401 Unauthorized |
Clé API ou token JWT manquant ou invalide |
402 Payment Required |
Quota mensuel d'ops épuisé |
402 Payment Required |
Limite de stockage atteinte |
413 Payload Too Large |
Le fichier dépasse la taille maximale autorisée par le plan |
500 Internal Server Error |
La conversion a expiré (limite de 120 secondes) |
Limites#
| Limite | Valeur |
|---|---|
| Taille maximale de fichier | Selon le plan (Founding : 5 MB) |
| Timeout de conversion | 120 secondes |
| Conversions mensuelles | Selon le plan |
Questions fréquentes#
Comment convertir une présentation PPTX en PDF avec une API REST ?#
Envoyez une requête multipart/form-data à POST /v1/convert/ppt-to-pdf avec votre fichier .ppt ou .pptx dans le champ file, authentifiée via X-API-Key ou un JWT Bearer. Par défaut, la réponse contient les octets bruts du PDF avec Content-Type: application/pdf.
La conversion PowerPoint vers PDF préserve-t-elle la mise en forme et les polices des diapositives ?#
Oui. L'endpoint utilise LibreOffice (via unoserver) pour le rendu côté serveur : la mise en forme, les polices, la mise en page et les médias intégrés de la présentation sont préservés. La sortie reproduit le document tel qu'il apparaîtrait à l'impression depuis LibreOffice.
Puis-je définir la taille de page, les marges ou l'orientation lors de la conversion PowerPoint vers PDF ?#
Non. La mise en page est déterminée par les réglages de la présentation elle-même, et le seul champ pdf_options pris en charge sur cet endpoint est grayscale. Pour modifier la mise en page, modifiez le fichier source avant de l'envoyer.
Pourquoi ma conversion PowerPoint vers PDF a-t-elle échoué ou expiré ?#
Un 400 Bad Request signifie que le fichier n'est pas .ppt ou .pptx, qu'il est corrompu ou non pris en charge, ou que le JSON pdf_options est invalide. Un 500 Internal Server Error signifie que la conversion a dépassé le timeout de 120 secondes.
Puis-je obtenir une URL de téléchargement au lieu des octets du PDF ?#
Oui. Définissez direct_download=false et l'endpoint renvoie des métadonnées JSON comprenant presigned_url, object_key, filename, file_size et conversion_time_seconds.