Konwertowanie plików PDF do formatu DOCX jest częstym wymogiem przy tworzeniu aplikacji skoncentrowanych na dokumentach, szczególnie gdy potrzebny jest edytowalny wynik w Wordzie. GroupDocs.Conversion Cloud SDK for Node.js zapewnia solidne API, które upraszcza to zadanie i umożliwia skalowalność. W tym przewodniku zobaczysz kompletny asynchroniczny przykład kodu, dowiesz się, jak osiągnąć ten sam rezultat przy użyciu wywołań cURL REST, skonfigurujesz SDK oraz zastosujesz zalecenia najlepszych praktyk dla niezawodnych konwersji.

Pełny przykład kodu: Asynchroniczna konwersja PDF do DOCX w Node.JS

Ten przykład demonstruje, jak wykonać asynchroniczną konwersję PDF do DOCX przy użyciu 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);
})();

Uwaga: Ten przykład kodu demonstruje podstawową funkcjonalność. Przed użyciem w projekcie upewnij się, że zaktualizowałeś ścieżki do plików (input.pdf, output.docx itp.), aby odpowiadały rzeczywistym lokalizacjom, sprawdź, czy wszystkie wymagane zależności są zainstalowane, i dokładnie przetestuj w środowisku deweloperskim. Jeśli napotkasz jakiekolwiek problemy, odwołaj się do oficjalnej dokumentacji lub skontaktuj się z zespołem wsparcia w celu uzyskania pomocy.

Konwertuj dokumenty przy użyciu cURL i REST API

Możesz uzyskać taką samą konwersję PDF do DOCX bez pisania kodu, wywołując bezpośrednio endpointy REST usługi GroupDocs.Conversion Cloud. Poniższe kroki pokazują, jak uzyskać token dostępu, przesłać plik PDF, rozpocząć konwersję i pobrać wynikowy plik DOCX.

  1. Uwierzytelnij i uzyskaj token dostępu
    Zastąp YOUR_CLIENT_ID i YOUR_CLIENT_SECRET swoimi danymi uwierzytelniającymi.
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"
         }'

Odpowiedź zawiera access_token, którego będziesz używać w kolejnych wywołaniach.

  1. Prześlij źródłowy plik PDF
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
  1. Wykonaj konwersję
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}
         }'

Odpowiedź zwraca ścieżkę do wygenerowanego pliku DOCX.

  1. Pobierz przekonwertowany DOCX
curl -X GET "https://api.groupdocs.cloud/v1.0/storage/file/output.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o ./local/output.docx

Aby uzyskać więcej informacji o ładunkach żądania i dodatkowych opcjach, zobacz oficjalną dokumentację API.

Rozbijanie konwersji PDF na DOCX w Node.JS

Poniżej znajduje się zwięzłe omówienie kluczowych części przykładu kodu asynchronicznego.

  1. Importowanie i konfigurowanie klienta
const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const apiInstance = new GroupDocsConversionCloud.ConversionApi();

Klasa ConversionApi (odniesienie do API) jest punktem wejścia dla wszystkich operacji konwersji.

  1. Ustaw poświadczenia uwierzytelniania
apiInstance.apiClient.authentications['JWT'].clientId = CLIENT_ID;
apiInstance.apiClient.authentications['JWT'].clientSecret = CLIENT_SECRET;

Uwierzytelnianie JWT zabezpiecza każde żądanie do usługi w chmurze.

  1. Przygotuj informacje o pliku wejściowym
const inputFileInfo = new GroupDocsConversionCloud.FileInfo();
inputFileInfo.filePath = path.normalize('input.pdf');

FileInfo informuje API, gdzie znajduje się źródłowy plik PDF w GroupDocs Cloud storage.

  1. Skonfiguruj opcje specyficzne dla DOCX
const docxOptions = new GroupDocsConversionCloud.DocxConvertOptions();
docxOptions.preserveOriginalFormatting = true;

DocxConvertOptions pozwala zachować oryginalny układ i obsłużyć hasła w razie potrzeby.

  1. Utwórz i wyślij żądanie konwersji
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);

Metoda convertDocument wykonuje rzeczywistą konwersję i zwraca metadane, takie jak ścieżka wyjściowa i rozmiar pliku.

Instalowanie i konfigurowanie GroupDocs.Conversion Cloud SDK for Node.JS

  1. Zainstaluj pakiet
npm install groupdocs-conversion-cloud

Pakiet jest dostępny w publicznym rejestrze npm. Zobacz stronę pobierania po szczegóły wersji.

  1. Wymagania wstępne

    • Node.js 12 lub wyższy.
    • Konto GroupDocs Cloud z identyfikatorem klienta i sekretem klienta.
  2. Zainicjalizuj SDK w swoim projekcie (fragment pełnego przykładu)

const GroupDocsConversionCloud = require('groupdocs-conversion-cloud');
const apiInstance = new GroupDocsConversionCloud.ConversionApi();
apiInstance.apiClient.basePath = 'https://api.groupdocs.cloud';

Dostosuj basePath, jeśli używasz regionalnego punktu końcowego.

Najlepsze praktyki konwersji dokumentów o wysokiej wydajności

  • Ponowne użycie klienta API zamiast tworzenia nowej instancji dla każdej konwersji; zmniejsza to obciążenie uwierzytelniania.
  • Włącz przesyłanie strumieniowe dla dużych plików PDF, aby uniknąć ładowania całego pliku do pamięci.
  • Ustaw rozsądny limit czasu (np. 5 minut), aby zapobiec zawieszaniu się zadań, jednocześnie pozwalając na zakończenie przetwarzania złożonych dokumentów.
  • Zachowuj oryginalne formatowanie tylko w razie potrzeby; wyłączenie go może przyspieszyć konwersję prostych plików PDF zawierających wyłącznie tekst.
  • Monitoruj limity użycia API w panelu konta GroupDocs, aby uniknąć ograniczeń podczas operacji wsadowych.

Podsumowanie

GroupDocs.Conversion Cloud SDK for Node.js ułatwia konwersję PDF do DOCX, niezależnie od tego, czy wolisz w pełni funkcjonalną bibliotekę, czy bezpośrednie wywołania REST za pomocą cURL. Postępując zgodnie z przykładem kodu asynchronicznego, prawidłowo konfigurując klienta i stosując powyższe wskazówki dotyczące wydajności, możesz zintegrować niezawodną konwersję dokumentów w dowolnej usłudze Node.JS. Pamiętaj, aby uzyskać odpowiednią licencję do użytku produkcyjnego; szczegóły cenowe są dostępne na stronie produktu, a tymczasową licencję można uzyskać ze strona tymczasowej licencji w celu oceny.

FAQs

  • Jak konwersja PDF do DOCX w Node.JS radzi sobie ze złożonymi układami?
    SDK domyślnie stara się zachować oryginalne formatowanie. Możesz przełączyć preserveOriginalFormatting w DocxConvertOptions, aby wymienić dokładność na szybkość. Zobacz referencję API dla wszystkich opcji.

  • Jakie są limity rozmiaru pliku przy konwersji PDF do DOCX?
    Usługa w chmurze akceptuje pliki do 200 MB dla kont darmowych; większe pliki wymagają wykupienia wyższego planu. Przesyłanie odbywa się w trybie strumieniowym, więc zużycie pamięci na Twoim serwerze pozostaje niskie.

  • Czy mogę konwertować wiele plików PDF do DOCX w jednym żądaniu?
    API przetwarza jeden dokument na żądanie, ale możesz iterować listę plików w Node.JS i uruchamiać konwersje równolegle, respektując limity współbieżności swojego konta.

  • Czy istnieje sposób, aby przetestować konwersję lokalnie bez płatnej licencji?
    Tak, możesz poprosić o tymczasową licencję ewaluacyjną na stronie tymczasowej licencji. Zapewnia ona pełną funkcjonalność do rozwoju i testowania.

Czytaj więcej