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.
- 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';
- 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ụngstorageApi.uploadFile.
await uploadFile(localInputPdf, cloudInputPdf);
- 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']
});
- 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);
- Tải xuống kết quả - Vòng lặp lặp qua
splitResult, gọidownloadFilecho 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ínhpagescủaSplitOptionsđể 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ằngstorageApi.deleteFilenhư 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á.
