
ลายน้ำคือข้อความหรือรูปภาพที่ปรากฏอยู่ด้านหน้าหรือด้านหลังเนื้อหาเอกสารที่มีอยู่ เช่น แสตมป์ ตัวอย่างเช่น คุณสามารถใช้ลายน้ำ “ข้อมูลลับ” กับหน้าที่มีข้อมูลละเอียดอ่อนได้ ลายน้ำสามารถใช้ปกป้องข้อมูลลับและระบุความถูกต้องของเอกสารทางกฎหมายได้ นอกจากนี้ คุณยังสามารถใส่ลายน้ำบนธนบัตรชนิดใดก็ได้เพื่อป้องกันการปลอมแปลง ในบทความนี้ เราจะมาพูดถึงคุณลักษณะที่เกี่ยวข้องกับลายน้ำในเอกสาร PDF
- การจัดการ PDF REST API
- เพิ่มลายน้ำข้อความใน PDF โดยใช้ REST API
- วิธีการเพิ่มลายน้ำภาพใน PDF โดยใช้ Java
- เพิ่มหน้า PDF เป็นตราประทับลายน้ำ
- เพิ่มหมายเลขหน้าเป็นลายน้ำ
การจัดการ PDF REST API
Aspose.PDF Cloud เป็น REST API ที่ได้รับรางวัลของเรา ซึ่งมอบความสามารถในการสร้าง จัดการ และเรนเดอร์ไฟล์ PDF เป็นรูปแบบอื่นที่รองรับ เช่น DOCX, PPTX, XLSX, XPS, SVG, JPEG เป็นต้น ตอนนี้เรามาพูดถึง Aspose.PDF Cloud SDK for Java ซึ่งเป็น Java wrapper ที่ใช้ Aspose.PDF Cloud API โดยมีคุณสมบัติทั้งหมดของ Cloud REST API รวมถึงความสามารถในการเพิ่มลายน้ำลงใน PDF โดยใช้ภาษาการเขียนโปรแกรม Java
หากต้องการใช้ Java Cloud SDK ขั้นตอนแรกคือการติดตั้ง Aspose.PDF Cloud SDK for Java คุณสามารถดาวน์โหลด Cloud SDK ได้จาก Maven | GitHub ด้านล่างนี้คือรายละเอียดเกี่ยวกับวิธีดาวน์โหลดและใช้ Aspose.Pdf.jar ในโปรเจ็กต์ Maven build
เพิ่มการอ้างอิงต่อไปนี้ในไฟล์ pom.xml ของคุณ
<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>
เพิ่มลายน้ำข้อความใน PDF โดยใช้ REST API
หากต้องการใช้ Cloud API คุณต้องลงทะเบียนบัญชีบน แดชบอร์ด Aspose.Cloud ก่อน ซึ่งคุณจะเห็นรหัสไคลเอนต์ส่วนบุคคลและรายละเอียดความลับของไคลเอนต์ ซึ่งเป็นสิ่งสำคัญในการเข้าถึง API ด้านล่างนี้คือรายละเอียดเกี่ยวกับวิธีการเพิ่มลายน้ำข้อความลงในเอกสาร PDF ที่มีอยู่โดยใช้ Java
- ขั้นแรก คุณต้องระบุรายละเอียด ID ไคลเอนต์และความลับไคลเอนต์กับตัวแปรสองตัว
- ประการที่สอง สร้างอ็อบเจ็กต์ของคลาส PdfApi โดยระบุ Client ID และ Client Secret เป็นอาร์กิวเมนต์
- ประการที่สาม สร้างอ็อบเจ็กต์ของคลาส TextState โดยระบุชื่อฟอนต์เป็น Arial และขนาดฟอนต์เป็น 14
- ตอนนี้เราต้องสร้างอินสแตนซ์ของคลาส TextStamp ขณะใช้อ็อบเจ็กต์นี้ เราจะระบุค่าของแสตมป์ Text ขนาดฟอนต์ และรายละเอียดประเภทฟอนต์โดยใช้เมธอด textState(..) โดยที่อ็อบเจ็กต์ TextState ที่สร้างในขั้นตอนข้างต้นจะถูกส่งเป็นอาร์กิวเมนต์ รายละเอียดระยะขอบและ VerticalAlignment ยังระบุเป็น Center อีกด้วย
- เพื่อแสดง TextStamp ในพื้นหลัง จะใช้เมธอด background(..) พร้อมอาร์กิวเมนต์ว่าเป็นจริง
- นอกจากนี้ ยังระบุความทึบ มุมหมุน ปัจจัยการซูม และการเยื้อง XY ให้กับแสตมป์ด้วย
- ตอนนี้ให้สร้างอ็อบเจ็กต์ของคลาส List โดยมีชนิด TextStamp และเพิ่มอ็อบเจ็กต์แสตมป์ที่สร้างไว้ข้างต้นลงในรายการนี้
- ในที่สุด เรียกใช้เมธอด postPageTextStamps(..) ของ PdfAPi และส่งอินพุต PDF หมายเลขหน้า และรายการแสตมป์เป็นอาร์กิวเมนต์เพื่อเริ่มกระบวนการแสตมป์
// สำหรับตัวอย่างแบบสมบูรณ์และซอร์สโค้ด โปรดไปที่ https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// รับ ClientID และ ClientSecret จาก https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
String sourceFileName = "PdfWithTable.pdf";
int pageNumber = 1;
String cloudStorage = "";
String folder = "";
// สร้างอินสแตนซ์ของ PdfApi โดยใช้รหัสไคลเอนต์และรายละเอียดความลับไคลเอนต์
com.aspose.asposecloudpdf.api.PdfApi pdfApi = new com.aspose.asposecloudpdf.api.PdfApi(clientSecret,clientId);
// สร้างวัตถุของ TextState และระบุรายละเอียดการจัดรูปแบบแบบอักษร
com.aspose.asposecloudpdf.model.TextState textState = new com.aspose.asposecloudpdf.model.TextState().fontSize(24.).font("Arial");
com.aspose.asposecloudpdf.model.TextStamp stamp = new com.aspose.asposecloudpdf.model.TextStamp()
.textAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
.value("Text Stamp")
.textState(textState)
.leftMargin(1.)
.rightMargin(2.)
.topMargin(3.)
.bottomMargin(4.)
.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.CENTER);
stamp.background(true)
.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
.opacity(1.)
.rotate(com.aspose.asposecloudpdf.model.Rotation.ON90)
.rotateAngle(45.)
.xindent(0.)
.yindent(0.)
.zoom(1.);
// สร้างวัตถุรายการด้วยชนิด TextStamp
List<com.aspose.asposecloudpdf.model.TextStamp> stamps = new ArrayList<>();
// เพิ่มอินสแตนซ์ TextStamp ลงในรายการ TextStamps
stamps.add(stamp);
// เรียกใช้วิธีการ postTextStamp ไปที่หน้าแรกของไฟล์ PDF
com.aspose.asposecloudpdf.model.AsposeResponse response = pdfApi.postPageTextStamps(sourceFileName, pageNumber, stamps,cloudStorage, folder);

รูปภาพ 1:- เพิ่มตราประทับข้อความลงในเอกสาร PDF
ไฟล์ตัวอย่างที่ใช้ในตัวอย่างข้างต้นสามารถดาวน์โหลดได้จากลิงค์ต่อไปนี้:
วิธีการเพิ่มลายน้ำภาพใน PDF โดยใช้ Java
ด้วยบรรทัดโค้ดที่น้อยกว่า คุณสามารถเพิ่มลายน้ำรูปภาพลงในเอกสาร PDF ได้อย่างง่ายดาย ด้านล่างนี้เป็นขั้นตอนในการเพิ่มรูปภาพ JPEG ลงในไฟล์ PDF
- ขั้นตอนแรกคือการสร้างอ็อบเจ็กต์ PdfApi โดยส่ง ClientSecret และ ClientID เป็นอาร์กิวเมนต์
- ขั้นตอนต่อไปคือการสร้างอ็อบเจ็กต์ ImageStamp โดยเราจะกำหนดไฟล์รูปภาพที่จะประทับ รายละเอียดของระยะขอบ และ VerticalAlignment ในกรณีของเรา เราได้เลือกค่า Center จากการระบุ VerticalAlignment
- ตั้งค่า ImageStamp.background(True) เพื่อให้รูปภาพปรากฏอยู่ด้านหลังเนื้อหาในหน้า มิฉะนั้น รูปภาพจะปรากฏอยู่ด้านบนของเนื้อหาในหน้า
- สร้างวัตถุรายการประเภท ImageStamp และเพิ่มวัตถุ ImageStamp ที่ถูกสร้างในขั้นตอนที่สองลงในคอลเลกชันนี้
- ในที่สุด เรียกใช้เมธอด postPageImageStamps(…) ของคลาส PdfApi โดยที่เราส่ง PDF อินพุต หมายเลขหน้าสำหรับลายน้ำ และรายการ ImageStamp ที่สร้างไว้ด้านบนเป็นอาร์กิวเมนต์
- ไฟล์ PDF ที่มีลายน้ำภาพจะถูกบันทึกไว้ในที่เก็บข้อมูลบนคลาวด์เดียวกัน ภาพตัวอย่างของไฟล์ที่ได้จะแสดงด้านล่าง
// สำหรับตัวอย่างแบบสมบูรณ์และซอร์สโค้ด โปรดไปที่ https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// รับ ClientID และ ClientSecret จาก https://dashboard.aspose.cloud/
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";
// สร้างอินสแตนซ์ของ PdfApii
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// อินพุตเอกสาร PDF
String file = "PdfWithTable.pdf";
// ภาพต้นฉบับที่จะใช้เป็นลายน้ำ
String image = "Koala.jpg";
// หมายเลขหน้าที่จะเพิ่มลายน้ำ
int pageNumber = 1;
// สร้างอินสแตนซ์ของวัตถุ ImageStamp
ImageStamp stampObject = new ImageStamp()
.fileName(image)
.leftMargin(1.)
.rightMargin(2.)
.topMargin(3.)
.bottomMargin(214.)
.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.CENTER);
// เพิ่มลายน้ำด้านหลังเนื้อหาหน้า
stampObject.background(true)
.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
.opacity(1.)
.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
.rotateAngle(0.)
.xindent(0.)
.yindent(0.)
.zoom(0.2);
// สร้างรายการของวัตถุ ImageStamp
List<com.aspose.asposecloudpdf.model.ImageStamp> stamps = new ArrayList<>();
// เพิ่ม ImageStamp ลงในรายการ ImageStamps
stamps.add(stampObject);
// เรียกใช้วิธี API เพื่อเพิ่มภาพลายน้ำลงใน PDF
AsposeResponse response = pdfApi.postPageImageStamps(file, pageNumber, stamps,null, null);

ภาพที่ 2: - เพิ่มตราประทับภาพลงในเอกสาร PDF
ไฟล์ตัวอย่างที่ใช้ในตัวอย่างข้างต้นสามารถดาวน์โหลดได้จากลิงก์ต่อไปนี้
เพิ่มหน้า PDF เป็นตราประทับลายน้ำ
นอกจากข้อความและรูปภาพแล้ว หน้า PDF ยังสามารถเพิ่มเป็นลายน้ำในเอกสาร PDF ที่มีอยู่ได้อีกด้วย ด้านล่างนี้เป็นขั้นตอนในการปฏิบัติตามข้อกำหนดเหล่านี้
- ก่อนอื่น ให้สร้างอ็อบเจ็กต์ของคลาส PdfApi โดยส่ง Client ID และ Client Secret เป็นอาร์กิวเมนต์
- ประการที่สอง ให้สร้างอินสแตนซ์ของคลาส PdfPageStamp คลาสนี้ใช้เพื่อระบุเส้นทางของเอกสาร PDF และจะใช้สำหรับลายน้ำ
- ใช้วิธี PdfPageStamp.pageIndex(..) เพื่อระบุหมายเลขหน้าของไฟล์ PDF ที่จะใช้เป็นลายน้ำ
- ในบรรดาวิธีอื่นๆ พื้นหลัง(..) ถือเป็นสิ่งสำคัญ เนื่องจากใช้ในการตั้งค่าลายน้ำด้านหลังเนื้อหา PDF หรือวางไว้เหนือเนื้อหา
- จากนั้นสร้างรายการประเภท PdfPageStamp และเพิ่มวัตถุ PdfPageStamp ที่สร้างขึ้นข้างต้นลงในคอลเลกชันรายการ
- สุดท้าย ให้เรียกใช้เมธอด postPagePdfPageStamps(…) ของคลาส PdfApi โดยเราส่งไฟล์ PDF ต้นฉบับ ดัชนีหน้าที่จะใส่ลายน้ำ และรายการของ PdfPageStamp เป็นอาร์กิวเมนต์ ผลลัพธ์ที่ได้จะถูกบันทึกไว้ในที่เก็บข้อมูลบนคลาวด์
// สำหรับตัวอย่างแบบสมบูรณ์และซอร์สโค้ด โปรดไปที่ https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// รับ ClientID และ ClientSecret จาก https://cloud.aspose.com
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";
// สร้างอินสแตนซ์ PdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// อินพุตเอกสาร PDF
String sourcePDF = "PdfWithAnnotations.pdf";
// แหล่งที่มา PDF ที่จะใช้สำหรับลายน้ำ
String stampPDF = "rusdoc.pdf";
// หมายเลขหน้าที่จะเพิ่มลายน้ำ
int pageNumber = 1;
// สร้างอินสแตนซ์ของวัตถุ PdfPageStamp
PdfPageStamp stampObject = new PdfPageStamp()
// ไฟล์ PDF ที่จะใช้เป็นลายน้ำ
.fileName(stampPDF)
// ระบุดัชนีหน้าที่คุณต้องการเพิ่มเป็นลายน้ำ
.pageIndex(1)
.leftMargin(150.)
.rightMargin(2.)
// เราได้ตั้งค่าระยะขอบบนเป็น -ve เพื่อเลื่อนลายน้ำขึ้นใน PDF
.topMargin(-330.)
.bottomMargin(414.)
// ตั้งค่าการจัดแนวแนวตั้งของลายน้ำเป็นด้านบน
.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.TOP);
// นำลายน้ำมาไว้ด้านหน้า/มองเห็นได้
stampObject.background(false)
.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
.opacity(1.)
.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
.rotateAngle(0.)
.xindent(0.)
.yindent(0.)
// ตั้งค่าปัจจัยการซูมเป็น 0.7 เพื่อให้บีบให้ปรากฏเป็น 100%
.zoom(0.7);
// สร้างรายการของวัตถุ PdfPageStamp
List<com.aspose.asposecloudpdf.model.PdfPageStamp> stamps = new ArrayList<>();
// เพิ่ม PdfPageStamp ลงในรายการ ImageStamps
stamps.add(stampObject);
// เรียกใช้วิธี API เพื่อเพิ่ม PDF เป็นลายน้ำ
AsposeResponse response = pdfApi.postPagePdfPageStamps(sourcePDF, pageNumber, stamps,null, null);

ภาพที่ 3:- เพิ่มภาพตัวอย่างไฟล์ PDF เป็นลายน้ำ
ไฟล์ตัวอย่างที่ใช้ในตัวอย่างข้างต้นสามารถดาวน์โหลดได้จากลิงค์ต่อไปนี้
เพิ่มหมายเลขหน้าเป็นลายน้ำ
รายละเอียดหมายเลขหน้ามีความสำคัญมากจากมุมมองการใช้งาน เพราะช่วยให้ผู้อ่านทราบได้ชัดเจนถึงความยาวของเอกสาร ตลอดจนหน้าที่ผู้อ่านกำลังอ่านอยู่
- เมื่อเราสร้างอินสแตนซ์ PdfApi แล้ว ให้สร้างอ็อบเจ็กต์ของคลาส PageNumberStamp
- ใช้ค่าวิธี value(…) ของคลาส PageNumberStamp เพื่อระบุรูปแบบให้กับสแตมป์ PageNumber
- อีกวิธีที่สำคัญคือ setStartingNumber(..) ซึ่งระบุการนับจุดเริ่มต้นของลายน้ำหมายเลขหน้า
- ส่วนโค้ดอื่นๆ เช่น รายละเอียดระยะขอบ ความทึบ มุมหมุน ปัจจัยความทึบ ฯลฯ จะเหมือนกับตัวอย่างโค้ดด้านบน
- เราจำเป็นต้องระบุ startPageNumber และ endPageNumber ที่จะวางลายน้ำ Page Number
- ในที่สุด เรียก postDocumentPageNumberStamps(…) ซึ่งรับไฟล์ PDF อินพุต, อ็อบเจ็กต์ PageNumberStamp, ข้อมูลหน้าเริ่มต้นและหน้าสิ้นสุดเป็นอาร์กิวเมนต์ และผนวกลายน้ำหมายเลขหน้าในไฟล์ต้นฉบับ
// สำหรับตัวอย่างแบบสมบูรณ์และซอร์สโค้ด โปรดไปที่ https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java
// รับ ClientID และ ClientSecret จาก https://dashboard.aspose.cloud/
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// อินพุตเอกสาร PDF
String sourcePDF = "PdfWithTable.pdf";
// สร้างอินสแตนซ์ของวัตถุ PdfPageStamp
PageNumberStamp stampObject = new PageNumberStamp()
// รูปแบบลายน้ำหมายเลขหน้า
.value("Page #")
.leftMargin(1.)
.rightMargin(2.)
.topMargin(3.)
.bottomMargin(4.)
// ตั้งค่าการจัดแนวแนวตั้งของลายน้ำเป็นด้านล่าง
.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.BOTTOM);
// ระบุหมายเลขเริ่มต้นสำหรับเคาน์เตอร์
stampObject.setStartingNumber(3);
// นำลายน้ำมาไว้ด้านหน้า/มองเห็นได้
stampObject.background(false)
.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
.opacity(1.)
.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
.rotateAngle(0.)
.xindent(0.)
.yindent(0.)
.zoom(1.0);
// หน้าเริ่มต้นแบบฟอร์มที่จะใส่ลายน้ำ
int startPageNumber = 2;
// ดัชนีหน้าที่จะวางลายน้ำ
int endPageNumber = 3;
// เรียกใช้วิธี API เพื่อเพิ่ม PDF เป็นลายน้ำ
AsposeResponse response = pdfApi.postDocumentPageNumberStamps(sourcePDF, stampObject,startPageNumber, endPageNumber, null, null);

ภาพที่ 4:- ดูตัวอย่างหมายเลขหน้าเป็นลายน้ำในรูปแบบ PDF
ไฟล์ตัวอย่างที่ใช้ในตัวอย่างข้างต้นสามารถดาวน์โหลดได้จากลิงค์ต่อไปนี้:
เคล็ดลับด่วน
Aspose.PDF Cloud SDK สำหรับ Java มีประสิทธิภาพมากถึงขนาดที่เพียงแค่เขียนโค้ดไม่กี่บรรทัด คุณก็สามารถแปลงไฟล์ JPEG, EPUB, LaTeX, HTML, PS, XSLFo, XPS, SVG, DOCX, PCL เป็นรูปแบบ PDF ได้ สำหรับข้อมูลเพิ่มเติม โปรดไปที่ หน้าผลิตภัณฑ์
บทสรุป
ในโพสต์บล็อกนี้ เราได้เรียนรู้เกี่ยวกับขั้นตอนต่างๆ เกี่ยวกับวิธีการเพิ่มข้อมูลข้อความ รูปภาพ PDF และหมายเลขหน้าลงในเอกสาร PDF ที่มีอยู่ได้อย่างง่ายดายโดยใช้ Aspose.PDF Cloud SDK for Java โปรดทราบว่า Cloud SDK ของเราเป็นโอเพ่นซอร์ส และคุณยังสามารถดาวน์โหลดซอร์สโค้ดฉบับสมบูรณ์และปรับเปลี่ยนได้ตามความต้องการของคุณ สามารถดาวน์โหลดซอร์สโค้ดฉบับสมบูรณ์ได้จากที่เก็บ GitHub หากคุณมีคำถามใดๆ ที่เกี่ยวข้อง โปรดติดต่อผ่าน ฟอรัมสนับสนุนฟรี