Convertire i file PDF in formato DOCX è una necessità frequente quando si sviluppano applicazioni incentrate sui documenti, soprattutto quando è necessario un output Word modificabile. GroupDocs.Conversion Cloud SDK for Node.js fornisce un’API robusta che rende questo compito semplice e scalabile. In questa guida vedrai un esempio di codice asincrono completo, imparerai come ottenere lo stesso risultato con chiamate REST cURL, configurerai l’SDK e applicherai le raccomandazioni di best‑practice per conversioni affidabili.
Esempio di Codice Completo: Conversione PDF in DOCX Asincrona in Node.JS
Questo esempio dimostra come eseguire una conversione asincrona da PDF a DOCX utilizzando 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);
})();
Nota: Questo esempio di codice dimostra la funzionalità principale. Prima di usarlo nel tuo progetto, assicurati di aggiornare i percorsi dei file (
input.pdf,output.docx, ecc.) per corrispondere alle tue posizioni effettive, verifica che tutte le dipendenze richieste siano installate e testa accuratamente nell’ambiente di sviluppo. Se riscontri problemi, consulta la documentazione ufficiale o contatta il team di supporto per assistenza.
Converti documenti usando cURL e l’API REST
Puoi ottenere la stessa conversione da PDF a DOCX senza scrivere codice chiamando direttamente gli endpoint REST di GroupDocs.Conversion Cloud. I passaggi seguenti mostrano come ottenere un token di accesso, caricare un PDF, avviare la conversione e scaricare il file DOCX risultante.
- Autenticare e ottenere un token di accesso
SostituireYOUR_CLIENT_IDeYOUR_CLIENT_SECRETcon le proprie credenziali.
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 risposta contiene access_token che utilizzerai nelle chiamate successive.
- Carica il PDF di origine
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
- Esegui la conversione
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 risposta restituisce il percorso del file DOCX generato.
- Scarica il DOCX convertito
curl -X GET "https://api.groupdocs.cloud/v1.0/storage/file/output.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o ./local/output.docx
Per ulteriori dettagli sui payload delle richieste e opzioni aggiuntive, vedere la documentazione ufficiale dell’API.
Analisi della conversione da PDF a DOCX in Node.JS
Di seguito è una panoramica concisa delle parti chiave del campione di codice asincrono.
- Importa e configura il client
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const apiInstance = new GroupDocsConversionCloud.ConversionApi();
La classe ConversionApi (riferimento API) è il punto di ingresso per tutte le operazioni di conversione.
- Imposta le credenziali di autenticazione
apiInstance.apiClient.authentications['JWT'].clientId = CLIENT_ID;
apiInstance.apiClient.authentications['JWT'].clientSecret = CLIENT_SECRET;
L’autenticazione JWT protegge ogni richiesta al servizio cloud.
- Prepara le informazioni del file di input
const inputFileInfo = new GroupDocsConversionCloud.FileInfo();
inputFileInfo.filePath = path.normalize('input.pdf');
FileInfo indica all’API dove si trova il PDF di origine nello storage di GroupDocs Cloud.
- Configura le opzioni specifiche per DOCX
const docxOptions = new GroupDocsConversionCloud.DocxConvertOptions();
docxOptions.preserveOriginalFormatting = true;
DocxConvertOptions ti consente di mantenere il layout originale e gestire le password se necessario.
- Crea e invia la richiesta di conversione
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);
Il metodo convertDocument esegue la conversione effettiva e restituisce i metadati come il percorso di output e la dimensione del file.
Installazione e configurazione GroupDocs.Conversion Cloud SDK for Node.JS
- Installa il pacchetto
npm install groupdocs-conversion-cloud
Il pacchetto è disponibile nel registro pubblico npm. Consulta la pagina di download per i dettagli della versione.
Prerequisiti
- Node.js 12 o versioni successive.
- Un account GroupDocs Cloud con client ID e client secret.
Inizializza l’SDK nel tuo progetto (estratto dall’esempio completo)
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const apiInstance = new GroupDocsConversionCloud.ConversionApi();
apiInstance.apiClient.basePath = 'https://api.groupdocs.cloud';
Regola il basePath se utilizzi un endpoint regionale.
Migliori pratiche per la conversione di documenti ad alte prestazioni
- Riutilizza il client API invece di creare una nuova istanza per ogni conversione; questo riduce il sovraccarico di autenticazione.
- Abilita il caricamento in streaming per PDF di grandi dimensioni per evitare di caricare l’intero file in memoria.
- Imposta un timeout ragionevole (ad es., 5 minuti) per prevenire processi bloccati mantenendo la possibilità di completare documenti complessi.
- Conserva la formattazione originale solo quando necessario; disabilitarla può accelerare la conversione per PDF semplici contenenti solo testo.
- Monitora i limiti di utilizzo dell’API nella dashboard del tuo account GroupDocs per evitare limitazioni durante operazioni batch.
Conclusione
GroupDocs.Conversion Cloud SDK for Node.js rende la conversione da PDF a DOCX semplice, sia che tu preferisca una libreria completa o chiamate REST dirette con cURL. Seguendo l’esempio di codice asincrono, configurando correttamente il client e applicando i suggerimenti sulle prestazioni sopra indicati, puoi integrare una conversione affidabile dei documenti in qualsiasi servizio Node.JS. Ricorda di acquisire una licenza adeguata per l’uso in produzione; i dettagli dei prezzi sono disponibili nella pagina del prodotto, e una licenza temporanea può essere ottenuta dalla pagina della licenza temporanea per la valutazione.
FAQs
Come gestisce la conversione da PDF a DOCX in Node.JS layout complessi?
L’SDK tenta di preservare la formattazione originale per impostazione predefinita. È possibile attivarepreserveOriginalFormattinginDocxConvertOptionsper scambiare fedeltà con velocità. Vedi il riferimento API per tutte le opzioni.Quali sono i limiti di dimensione dei file per la conversione da PDF a DOCX?
Il servizio cloud accetta file fino a 200 MB per gli account gratuiti; file più grandi richiedono un piano aggiornato. Gli upload sono in streaming, quindi l’uso della memoria sul tuo server rimane basso.Posso convertire più PDF in DOCX in una singola richiesta?
L’API elabora un documento per richiesta, ma è possibile iterare su un elenco di file in Node.JS ed eseguire le conversioni in parallelo, rispettando i limiti di concorrenza del tuo account.È possibile testare la conversione localmente senza una licenza a pagamento?
Sì, è possibile richiedere una licenza di valutazione temporanea dalla pagina della licenza temporanea. Questo fornisce piena funzionalità per lo sviluppo e il testing.
