Việc loại bỏ các ghi chú, đánh dấu, hoặc dấu mực không mong muốn khỏi PDF là một yêu cầu thường gặp khi chuẩn bị tài liệu sạch để phân phối. GroupDocs.Annotation Cloud SDK for Node.js cung cấp một thư viện dựa trên REST mạnh mẽ cho phép bạn quản lý các chú thích PDF một cách lập trình. Hướng dẫn này sẽ chỉ cho bạn cách xóa các đối tượng Annotation khỏi PDF bằng REST trong Node.JS, từng bước một. Bạn sẽ thấy một ví dụ mã hoàn chỉnh, các lệnh cURL tương đương, mẹo cấu hình, và các khuyến nghị thực tiễn tốt nhất để tích hợp việc xóa chú thích vào dịch vụ của mình.

Ví dụ Hoạt động đầy đủ để Xóa các Đối tượng Ghi chú khỏi PDF bằng REST trong Node.JS

Ví dụ này minh họa cách tải lên một tệp PDF, xóa tất cả các chú thích của nó và tải xuống tệp đã được làm sạch bằng GroupDocs.Annotation SDK.

const fs = require('fs');
const path = require('path');
const GroupDocsAnnotationCloud = require("@groupdocs/annotation-cloud");

// ==== Authentication =========================================================
const clientId = "YOUR_CLIENT_ID";
const clientSecret = "YOUR_CLIENT_SECRET";

const config = new GroupDocsAnnotationCloud.Configuration(clientId, clientSecret);
const annotationsApi = new GroupDocsAnnotationCloud.AnnotationsApi(config);
const storageApi = new GroupDocsAnnotationCloud.StorageApi(config);

// ==== Local & Remote file definitions =======================================
const localInputPath = path.resolve(__dirname, "input.pdf");
const localOutputPath = path.resolve(__dirname, "output.pdf");
const remoteFilePath = "input.pdf";

// ==== Main workflow ==========================================================
(async () => {
    // 1. Upload PDF to GroupDocs Cloud storage
    const fileBytes = fs.readFileSync(localInputPath);
    const uploadRequest = new GroupDocsAnnotationCloud.UploadFileRequest({
        path: remoteFilePath,
        file: fileBytes
    });
    await storageApi.uploadFile(uploadRequest);

// 2. Build FileInfo object for the uploaded PDF
    const fileInfo = new GroupDocsAnnotationCloud.FileInfo({
        filePath: remoteFilePath
    });

// 3. Retrieve all existing annotations
    const getAnnotationsRequest = new GroupDocsAnnotationCloud.GetAnnotationsRequest({
        fileInfo: fileInfo
    });
    const annotationsResult = await annotationsApi.getAnnotations(getAnnotationsRequest);
    const annotationIds = (annotationsResult.annotations || []).map(a => a.id);

// 4. Delete all annotations (if any)
    if (annotationIds.length > 0) {
        const deleteRequest = new GroupDocsAnnotationCloud.DeleteAnnotationsRequest({
            fileInfo: fileInfo,
            annotationIds: annotationIds
        });
        await annotationsApi.deleteAnnotations(deleteRequest);
    }

// 5. Download the cleaned PDF back to local storage
    const downloadRequest = new GroupDocsAnnotationCloud.DownloadFileRequest({
        path: remoteFilePath
    });
    const fileStream = await storageApi.downloadFile(downloadRequest);
    fs.writeFileSync(localOutputPath, fileStream);
    console.log(`All annotations removed. Clean file saved to ${localOutputPath}`);
})();

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 bạn 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.

Xóa chú thích PDF qua REST API bằng cURL

Dưới đây là các lệnh cURL thực hiện cùng quy trình xóa chú thích thông qua các endpoint REST của GroupDocs.Annotation Cloud.

# 1. Obtain an access token
curl -X POST "https://api.groupdocs.cloud/v2.0/auth/token" \
     -H "Content-Type: application/json" \
     -d "{\"client_id\":\"YOUR_CLIENT_ID\",\"client_secret\":\"YOUR_CLIENT_SECRET\"}"
# 2. Upload the source PDF
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. Retrieve annotation IDs
curl -X GET "https://api.groupdocs.cloud/v2.0/annotation/annotations?filePath=input.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
# 4. Delete all retrieved annotations
curl -X DELETE "https://api.groupdocs.cloud/v2.0/annotation/annotations?filePath=input.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d "{\"annotationIds\":[\"id1\",\"id2\"]}"
# 5. Download the cleaned PDF
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/input.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.pdf

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

Cách Xóa Đối Tượng Ghi Chú trong PDF bằng REST trong Node.JS Hoạt Động

  1. Cấu hình xác thực - Lớp Configuration được khởi tạo với clientId và clientSecret của bạn, tạo ra một ngữ cảnh đã xác thực cho tất cả các cuộc gọi API tiếp theo.
const config = new GroupDocsAnnotationCloud.Configuration(clientId, clientSecret);
  1. Tải lên tệp - UploadFileRequest gửi các byte PDF cục bộ tới lưu trữ GroupDocs Cloud. Phương thức storageApi.uploadFile xử lý việc truyền tải.
const uploadRequest = new GroupDocsAnnotationCloud.UploadFileRequest({
    path: remoteFilePath,
    file: fileBytes
});
await storageApi.uploadFile(uploadRequest);
  1. Lấy chú thích - GetAnnotationsRequest tạo một đối tượng yêu cầu với tham chiếu FileInfo. Lệnh annotationsApi.getAnnotations trả về một bộ sưu tập các đối tượng chú thích, từ đó trích xuất các ID.
const getAnnotationsRequest = new GroupDocsAnnotationCloud.GetAnnotationsRequest({
    fileInfo: fileInfo
});
const annotationsResult = await annotationsApi.getAnnotations(getAnnotationsRequest);
  1. Xóa chú thích - Nếu có bất kỳ ID nào, DeleteAnnotationsRequest được điền và truyền cho annotationsApi.deleteAnnotations, lệnh này sẽ xóa vĩnh viễn các chú thích khỏi PDF đã lưu.
const deleteRequest = new GroupDocsAnnotationCloud.DeleteAnnotationsRequest({
    fileInfo: fileInfo,
    annotationIds: annotationIds
});
await annotationsApi.deleteAnnotations(deleteRequest);
  1. Tải xuống PDF sạch - Cuối cùng, DownloadFileRequest lấy tệp đã cập nhật, và fs.writeFileSync ghi nó vào hệ thống tệp cục bộ.
const downloadRequest = new GroupDocsAnnotationCloud.DownloadFileRequest({
    path: remoteFilePath
});
const fileStream = await storageApi.downloadFile(downloadRequest);
fs.writeFileSync(localOutputPath, fileStream);

Để xem chi tiết các định nghĩa lớp và phương thức, hãy tham khảo Tham khảo API.

Cài đặt và cấu hình GroupDocs.Annotation Cloud SDK for Node.js

SDK được phân phối dưới dạng gói npm. Cài đặt nó bằng lệnh dưới đây và sau đó yêu cầu nó trong dự án của bạn.

npm install groupdocs-annotation-cloud

Bạn cũng có thể tải xuống gói mới nhất trực tiếp từ trang phát hành trên GitHub hoặc từ URL tải xuống chính thức.

Sau khi cài đặt, nhập thư viện và tạo một đối tượng cấu hình như được hiển thị trong ví dụ mã sau:

const GroupDocsAnnotationCloud = require("@groupdocs/annotation-cloud");
const config = new GroupDocsAnnotationCloud.Configuration("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");

Đảm bảo môi trường chạy của bạn đáp ứng các yêu cầu về phiên bản Node.js và bạn có tài khoản GroupDocs hợp lệ để lấy thông tin xác thực client.

Tùy chọn và Cài đặt Loại bỏ chú thích

SDK cung cấp một số tham số mà bạn có thể điều chỉnh:

  • clientId / clientSecret - Thông tin xác thực cho OAuth. Đặt chúng trong hàm khởi tạo Configuration.
  • fileInfo.filePath - Đường dẫn tới tệp PDF trong lưu trữ GroupDocs Cloud. Điều chỉnh nếu bạn lưu tệp trong thư mục khác.
  • annotationIds - Một mảng các ID được trả về bởi GetAnnotations. Cung cấp một phần con cho phép xóa có chọn lọc.

Các cài đặt bổ sung như thời gian chờ yêu cầu và cấu hình proxy có sẵn trong tài liệu SDK; xem tài liệu chính thức để biết danh sách đầy đủ.

Các thực tiễn tốt nhất cho việc xóa chú thích PDF qua REST

  • Xác thực ID chú thích - Luôn kiểm tra xem các ID bạn dự định xóa có tồn tại hay không; việc cố gắng xóa các ID không tồn tại có thể gây ra lỗi 404.
  • Sử dụng HTTPS - Tất cả các cuộc gọi API phải được thực hiện qua HTTPS để bảo vệ thông tin đăng nhập và dữ liệu tài liệu của bạn.
  • Xử lý tệp lớn với tải lên dạng khối - Đối với các tệp PDF lớn hơn 100 MB, nên sử dụng endpoint tải lên đa phần để tránh thời gian chờ.
  • Ghi lại phản hồi API - Lưu trữ ID yêu cầu và phản hồi để tạo nhật ký kiểm toán và dễ dàng khắc phục sự cố.
  • Tái sử dụng token truy cập - Lưu token OAuth trong bộ nhớ đệm cho đến khi hết hạn để giảm tải xác thực.

Câu hỏi thường gặp

  • How do I authenticate with GroupDocs.Annotation Cloud API?
    Lấy client ID và secret từ tài khoản GroupDocs của bạn, sau đó yêu cầu một access token thông qua endpoint OAuth. Xem tài liệu chính thức để biết chi tiết.

  • Tôi có thể xóa các chú thích cụ thể thay vì tất cả không?
    Có, hãy cung cấp các ID của các chú thích bạn muốn xóa trong DeleteAnnotationsRequest. SDK trả về danh sách các ID chú thích sau một cuộc gọi GetAnnotations.

  • Làm thế nào để tôi xóa các đối tượng Annotation khỏi PDF bằng REST trong Node.JS?
    Sử dụng GroupDocs.Annotation Cloud SDK for Node.js để gọi endpoint DeleteAnnotations sau khi lấy các ID của annotation. Quy trình đầy đủ được trình bày trong ví dụ mã và phần cURL của hướng dẫn này.

  • Cần giấy phép gì cho việc sử dụng trong môi trường sản xuất?
    Cần một giấy phép trả phí cho môi trường sản xuất. Bạn có thể nhận giấy phép tạm thời từ trang giấy phép tạm thời trong quá trình đánh giá.

Đọc thêm