
เราจำเป็นต้องลบรายละเอียดที่ละเอียดอ่อนออกจากไฟล์ PDF เนื่องจากข้อมูลมีความลับ ดังนั้นโดยปกติแล้วเราจะลบ (ลบข้อความ รูปภาพ ฯลฯ) จากพื้นที่หน้าหนึ่งของเอกสาร PDF อย่างไรก็ตาม เมื่อต้องจัดการกับเอกสารจำนวนมาก เราจำเป็นต้องใช้ API เพื่อให้บรรลุข้อกำหนดนี้
ในบทความนี้ เราจะพูดถึงขั้นตอนการแก้ไข PDF ออนไลน์โดยใช้คลาส RedactionAnnotation ของ Aspose.PDF Cloud SDK for Java
- การติดตั้ง SDK
- เพิ่มคำอธิบายการแก้ไขโดยใช้ Java
- อ่านคำอธิบายการแก้ไขหน้า
- อัปเดตคำอธิบายการแก้ไขที่มีอยู่
การติดตั้ง SDK
Aspose.PDF Cloud SDK for Java เป็น API การเขียนโปรแกรมเฉพาะสำหรับนักพัฒนา Java และสร้างขึ้นบน Aspose.PDF Cloud API สามารถใช้ Cloud API ของเราจากแพลตฟอร์มใดก็ได้โดยไม่ต้องติดตั้งซอฟต์แวร์ใดๆ อย่างไรก็ตาม หากต้องการใช้ SDK คุณต้องติดตั้งบนระบบก่อน
คุณสามารถดาวน์โหลด Cloud SDK ได้จาก Maven และ GitHub จากนั้นเพิ่มรายละเอียดต่อไปนี้ลงในไฟล์ pom.xml เพื่อดาวน์โหลดและใช้ Aspose.Pdf.jar ในโปรเจ็กต์ Maven build ของคุณ
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>https://artifact.aspose.cloud/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf-cloud</artifactId>
<version>21.1.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
เมื่อติดตั้ง SDK แล้ว ขั้นตอนต่อไปคือการรับ Client ID และ Client Secret ส่วนตัวของคุณ โปรดไปที่ Aspose.Cloud Dashboard และหากคุณมีบัญชี GitHub หรือ Google ให้ลงทะเบียนเพียงเท่านี้ มิฉะนั้น ให้คลิกที่ปุ่ม Create a new Account และระบุข้อมูลที่จำเป็น จากนั้นเข้าสู่ระบบแดชบอร์ดโดยใช้ข้อมูลรับรองและขยายส่วน Applications เลื่อนลงไปที่ส่วน Client Credentials เพื่อดูรายละเอียด Client ID และ Client Secret
เพิ่มคำอธิบายการแก้ไขโดยใช้ Java
ในหัวข้อด้านล่างนี้ เราได้อธิบายขั้นตอนเกี่ยวกับวิธีเพิ่มกล่องสี่เหลี่ยมผืนผ้าเพื่อลบเนื้อหาของไฟล์ PDF โดยใช้ Aspose.PDF Cloud SDK สำหรับ Java
- ก่อนอื่น เราต้องสร้างอ็อบเจ็กต์ของ PdfApi ขณะส่งรายละเอียด ClientId และ ClientSecret ที่ได้รับจากแดชบอร์ด Aspose.Cloud
- ประการที่สอง สร้างอ็อบเจ็กต์ของคลาส Rectangle เพื่อระบุภูมิภาคบนเพจที่จะเพิ่มคำอธิบายประกอบ
- ประการที่สาม เลือกค่าเริ่มต้นจากการแจงนับ AnnotationFlags และเพิ่มลงในรายการประเภท AnnotationFlags
- ตอนนี้ให้สร้างอินสแตนซ์ของคลาส RedactionAnnotation และตั้งค่าพื้นที่สี่เหลี่ยมโดยใช้เมธอด setRect(…)
- ตั้งค่าการจัดตำแหน่งแนวนอนโดยใช้เมธอด setHorizontalAlignment(…) และเลือก Center จากการแจงนับ HorizontalAlignment
- ในการเติมสีภายในคำอธิบาย ให้ใช้เมธอด setFillColor(…) และส่งผ่านวัตถุ Color
- กำหนดวันที่แก้ไขล่าสุดของคำอธิบายประกอบโดยใช้เมธอด setModified(…)
- ก่อนสุดท้าย ให้สร้างรายการประเภท RedactionAnnotation และเพิ่มวัตถุ RedactAnnotation ลงในรายการนี้
- สุดท้าย ให้เรียกใช้เมธอด postPageRedactionAnnotations(…) ของ PdfApi และส่งชื่อไฟล์ต้นฉบับ หมายเลขหน้าที่ต้องการเพิ่มคำอธิบายประกอบ นอกจากนี้ ให้ส่ง RedactionAnnotation List เป็นอาร์กิวเมนต์เพื่อเริ่มกระบวนการแก้ไข
// รับ ClientID และ ClientSecret จาก https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
// สร้างอินสแตนซ์ PdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// อินพุตเอกสาร PDF
String sourcePDF = "PdfWithTable.pdf";
// หน้า PDF ที่จะวางคำอธิบาย
int pageNumber = 1;
// สร้างวัตถุสี่เหลี่ยมผืนผ้าเพื่อระบุพื้นที่คำอธิบายประกอบการแก้ไข
// ภูมิภาคคำนวณจากมุมซ้ายล่างของหน้า
Rectangle rect = new Rectangle()
// หน่วยวัดคือจุด
.LLX(100.)
.LLY(700.)
.URX(200.)
.URY(600.);
// สร้างอาร์เรย์ AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();
// ตั้งค่า AnnotationFlag เป็นค่าเริ่มต้น
flags.add(AnnotationFlags.DEFAULT);
// สร้าง ArrayList ของจุด
List<Point> points = new ArrayList<>();
points.add(new Point().X(10.).Y(40.));
points.add(new Point().X(30.).Y(40.));
// สร้างวัตถุ Redact Annotation
RedactionAnnotation annotation = new RedactionAnnotation();
// ตั้งชื่อของคำอธิบายประกอบ
// มีประโยชน์เมื่อเรามีคำอธิบายประกอบหลายรายการในเอกสารเดียว
annotation.setName("Name");
// ตั้งค่าพื้นที่สี่เหลี่ยมสำหรับการแก้ไขคำอธิบายประกอบ
annotation.setRect(rect);
annotation.setFlags(flags);
// ตั้งค่าการจัดแนวแนวนอนให้เป็นศูนย์กลาง
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
// ตั้งค่า ZIndex เป็น 1
annotation.setZindex(1);
// กำหนดสี SlateBlue ในรหัส Hex
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);
// ระบุสีเติมสำหรับคำอธิบาย
annotation.setFillColor(color);
// วันที่และเวลาที่คำอธิบายได้รับการแก้ไขครั้งล่าสุด
annotation.setModified("05/21/2021 12:00:00.000 AM");
// ตั้งค่าอาร์เรย์ของตัวเลข 8xN โดยระบุพิกัด
// ของพื้นที่เนื้อหาที่ตั้งใจจะลบออก
annotation.setQuadPoint(points);
// สร้างรายการวัตถุประเภท RedactAnnotation
List<RedactionAnnotation> annotations = new ArrayList<>();
// เพิ่มวัตถุ Annotations ที่สร้างไว้ก่อนหน้านี้ลงในอาร์เรย์ RedactAnnotation
annotations.add(annotation);
// เพิ่ม RedactAnnotation ลงในเอกสาร PDF
AsposeResponse response = pdfApi.postPageRedactionAnnotations(sourcePDF, pageNumber, annotations, null, null, true);
assertEquals(200, (int)response.getCode());

รูปภาพ 1:- เพิ่มคำอธิบายแก้ไขลงในไฟล์ PDF
ดาวน์โหลดไฟล์ตัวอย่างที่ใช้ในตัวอย่างข้างต้นได้จาก
อ่านคำอธิบายการแก้ไขหน้า
Aspose.PDF Cloud SDK สำหรับ Java ยังให้ความสามารถในการอ่านข้อมูลเกี่ยวกับคำอธิบายประกอบ Redact ที่มีอยู่ในเอกสาร PDF ขั้นตอนด้านล่างนี้จะอธิบายวิธีอ่านรายละเอียดคำอธิบายประกอบโดยใช้ Java
// รับ ClientID และ ClientSecret จาก https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
// สร้างอินสแตนซ์ PdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// อินพุตเอกสาร PDF
String sourcePDF = "PdfWithTable.pdf";
// รับคำอธิบายการแก้ไขเอกสาร
RedactionAnnotationsResponse responseAnnotations = pdfApi.getPageRedactionAnnotations(sourcePDF,1, null, null);
assertEquals(200, (int)responseAnnotations.getCode());
// พิมพ์จำนวนคำอธิบายประกอบที่มีอยู่ในเอกสาร
System.out.println(responseAnnotations.getAnnotations().getList().size());
อัปเดตคำอธิบายการแก้ไขที่มีอยู่
หากเอกสาร PDF มีคำอธิบายประกอบการแก้ไขอยู่แล้ว เราสามารถอัปเดตโดยใช้ API ได้เช่นกัน ด้านล่างนี้คือรายละเอียดเกี่ยวกับวิธีอัปเดตคำอธิบายประกอบที่มีอยู่ในเอกสาร PDF
- สร้างอินสแตนซ์ของ PdfApi ในขณะส่งรายละเอียด ID ไคลเอนต์และความลับไคลเอนต์เป็นอาร์กิวเมนต์
- สร้างวัตถุสี่เหลี่ยมผืนผ้าเพื่อกำหนดขอบเขตของคำอธิบายประกอบ โดยคำนวณจากมุมซ้ายล่างของเอกสาร และหน่วยเริ่มต้นคือจุด
- สร้างรายการ AnnotationFlags และเพิ่มค่า AnnotationFlags.DEFAULT ลงในรายการ
- ตอนนี้เราต้องสร้างอ็อบเจ็กต์ RedactionAnnotation และเรียกใช้เมธอด setRect(…) เพื่อกำหนดพื้นที่สี่เหลี่ยมของคำอธิบายประกอบ
- ใช้เมธอด setModified(…) เพื่อตั้งค่าวันที่แก้ไขล่าสุดของ Annotation
- เรียกใช้เมธอด getDocumentRedactionAnnotations(…) ของ PdfApi เพื่ออ่านรายการคำอธิบายประกอบจากเอกสาร
- รับวัตถุ Annotation เฉพาะโดยใช้ responseAnnotations.getAnnotations().getList().get(0).getId()
- ในที่สุด ให้เรียกใช้เมธอด putRedactionAnnotation(…) ของคลาส PdfApi เพื่ออัปเดต Redaction Annotation ที่มีอยู่ในไฟล์ PDF
// รับ ClientID และ ClientSecret จาก https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
// สร้างอินสแตนซ์ PdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// อินพุตเอกสาร PDF
String sourcePDF = "PdfWithAnnotations.pdf";
// สร้างพื้นที่สี่เหลี่ยมผืนผ้าสำหรับคำอธิบายประกอบ
Rectangle rect = new Rectangle()
.LLX(200.)
.LLY(120.)
.URX(150.)
.URY(100.);
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);
List<Point> points = new ArrayList<>();
points.add(new Point().X(10.).Y(40.));
points.add(new Point().X(30.).Y(40.));
// สร้างวัตถุ Redaction Annotation
RedactionAnnotation annotation = new RedactionAnnotation();
// ตั้งชื่อสำหรับคำอธิบายประกอบ
annotation.setName("Name Updated");
// กำหนดพื้นที่สี่เหลี่ยมสำหรับคำอธิบายประกอบ
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.setZindex(1);
annotation.setModified("01/01/2018 12:02:03.000 AM");
annotation.setQuadPoint(points);
// กำหนดสี SlateBlue ในรหัส Hex
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);
// ระบุสีเติมสำหรับคำอธิบาย
annotation.setFillColor(color);
// รับคำอธิบายที่มีอยู่จากเอกสาร
RedactionAnnotationsResponse responseAnnotations = pdfApi.getDocumentRedactionAnnotations(sourcePDF, null, null);
assertEquals(200, (int)responseAnnotations.getCode());
// รับคำอธิบายประกอบที่ดัชนี 0
String annotationId = responseAnnotations.getAnnotations().getList().get(0).getId();
// อัปเดตคำอธิบายที่ดัชนี 0
AsposeResponse response = pdfApi.putRedactionAnnotation(sourcePDF, annotationId, annotation, null, null, true);
assertEquals(200, (int)response.getCode());

รูปภาพ 2:- อัปเดตคำอธิบายแก้ไข
ไฟล์ทรัพยากรที่ใช้ในตัวอย่างข้างต้นสามารถดาวน์โหลดได้จากลิงค์ต่อไปนี้
บทสรุป
ในบทความนี้ เราได้กล่าวถึงขั้นตอนในการแก้ไขข้อมูลที่ละเอียดอ่อนจากเอกสาร PDF นอกเหนือจากการใส่คำอธิบายประกอบแล้ว API ยังรองรับฟีเจอร์การใส่คำอธิบายประกอบอื่นๆ อีกมากมาย ซึ่งสามารถดูรายละเอียดได้ที่ การทำงานกับคำอธิบายประกอบ คุณสามารถเยี่ยมชม หน้าแรกของผลิตภัณฑ์ เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับความสามารถของฟีเจอร์เหล่านี้ได้ หากคุณมีข้อสงสัยใดๆ โปรดติดต่อผ่าน ฟอรัมสนับสนุนผลิตภัณฑ์ฟรี