La conversion de fichiers PDF en format DOCX est une exigence fréquente lors de la création d’applications centrées sur les documents, surtout lorsque vous avez besoin d’une sortie Word modifiable. GroupDocs.Conversion Cloud SDK for Node.js fournit une API robuste qui rend cette tâche simple et évolutive. Dans ce guide, vous verrez un exemple complet de code asynchrone, apprendrez comment obtenir le même résultat avec des appels REST cURL, configurerez le SDK et appliquerez des recommandations de bonnes pratiques pour des conversions fiables.
Exemple complet de code : conversion asynchrone de PDF en DOCX avec Node.JS
Cet exemple montre comment effectuer une conversion PDF vers DOCX asynchrone à l’aide de GroupDocs.Conversion Cloud SDK for Node.js.
// PDF to DOCX conversion using GroupDocs.Conversion Cloud SDK for Node.js
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const path = require('path');
// -------------------- Configuration --------------------
const CLIENT_ID = process.env.GROUPDOCS_CLIENT_ID || 'YOUR_CLIENT_ID';
const CLIENT_SECRET = process.env.GROUPDOCS_CLIENT_SECRET || 'YOUR_CLIENT_SECRET';
// Initialize API client
const apiInstance = new GroupDocsConversionCloud.ConversionApi();
apiInstance.apiClient = new GroupDocsConversionCloud.ApiClient();
apiInstance.apiClient.basePath = 'https://api.groupdocs.cloud';
apiInstance.apiClient.authentications['JWT'].clientId = CLIENT_ID;
apiInstance.apiClient.authentications['JWT'].clientSecret = CLIENT_SECRET;
// -------------------- Conversion Logic --------------------
async function convertPdfToDocx() {
try {
// Input file information (must already be uploaded to GroupDocs Cloud storage)
const inputFileInfo = new GroupDocsConversionCloud.FileInfo();
inputFileInfo.filePath = path.normalize('input.pdf'); // generic path in cloud storage
// DOCX specific conversion options (optional, shown for demonstration)
const docxOptions = new GroupDocsConversionCloud.DocxConvertOptions();
docxOptions.preserveOriginalFormatting = true; // keep original PDF layout as much as possible
docxOptions.password = null; // if PDF is password protected, set it here
// Build conversion request
const convertRequest = new GroupDocsConversionCloud.ConvertDocumentRequest();
convertRequest.format = 'docx';
convertRequest.fileInfo = inputFileInfo;
convertRequest.outputPath = path.normalize('output.docx'); // result will be stored in cloud storage
convertRequest.options = docxOptions; // attach format‑specific options
// Perform conversion (async)
const conversionResult = await apiInstance.convertDocument(convertRequest);
// conversionResult contains the path of the generated file and other metadata
console.log('Conversion succeeded.');
console.log('Output file path:', conversionResult.path);
console.log('File size (bytes):', conversionResult.size);
} catch (error) {
// Detailed error handling
if (error.response && error.response.body) {
console.error('API error:', error.response.body);
} else {
console.error('Unexpected error:', error.message);
}
}
}
// -------------------- Execution --------------------
(async () => {
// Optional: set a timeout to avoid hanging indefinitely
const timeoutMs = 300000; // 5 minutes
const timeout = setTimeout(() => {
console.error('Conversion timed out after', timeoutMs / 1000, 'seconds');
process.exit(1);
}, timeoutMs);
await convertPdfToDocx();
clearTimeout(timeout);
// Graceful shutdown
process.exit(0);
})();
Remarque : Cet exemple de code montre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour les chemins de fichiers (
input.pdf,output.docx, etc.) pour qu’ils correspondent à vos emplacements réels, vérifiez que toutes les dépendances requises sont installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.
Convertir des documents à l’aide de cURL et de l’API REST
Vous pouvez réaliser la même conversion PDF vers DOCX sans écrire de code en appelant directement les points de terminaison REST de GroupDocs.Conversion Cloud. Les étapes ci‑dessous montrent comment obtenir un jeton d’accès, télécharger un PDF, démarrer la conversion et télécharger le fichier DOCX résultant.
- Authentifiez‑vous et obtenez un jeton d’accès
RemplacezYOUR_CLIENT_IDetYOUR_CLIENT_SECRETpar vos identifiants.
curl -X POST "https://api.groupdocs.cloud/v1.0/oauth2/token" \
-H "Content-Type: application/json" \
-d '{
"grant_type":"client_credentials",
"client_id":"YOUR_CLIENT_ID",
"client_secret":"YOUR_CLIENT_SECRET"
}'
La réponse contient access_token que vous utiliserez dans les appels ultérieurs.
- Téléchargez le PDF source
curl -X PUT "https://api.groupdocs.cloud/v1.0/storage/file/input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/pdf" \
--data-binary @./local/input.pdf
- Exécuter la conversion
curl -X POST "https://api.groupdocs.cloud/v1.0/conversion/convert" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"format":"docx",
"fileInfo":{"filePath":"input.pdf"},
"outputPath":"output.docx",
"options":{"preserveOriginalFormatting":true}
}'
La réponse renvoie le chemin du fichier DOCX généré.
- Télécharger le DOCX converti
curl -X GET "https://api.groupdocs.cloud/v1.0/storage/file/output.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o ./local/output.docx
Pour plus de détails sur les charges utiles de la requête et les options supplémentaires, consultez la documentation officielle de l’API.
Décomposer la conversion de PDF en DOCX dans Node.JS
Voici une présentation concise des parties clés de l’exemple de code asynchrone.
- Importer et configurer le client
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const apiInstance = new GroupDocsConversionCloud.ConversionApi();
La classe ConversionApi (référence API) est le point d’entrée pour toutes les opérations de conversion.
- Définir les informations d’identification d’authentification
apiInstance.apiClient.authentications['JWT'].clientId = CLIENT_ID;
apiInstance.apiClient.authentications['JWT'].clientSecret = CLIENT_SECRET;
L’authentification JWT sécurise chaque requête au service cloud.
- Préparer les informations du fichier d’entrée
const inputFileInfo = new GroupDocsConversionCloud.FileInfo();
inputFileInfo.filePath = path.normalize('input.pdf');
FileInfo indique à l’API où se trouve le PDF source dans le stockage GroupDocs Cloud.
- Configurer les options spécifiques à DOCX
const docxOptions = new GroupDocsConversionCloud.DocxConvertOptions();
docxOptions.preserveOriginalFormatting = true;
DocxConvertOptions vous permet de conserver la mise en page originale et de gérer les mots de passe si nécessaire.
- Créer et envoyer la requête de conversion
const convertRequest = new GroupDocsConversionCloud.ConvertDocumentRequest();
convertRequest.format = 'docx';
convertRequest.fileInfo = inputFileInfo;
convertRequest.outputPath = path.normalize('output.docx');
convertRequest.options = docxOptions;
const conversionResult = await apiInstance.convertDocument(convertRequest);
La méthode convertDocument effectue la conversion réelle et renvoie les métadonnées telles que le chemin de sortie et la taille du fichier.
Installation et configuration GroupDocs.Conversion Cloud SDK for Node.JS
- Installez le package
npm install groupdocs-conversion-cloud
Le package est disponible depuis le registre public npm. Voir la page de téléchargement pour les détails de version.
Prérequis
- Node.js 12 ou version supérieure.
- Un compte GroupDocs Cloud avec ID client et secret client.
Initialisez le SDK dans votre projet (extrait de l’exemple complet)
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const apiInstance = new GroupDocsConversionCloud.ConversionApi();
apiInstance.apiClient.basePath = 'https://api.groupdocs.cloud';
Ajustez le basePath si vous utilisez un point de terminaison régional.
Meilleures pratiques pour la conversion de documents haute performance
- Réutilisez le client API au lieu de créer une nouvelle instance pour chaque conversion ; cela réduit la surcharge d’authentification.
- Activez les téléchargements en streaming pour les gros PDF afin d’éviter de charger le fichier complet en mémoire.
- Définissez un délai d’attente raisonnable (par ex., 5 minutes) pour empêcher les tâches bloquées tout en permettant aux documents complexes de se terminer.
- Conservez le formatage d’origine uniquement lorsque cela est nécessaire ; le désactiver peut accélérer la conversion pour les PDF contenant uniquement du texte.
- Surveillez les limites d’utilisation de l’API dans le tableau de bord de votre compte GroupDocs afin d’éviter le throttling lors des opérations par lots.
Conclusion
GroupDocs.Conversion Cloud SDK for Node.js facilite la conversion de PDF en DOCX, que vous préfériez une bibliothèque complète ou des appels REST directs avec cURL. En suivant l’exemple de code asynchrone, en configurant correctement le client et en appliquant les conseils de performance ci‑dessus, vous pouvez intégrer une conversion de documents fiable dans n’importe quel service Node.JS. N’oubliez pas d’obtenir une licence appropriée pour la production ; les détails de tarification sont disponibles sur la page du produit, et une licence temporaire peut être obtenue depuis la page de licence temporaire pour l’évaluation.
FAQs
Comment la conversion PDF en DOCX dans Node.JS gère-t-elle les mises en page complexes ?
Le SDK tente de préserver le formatage original par défaut. Vous pouvez basculerpreserveOriginalFormattingdansDocxConvertOptionspour échanger la fidélité contre la vitesse. Voir la référence API pour toutes les options.Quelles sont les limites de taille de fichier pour la conversion PDF en DOCX ?
Le service cloud accepte les fichiers jusqu’à 200 Mo pour les comptes gratuits ; les fichiers plus volumineux nécessitent un plan amélioré. Les téléchargements sont diffusés en continu, de sorte que l’utilisation de la mémoire sur votre serveur reste faible.Puis-je convertir plusieurs PDF en DOCX dans une seule requête ?
L’API traite un document par requête, mais vous pouvez parcourir une liste de fichiers dans Node.JS et exécuter les conversions en parallèle, en respectant les limites de concurrence de votre compte.Existe-t-il un moyen de tester la conversion localement sans licence payante ?
Oui, vous pouvez demander une licence d’évaluation temporaire depuis la page de licence temporaire. Cela offre toutes les fonctionnalités pour le développement et les tests.
