Programiści często muszą podzielić duże pliki PDF na mniejsze, łatwiejsze do zarządzania sekcje. Dzięki GroupDocs.Merger Cloud SDK for Node.JS, podział pliku PDF na wiele części staje się prosty, ponieważ usługa w chmurze zajmuje się ciężką pracą, a Ty koncentrujesz się na logice aplikacji. Ten przewodnik zawiera w pełni działający przykład, pokazuje, jak wykonać to samo zadanie za pomocą cURL oraz wyjaśnia opcje konfiguracji, które pozwalają precyzyjnie dostosować operację podziału.

Podział PDF na wiele plików PDF w Node.JS – kompletny przykład kodu

Ten przykład demonstruje, jak podzielić plik PDF na wiele plików PDF przy użyciu GroupDocs.Merger Cloud SDK for Node.JS.

const fs = require('fs');
const path = require('path');
const GroupDocsMergerCloud = require('@groupdocs/merger-cloud');

// ---------- Set up API credentials ----------
const client = new GroupDocsMergerCloud.ApiClient();
client.appSid = 'YOUR_APP_SID';
client.appKey = 'YOUR_APP_KEY';

// ---------- Initialize API instances ----------
const mergerApi = new GroupDocsMergerCloud.MergerApi(client);
const storageApi = new GroupDocsMergerCloud.StorageApi(client);

// ---------- Helper to upload a local file to cloud storage ----------
async function uploadFile(localPath, cloudPath) {
    const fileData = fs.readFileSync(localPath);
    const uploadRequest = new GroupDocsMergerCloud.UploadFileRequest({
        path: cloudPath,
        file: fileData
    });
    await storageApi.uploadFile(uploadRequest);
}

// ---------- Helper to download a cloud file to local storage ----------
async function downloadFile(cloudPath, localPath) {
    const downloadRequest = new GroupDocsMergerCloud.DownloadFileRequest({ path: cloudPath });
    const response = await storageApi.downloadFile(downloadRequest);
    fs.writeFileSync(localPath, response);
}

// ---------- Main execution ----------
(async () => {
    try {
        // 1. Upload source PDF to cloud storage
        const localInputPdf = path.resolve(__dirname, 'input.pdf');          // local source PDF
        const cloudInputPdf = 'input/input.pdf';                            // cloud path
        await uploadFile(localInputPdf, cloudInputPdf);
        console.log('Uploaded PDF to cloud storage.');

        // 2. Configure split options (example: split into two parts: pages 1‑2 and 3‑5)
        const splitOptions = new GroupDocsMergerCloud.SplitOptions({
            pages: ['1-2', '3-5']                                            // page ranges to split
        });

        // 3. Build split request
        const splitRequest = new GroupDocsMergerCloud.SplitDocumentRequest({
            fileInfo: new GroupDocsMergerCloud.FileInfo({ filePath: cloudInputPdf }),
            options: splitOptions
        });

        // 4. Execute split operation
        const splitResult = await mergerApi.splitDocument(splitRequest);
        console.log(`Split operation completed. ${splitResult.length} parts generated.`);

        // 5. Download each split part and save locally
        for (let i = 0; i < splitResult.length; i++) {
            const partInfo = splitResult[i];
            const localOutputPath = path.resolve(__dirname, `output_part_${i + 1}.pdf`);
            await downloadFile(partInfo.path, localOutputPath);
            console.log(`Saved split part ${i + 1} to ${localOutputPath}`);
        }

        // 6. (Optional) Clean up cloud storage – delete uploaded source file
        const deleteRequest = new GroupDocsMergerCloud.DeleteFileRequest({ path: cloudInputPdf });
        await storageApi.deleteFile(deleteRequest);
        console.log('Cleaned up source file from cloud storage.');
    } catch (error) {
        console.error('Error during PDF split process:', error);
    }
})();

Uwaga: Ten przykład kodu demonstruje podstawową funkcjonalność. Przed użyciem go w swoim projekcie upewnij się, że zaktualizowałeś wszystkie ścieżki plików i wartości konfiguracyjne, aby odpowiadały rzeczywistemu środowisku, sprawdź, czy wszystkie wymagane zależności są prawidłowo zainstalowane, oraz 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.

Podział PDF przy użyciu REST API z cURL

Jeśli wolisz czyste podejście REST, tę samą operację podziału można wykonać za pomocą poleceń cURL. Poniższe kroki pokazują, jak uzyskać token dostępu, przesłać źródłowy plik PDF, wykonać podział i pobrać każdą część.

# 1. Get an access token (replace YOUR_CLIENT_ID and YOUR_CLIENT_SECRET)
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
# 2. Upload the source PDF (replace YOUR_ACCESS_TOKEN and adjust paths)
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/input.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/pdf" \
     --data-binary @./input.pdf
# 3. Execute the split operation (pages 1-2 and 3-5)
curl -X POST "https://api.groupdocs.cloud/v2.0/merger/split" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileInfo": { "filePath": "input.pdf" },
           "options": { "pages": ["1-2","3-5"] }
         }'
# 4. Pobierz każdą wygenerowaną część (przykład dla części 1)
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/output_part_1.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o ./output_part_1.pdf

Aby uzyskać pełną listę punktów końcowych i parametrów, zobacz oficjalną dokumentację API.

Jak działa podział PDF na wiele plików PDF w Node.JS

Zrozumienie przepływu pomaga dostosować kod do bardziej złożonych scenariuszy.

  1. Zainicjalizuj klienta API - new GroupDocsMergerCloud.ApiClient() tworzy klienta, który przechowuje Twój App SID i App Key.
const client = new GroupDocsMergerCloud.ApiClient();
client.appSid = 'YOUR_APP_SID';
client.appKey = 'YOUR_APP_KEY';
  1. Prześlij plik źródłowy - Pomocnicza funkcja uploadFile odczytuje lokalny plik PDF i wysyła go do pamięci w chmurze przy użyciu storageApi.uploadFile.
await uploadFile(localInputPdf, cloudInputPdf);
  1. Skonfiguruj opcje podziału - new GroupDocsMergerCloud.SplitOptions({ pages: ['1-2', '3-5'] }) informuje usługę, które zakresy stron mają zostać wyodrębnione.
const splitOptions = new GroupDocsMergerCloud.SplitOptions({
    pages: ['1-2', '3-5']
});
  1. Wyślij żądanie podziału - mergerApi.splitDocument(splitRequest) wysyła żądanie i zwraca tablicę z informacjami o każdym wygenerowanym fragmencie.
const splitResult = await mergerApi.splitDocument(splitRequest);
  1. Pobierz wyniki - Pętla iteruje po splitResult, wywołując downloadFile dla każdej części i zapisując ją lokalnie.
for (let i = 0; i < splitResult.length; i++) {
    const partInfo = splitResult[i];
    await downloadFile(partInfo.path, localOutputPath);
}

Aby uzyskać bardziej szczegółowe informacje o każdej klasie i metodzie, zapoznaj się z referencją API.

Wymagania wstępne i konfiguracja

Zanim rozpoczniesz, upewnij się, że masz następujące:

  • Zainstalowany Node.js 14 lub nowszy.
  • Konto GroupDocs Cloud z ważnym App SID i App Key.
  • Dostęp do Internetu w celu wywołań API.

Zainstaluj SDK za pomocą npm i pobierz najnowszy pakiet:

npm install groupdocs-merger-cloud

Możesz także pobrać pliki binarne bezpośrednio ze strony pobierania.

Dostosowywanie opcji podziału

Obiekt SplitOptions oferuje kilka właściwości, które możesz dostosować:

  • pages - Tablica zakresów stron (np. ['1-2','3-5']). To jest podstawowe ustawienie użyte w przykładzie.
  • outputPath - Opcjonalny folder, w którym podzielone pliki będą przechowywane w chmurze.
  • preserveMetadata - Gdy ustawione na true, oryginalne metadane dokumentu są kopiowane do każdej części. Zobacz referencję API po więcej opcji.

Dostosowanie tych wartości pozwala kontrolować rozmiar, nazewnictwo i metadane każdego wygenerowanego pliku PDF.

Podsumowanie

Dzielenie plików PDF na wiele plików PDF w Node.JS staje się proste dzięki GroupDocs.Merger Cloud SDK for Node.JS. SDK obsługuje przesyłanie plików, wybór zakresu stron oraz pobieranie wyników, co pozwala skupić się na integracji wyjścia z Twoim przepływem pracy. Pamiętaj, aby zabezpieczyć swój App SID i App Key oraz rozważ użycie licencji komercyjnej w środowiskach produkcyjnych. Szczegóły cenowe są dostępne na stronie produktu, a tymczasową licencję można uzyskać na stronie tymczasowej licencji. Dzięki kodowi, przykładom cURL i wskazówkom konfiguracyjnym w tym przewodniku, jesteś gotowy wdrożyć solidne dzielenie PDF w swoich aplikacjach Node.JS.

FAQ

  • Jak podzielić PDF na wiele plików PDF w Node.JS używając własnych zakresów stron?
    Użyj właściwości pages klasy SplitOptions, aby zdefiniować dowolny potrzebny zakres, na przykład ['1-3','4-6']. SDK wygeneruje osobny plik PDF dla każdego zakresu.

  • Czy mogę podzielić plik PDF bez przechowywania go na stałe w chmurze?
    Tak. Po przesłaniu pliku źródłowego i zakończeniu podziału możesz usunąć oryginalny plik za pomocą storageApi.deleteFile, jak pokazano w przykładzie.

  • Czy potrzebuję płatnej licencji, aby używać funkcji podziału w produkcji?
    Licencja komercyjna jest wymagana do użytku produkcyjnego. Odwiedź stronę produktu, aby sprawdzić ceny, i uzyskaj tymczasową licencję ze strony tymczasowej licencji w celu oceny.

Czytaj więcej