การลบโน้ต, ไฮไลท์ หรือรอยหมึกที่ไม่ต้องการจาก PDF เป็นความต้องการที่พบบ่อยเมื่อเตรียมเอกสารที่สะอาดสำหรับการแจกจ่าย. GroupDocs.Annotation Cloud SDK for Node.js ให้ไลบรารีที่ขับเคลื่อนด้วย REST ที่มีประสิทธิภาพซึ่งช่วยให้คุณจัดการการทำหมายเหตุใน PDF อย่างโปรแกรมเมติก. คู่มือนี้จะแสดงวิธีการลบวัตถุ Annotation จาก PDF ด้วย REST ใน Node.JS อย่างเป็นขั้นตอน. คุณจะได้เห็นตัวอย่างโค้ดเต็มรูปแบบ, คำสั่ง cURL ที่เทียบเท่า, เคล็ดลับการกำหนดค่า, และคำแนะนำแนวปฏิบัติที่ดีที่สุดเพื่อผสานการลบหมายเหตุเข้ากับบริการของคุณ.

ตัวอย่างการทำงานเต็มรูปแบบสำหรับการลบวัตถุ Annotation จาก PDF ด้วย REST ใน Node.JS

ตัวอย่างนี้แสดงวิธีอัปโหลดไฟล์ PDF, ลบคำอธิบายทั้งหมด, และดาวน์โหลดไฟล์ที่ทำความสะอาดแล้วโดยใช้ 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}`);
})();

หมายเหตุ: ตัวอย่างโค้ดนี้แสดงการทำงานหลัก ก่อนนำไปใช้ในโครงการของคุณ ให้ตรวจสอบและอัปเดตเส้นทางไฟล์และค่าการกำหนดค่าต่าง ๆ ให้ตรงกับสภาพแวดล้อมจริงของคุณ ตรวจสอบว่าขึ้นตอนที่จำเป็นทั้งหมดได้ถูกติดตั้งอย่างถูกต้อง และทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนา หากคุณพบปัญหาใด ๆ โปรดดูที่ เอกสารอย่างเป็นทางการ หรือ ติดต่อทีมสนับสนุนที่ ทีมสนับสนุน เพื่อขอความช่วยเหลือ.

ลบคำอธิบาย PDF ผ่าน REST API ด้วย cURL

ด้านล่างเป็นคำสั่ง cURL ที่ทำงานกระบวนการลบ annotation เดียวกันผ่าน REST endpoint ของ 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. ดึง 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

สำหรับรายการเต็มของ endpoint และพารามิเตอร์, โปรดดูที่ เอกสาร API อย่างเป็นทางการ

วิธีลบวัตถุ Annotation จาก PDF ด้วย REST ใน Node.JS ทำงาน

  1. การตั้งค่าการรับรอง - คลาส Configuration ถูกสร้างขึ้นด้วย clientId และ clientSecret ของคุณ เพื่อสร้างบริบทที่ผ่านการรับรองสำหรับการเรียก API ทั้งหมดต่อไป

    const config = new GroupDocsAnnotationCloud.Configuration(clientId, clientSecret);
    
  2. อัปโหลดไฟล์ - UploadFileRequest ส่งไบต์ PDF ที่อยู่ในเครื่องไปยังที่เก็บข้อมูลของ GroupDocs Cloud. วิธีการ storageApi.uploadFile จัดการการถ่ายโอน

    const uploadRequest = new GroupDocsAnnotationCloud.UploadFileRequest({
        path: remoteFilePath,
        file: fileBytes
    });
    await storageApi.uploadFile(uploadRequest);
    
  3. ดึงข้อมูลคำอธิบาย - GetAnnotationsRequest สร้างอ็อบเจ็กต์คำขอที่มีการอ้างอิง FileInfo. การเรียก annotationsApi.getAnnotations จะคืนคอลเลกชันของอ็อบเจ็กต์คำอธิบาย, จากนั้นดึง ID

    const getAnnotationsRequest = new GroupDocsAnnotationCloud.GetAnnotationsRequest({
        fileInfo: fileInfo
    });
    const annotationsResult = await annotationsApi.getAnnotations(getAnnotationsRequest);
    
  4. ลบคำอธิบาย - หากมี ID ใด ๆ อยู่, DeleteAnnotationsRequest จะถูกเติมข้อมูลและส่งไปยัง annotationsApi.deleteAnnotations, ซึ่งจะลบคำอธิบายออกจาก PDF ที่จัดเก็บอย่างถาวร

    const deleteRequest = new GroupDocsAnnotationCloud.DeleteAnnotationsRequest({
        fileInfo: fileInfo,
        annotationIds: annotationIds
    });
    await annotationsApi.deleteAnnotations(deleteRequest);
    
  5. ดาวน์โหลด PDF ที่สะอาด - สุดท้าย, DownloadFileRequest ดึงไฟล์ที่อัปเดต, และ fs.writeFileSync จะเขียนไฟล์นั้นลงในระบบไฟล์ของเครื่อง

    const downloadRequest = new GroupDocsAnnotationCloud.DownloadFileRequest({
        path: remoteFilePath
    });
    const fileStream = await storageApi.downloadFile(downloadRequest);
    fs.writeFileSync(localOutputPath, fileStream);
    

สำหรับการกำหนดคลาสและเมธอดโดยละเอียด โปรดดูที่ เอกสารอ้างอิง API.

การติดตั้งและกำหนดค่า GroupDocs.Annotation Cloud SDK for Node.js

SDK ถูกจัดจำหน่ายเป็นแพคเกจ npm. ติดตั้งโดยใช้คำสั่งด้านล่างและจากนั้นเรียกใช้ในโปรเจกต์ของคุณ.

npm install groupdocs-annotation-cloud

คุณยังสามารถดาวน์โหลดแพคเกจล่าสุดโดยตรงจาก หน้า releases ของ GitHub หรือจาก URL ดาวน์โหลดอย่างเป็นทางการ.

หลังจากการติดตั้ง ให้ทำการนำเข้าไลบรารีและสร้างอ็อบเจกต์การกำหนดค่า ตามที่แสดงในตัวอย่างโค้ด:

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

ตรวจสอบให้แน่ใจว่าสภาพแวดล้อมการทำงานของคุณตรงตามข้อกำหนดเวอร์ชันของ Node.js และคุณมีบัญชี GroupDocs ที่ถูกต้องเพื่อรับข้อมูลประจำตัวของไคลเอนต์

ตัวเลือกและการตั้งค่าการลบคำอธิบาย

SDK เปิดเผยพารามิเตอร์หลายตัวที่คุณสามารถปรับแต่งได้:

  • clientId / clientSecret - ข้อมูลประจำตัวสำหรับการตรวจสอบสิทธิ์ OAuth. ตั้งค่าเหล่านี้ในตัวสร้าง Configuration.
  • fileInfo.filePath - เส้นทางของไฟล์ PDF ใน GroupDocs Cloud storage. ปรับค่านี้หากคุณเก็บไฟล์ในโฟลเดอร์อื่น.
  • annotationIds - อาร์เรย์ของ ID ที่ได้รับจาก GetAnnotations. การระบุส่วนย่อยจะทำให้สามารถลบได้แบบเลือก.

การตั้งค่าเพิ่มเติม เช่น เวลาในการรอการร้องขอและการกำหนดค่าพร็อกซี มีให้ในเอกสาร SDK; ดู เอกสารอย่างเป็นทางการ สำหรับรายการทั้งหมด.

แนวทางปฏิบัติที่ดีที่สุดสำหรับการลบคำอธิบาย PDF ผ่าน REST

  • ตรวจสอบ ID ของ Annotation - ควรตรวจสอบเสมอว่า ID ที่คุณต้องการลบมีอยู่จริง; การพยายามลบ ID ที่ไม่มีอยู่สามารถทำให้เกิดข้อผิดพลาด 404 ได้.
  • ใช้ HTTPS - การเรียก API ทั้งหมดต้องทำผ่าน HTTPS เพื่อปกป้องข้อมูลประจำตัวและข้อมูลเอกสารของคุณ.
  • จัดการไฟล์ขนาดใหญ่ด้วยการอัปโหลดแบบแบ่งส่วน - สำหรับไฟล์ PDF ที่มีขนาดใหญ่กว่า 100 MB ควรใช้ endpoint การอัปโหลดแบบ multipart เพื่อหลีกเลี่ยงการหมดเวลา.
  • บันทึกการตอบสนองของ API - เก็บ ID ของคำขอและการตอบสนองเพื่อใช้เป็นบันทึกตรวจสอบและอำนวยความสะดวกในการแก้ไขปัญหา.
  • ใช้ Access Token ซ้ำ - แคชโทเค็น OAuth จนกว่าจะหมดอายุเพื่อ ลดภาระการตรวจสอบสิทธิ์.

คำถามทั่วไป

  • ฉันจะทำการรับรองความถูกต้องกับ GroupDocs.Annotation Cloud API อย่างไร?
    รับ client ID และ secret จากบัญชี GroupDocs ของคุณ, จากนั้นขอ access token ผ่าน OAuth endpoint. ดู เอกสารอย่างเป็นทางการ สำหรับรายละเอียด.

  • ฉันสามารถลบคำอธิบายเฉพาะแทนที่จะลบทั้งหมดได้หรือไม่?
    ใช่, ให้ระบุ ID ของคำอธิบายที่คุณต้องการลบใน DeleteAnnotationsRequest. SDK จะคืนรายการของ ID คำอธิบายหลังจากการเรียก GetAnnotations.

  • ฉันจะลบวัตถุ Annotation จาก PDF ด้วย REST ใน Node.JS ได้อย่างไร?
    ใช้ GroupDocs.Annotation Cloud SDK for Node.js เพื่อเรียก DeleteAnnotations endpoint หลังจากดึง ID ของ annotation แล้ว กระบวนการทำงานทั้งหมดแสดงในตัวอย่างโค้ดและส่วน cURL ของคู่มือนี้

  • ต้องการใบอนุญาตอะไรสำหรับการใช้งานในสภาพแวดล้อมการผลิต?
    จำเป็นต้องมีใบอนุญาตแบบชำระเงินสำหรับการผลิต คุณสามารถรับใบอนุญาตชั่วคราวจาก หน้าใบอนุญาตชั่วคราว ในระหว่างการประเมิน

อ่านเพิ่มเติม