Developers thường cần chia nhỏ các tệp PDF lớn thành các phần nhỏ hơn, dễ quản lý hơn. Với GroupDocs.Merger Cloud SDK for Node.JS, việc tách PDF thành nhiều phần trở nên đơn giản, vì dịch vụ đám mây thực hiện phần công việc nặng trong khi bạn tập trung vào logic ứng dụng của mình. Hướng dẫn này cung cấp một ví dụ làm việc đầy đủ, chỉ ra cách thực hiện cùng một nhiệm vụ bằng cURL, và giải thích các tùy chọn cấu hình cho phép bạn tinh chỉnh hoạt động tách.

Tách PDF thành nhiều PDF trong Node.JS - Ví dụ mã hoàn chỉnh

Ví dụ này minh họa cách tách một tệp PDF thành nhiều tệp PDF bằng cách sử dụng 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);
    }
})();

Lưu ý: Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật mọi đường dẫn tệp và giá trị cấu hình để phù hợp với môi trường thực tế của bạn, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển. Nếu gặp bất kỳ vấn đề nào, vui lòng tham khảo tài liệu chính thức hoặc liên hệ với đội hỗ trợ để được trợ giúp.

Tách PDF bằng REST API với cURL

Nếu bạn muốn sử dụng cách tiếp cận REST thuần túy, thao tác tách tương tự có thể được thực hiện bằng các lệnh cURL. Các bước dưới đây cho thấy cách lấy token truy cập, tải lên PDF nguồn, thực hiện tách và tải xuống từng phần.

# 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. Download each generated part (example for part 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

Để xem danh sách đầy đủ các endpoint và tham số, hãy tham khảo tài liệu API chính thức.

Cách Split PDF thành nhiều PDF trong Node.JS hoạt động

Hiểu luồng công việc giúp bạn điều chỉnh mã cho các kịch bản phức tạp hơn.

  1. Khởi tạo client API - new GroupDocsMergerCloud.ApiClient() tạo một client chứa App SID và App Key của bạn.
const client = new GroupDocsMergerCloud.ApiClient();
client.appSid = 'YOUR_APP_SID';
client.appKey = 'YOUR_APP_KEY';
  1. Tải lên tệp nguồn - Trợ giúp uploadFile đọc tệp PDF cục bộ và gửi nó lên lưu trữ đám mây bằng cách sử dụng storageApi.uploadFile.
await uploadFile(localInputPdf, cloudInputPdf);
  1. Cấu hình tùy chọn tách - new GroupDocsMergerCloud.SplitOptions({ pages: ['1-2', '3-5'] }) cho biết dịch vụ sẽ trích xuất các phạm vi trang nào.
const splitOptions = new GroupDocsMergerCloud.SplitOptions({
    pages: ['1-2', '3-5']
});
  1. Gửi yêu cầu tách - mergerApi.splitDocument(splitRequest) gửi yêu cầu và trả về một mảng chứa thông tin về mỗi phần đã tạo.
const splitResult = await mergerApi.splitDocument(splitRequest);
  1. Tải xuống kết quả - Vòng lặp lặp qua splitResult, gọi downloadFile cho mỗi phần và lưu nó cục bộ.
for (let i = 0; i < splitResult.length; i++) {
    const partInfo = splitResult[i];
    await downloadFile(partInfo.path, localOutputPath);
}

Để biết chi tiết sâu hơn về mỗi lớp và phương thức, hãy tham khảo tài liệu API.

Yêu cầu và Cài đặt

Trước khi bắt đầu, hãy đảm bảo bạn có những thứ sau:

  • Node.js 14 hoặc mới hơn đã được cài đặt.
  • Tài khoản GroupDocs Cloud với App SID và App Key hợp lệ.
  • Truy cập internet để gọi API.

Cài đặt SDK qua npm và tải gói mới nhất:

npm install groupdocs-merger-cloud

Bạn cũng có thể tải các tệp nhị phân trực tiếp từ trang tải xuống.

Tinh chỉnh các tùy chọn tách

Đối tượng SplitOptions cung cấp một số thuộc tính mà bạn có thể điều chỉnh:

  • pages - Một mảng các phạm vi trang (ví dụ, ['1-2','3-5']). Đây là cài đặt chính được sử dụng trong ví dụ.
  • outputPath - Thư mục tùy chọn nơi các tệp đã tách sẽ được lưu trữ trong lưu trữ đám mây.
  • preserveMetadata - Khi được đặt thành true, siêu dữ liệu tài liệu gốc sẽ được sao chép vào mỗi phần. Xem tham chiếu API để biết thêm tùy chọn.

Việc điều chỉnh các giá trị này cho phép bạn kiểm soát kích thước, tên và siêu dữ liệu của mỗi tệp PDF kết quả.

Kết luận

Việc chia tách PDF thành nhiều PDF trong Node.JS trở nên đơn giản với GroupDocs.Merger Cloud SDK for Node.JS. SDK xử lý việc tải lên tệp, lựa chọn phạm vi trang và lấy kết quả, cho phép bạn tập trung vào việc tích hợp đầu ra vào quy trình làm việc của mình. Hãy nhớ bảo mật App SID và App Key của bạn, và cân nhắc sử dụng giấy phép thương mại cho các triển khai sản xuất. Chi tiết về giá cả có sẵn trên trang sản phẩm, và bạn có thể nhận giấy phép tạm thời từ trang giấy phép tạm thời. Với mã, các ví dụ cURL và các mẹo cấu hình trong hướng dẫn này, bạn đã sẵn sàng triển khai việc chia tách PDF mạnh mẽ trong các ứng dụng Node.JS của mình.

FAQs

  • Làm sao để tách PDF thành nhiều PDF trong Node.JS bằng các phạm vi trang tùy chỉnh?
    Sử dụng thuộc tính pages của SplitOptions để xác định bất kỳ phạm vi nào bạn cần, chẳng hạn như ['1-3','4-6']. SDK sẽ tạo một PDF riêng cho mỗi phạm vi.

  • Có thể tách PDF mà không lưu trữ nó vĩnh viễn trên cloud storage không?
    Có. Sau khi tải lên tệp nguồn và hoàn thành việc tách, bạn có thể xóa tệp gốc bằng storageApi.deleteFile như trong ví dụ.

  • Tôi có cần giấy phép trả phí để sử dụng tính năng tách trong môi trường sản xuất không?
    Cần có giấy phép thương mại cho việc sử dụng trong môi trường sản xuất. Truy cập trang sản phẩm để xem giá và nhận giấy phép tạm thời từ trang giấy phép tạm thời để đánh giá.

Đọc Thêm