เพิ่มลายน้ำลงใน pdf ด้วย GroupDocs.Watermark สำหรับ Java

ในคู่มือนี้คุณจะได้เรียนรู้วิธี เพิ่มลายน้ำลงในไฟล์ pdf ด้วย GroupDocs.Watermark Java SDK เราจะอธิบายการโหลดเอกสารจากดิสก์, สตรีม, หรือแหล่งที่มีการป้องกันด้วยรหัสผ่าน, การใส่ลายน้ำแบบข้อความหรือภาพ, และสุดท้ายการบันทึก PDF ที่อัปเดต ไม่ว่าคุณจะสร้างตัวประมวลผลแบบแบตช์หรือบริการไฟล์เดี่ยว ขั้นตอนเหล่านี้ให้โซลูชันที่เชื่อถือได้และพร้อมใช้งานในสภาพแวดล้อมการผลิต

คำตอบอย่างรวดเร็ว

  • ฉันสามารถเพิ่มลายน้ำลงใน PDF ที่ป้องกันด้วยรหัสผ่านได้หรือไม่? ใช่ – ส่งรหัสผ่านเมื่อโหลดเอกสาร แล้วใส่ลายน้ำตามปกติ
  • ฟอร์แมตใดบ้างที่สามารถใส่ลายน้ำได้? มากกว่า 30 ฟอร์แมต รวมถึง PDF, DOCX, PPTX, และรูปภาพ
  • ต้องใช้ไลเซนส์สำหรับการพัฒนาหรือไม่? ไลเซนส์ชั่วคราวใช้สำหรับการทดสอบ; ไลเซนส์เต็มจำเป็นสำหรับการผลิต
  • ต้องใช้ Java เวอร์ชันใด? รองรับ Java 8 หรือสูงกว่า
  • รองรับการสตรีมหรือไม่? แน่นอน – คุณสามารถโหลดจาก InputStream และบันทึกไปยัง OutputStream โดยไม่ต้องสัมผัสระบบไฟล์

อะไรคือการเพิ่มลายน้ำลงใน pdf?

การเพิ่มลายน้ำลงใน pdf หมายถึงกระบวนการวางข้อความหรือภาพที่มีความโปร่งแสงบางส่วนบนแต่ละหน้าของเอกสาร PDF เพื่อแสดงความเป็นเจ้าของ, ความลับ, หรือการสร้างแบรนด์ GroupDocs.Watermark สำหรับ Java มี API แบบเรียกครั้งเดียวที่จัดการตำแหน่ง, ความทึบแสง, และการเลือกช่วงหน้าโดยอัตโนมัติ

ทำไมต้องใช้ GroupDocs.Watermark สำหรับ Java?

GroupDocs.Watermark รองรับ ไฟล์กว่า 35 ฟอร์แมต และสามารถประมวลผล PDF ขนาด 500 หน้าในเวลาน้อยกว่า 2 วินาที บนเซิร์ฟเวอร์คลาสทั่วไป ไลบรารีทำงานทั้งหมดในหน่วยความจำ จึงไม่ต้องติดตั้ง Microsoft Office หรือ Adobe Acrobat API ปลอดภัยต่อเธรด ทำให้เหมาะกับบริการเว็บที่ต้องประมวลผลจำนวนมาก

ข้อกำหนดเบื้องต้น

  • ติดตั้ง Java 8 หรือใหม่กว่า
  • โปรเจกต์ Maven หรือ Gradle ที่กำหนด dependency groupdocs-watermark
  • ไลเซนส์ GroupDocs.Watermark ที่ถูกต้อง (ไลเซนส์ชั่วคราวสำหรับการประเมิน)
  • ไฟล์ PDF ที่ต้องการปกป้อง, สามารถมีรหัสผ่านได้

วิธีเพิ่มลายน้ำลงใน pdf – ขั้นตอนโดยละเอียด

โหลดเอกสารต้นฉบับ, ใส่ลายน้ำ, แล้วบันทึกผลลัพธ์ ส่วนต่อไปนี้ตอบแต่ละงานย่อยโดยตรง

วิธีโหลดเอกสารจากดิสก์?

Watermarker เป็นคลาสหลักที่ใช้โหลดและจัดการเอกสารสำหรับการใส่ลายน้ำ ให้ระบุพาธไฟล์เต็มไปยังคอนสตรัคเตอร์ Watermarker; SDK จะตรวจจับฟอร์แมตไฟล์โดยอัตโนมัติ, ตรวจสอบเนื้อหา, และโหลดเอกสารเข้าสู่หน่วยความจำพร้อมสำหรับการทำงานใด ๆ วิธีนี้ทำงานกับ PDF, Word, รูปภาพ, และประเภทอื่น ๆ ที่รองรับ

Watermarker watermarker = new Watermarker("C:/files/input.pdf");

หลังจากบรรทัดนี้ PDF จะถูกโหลดเข้าสู่หน่วยความจำเต็มที่ พร้อมสำหรับการใส่ลายน้ำใด ๆ

วิธีโหลดเอกสารจากสตรีม?

Watermarker ยังรับ InputStream เพื่อโหลดเอกสารโดยตรงจากหน่วยความจำ เมื่อคุณรับไฟล์ผ่าน HTTP หรือคิวข้อความ ให้ห่ออาร์เรย์ไบต์ใน ByteArrayInputStream แล้วส่งให้คอนสตรัคเตอร์ Watermarker ที่รับ InputStream SDK จะอ่านสตรีมโดยไม่ต้องเขียนลงดิสก์, รักษาประสิทธิภาพและความปลอดภัย, และรองรับไฟล์ขนาดใหญ่โดยประมวลผลเป็นชั้น ๆ วิธีนี้เหมาะกับบริการเว็บและสถาปัตยกรรมไมโครเซอร์วิส

InputStream pdfStream = new ByteArrayInputStream(pdfBytes);
Watermarker watermarker = new Watermarker(pdfStream);

SDK จะอ่านสตรีมโดยไม่ต้องเขียนลงดิสก์, รักษาประสิทธิภาพและความปลอดภัย

วิธีโหลดเอกสารที่ป้องกันด้วยรหัสผ่าน?

Watermarker รองรับการโหลด PDF ที่ป้องกันด้วยรหัสผ่านโดยให้รหัสผ่านเป็นอาร์กิวเมนต์ที่สอง ส่งรหัสผ่านเป็นอาร์กิวเมนต์ที่สองของคอนสตรัคเตอร์ SDK จะถอดรหัส PDF ขณะทำงาน, หลังจากนั้นคุณสามารถจัดการเอกสารได้เหมือนเอกสารทั่วไป หากรหัสผ่านถูกต้อง ทุกหน้าเปิดให้ใส่ลายน้ำได้; หากไม่ถูกต้อง ไลบรารีจะโยนข้อยกเว้นที่ชัดเจนให้คุณจับและบันทึกเพื่อแก้ปัญหา

Watermarker watermarker = new Watermarker("C:/files/secure.pdf", "mySecretPwd");

หากรหัสผ่านไม่ถูกต้อง SDK จะโยนข้อยกเว้นที่ให้ข้อมูลที่คุณสามารถจับและบันทึกได้

วิธีใส่ลายน้ำแบบข้อความ?

TextWatermark แทนลายน้ำข้อความที่สามารถใส่ลงในหน้าได้พร้อมสไตล์ที่กำหนดเอง สร้างอ็อบเจกต์ TextWatermark ด้วยข้อความ, ฟอนต์, ขนาด, และสีที่ต้องการ แล้วเรียก add บนอินสแตนซ์ Watermarker, สามารถระบุช่วงหน้าได้ ลายน้ำจะถูกเรนเดอร์ด้วยความทึบแสงและการหมุนที่กำหนด, และสามารถกำหนดตำแหน่งโดยใช้ตำแหน่งที่กำหนดไว้ล่วงหน้าหรือพิกัดที่กำหนดเอง เพื่อให้แสดงผลสม่ำเสมอบนทุกหน้า

TextWatermark watermark = new TextWatermark("Confidential", new Font("Arial", 36));
watermark.setColor(Color.RED);
watermark.setTransparency(0.5);
watermarker.add(watermark);

การเรียกนี้จะใส่ลายน้ำบนทุกหน้าโดยค่าเริ่มต้น; หากต้องการจำกัดให้ใช้ new PageRange(1, 5) ตามต้องการ

วิธีใส่ลายน้ำแบบภาพ?

ImageWatermark แทนลายน้ำรูปภาพ เช่น โลโก้หรือตราประทับ สร้าง ImageWatermark ด้วยพาธหรือสตรีมของโลโก้ของคุณ, แล้วเพิ่มเช่นเดียวกับลายน้ำข้อความ SDK จะปรับขนาดภาพให้พอดีกับหน้าโดยคงอัตราส่วน, คุณสามารถปรับความทึบแสง, การหมุน, และตำแหน่งเพื่อให้ได้ผลลัพธ์ตามต้องการโดยไม่ทำให้เนื้อหาต้นฉบับบิดเบี้ยว

ImageWatermark imgWatermark = new ImageWatermark("C:/images/logo.png");
imgWatermark.setTransparency(0.3);
watermarker.add(imgWatermark);

SDK จะปรับขนาดภาพให้พอดีกับหน้าโดยคงอัตราส่วน

วิธีบันทึกเอกสารที่มีลายน้ำ?

save เขียนเอกสารที่แก้ไขแล้วไปยังตำแหน่งที่ระบุในฟอร์แมตที่เลือก เรียก save พร้อมพาธเอาต์พุตและฟอร์แมตที่ต้องการ หากละเว้นพารามิเตอร์ฟอร์แมต ระบบจะใช้ฟอร์แมตเดียวกับแหล่งที่มาด้วย วิธีนี้จะเขียน PDF ที่แก้ไขแล้วลงดิสก์, รักษาเนื้อหาต้นฉบับทั้งหมดยกเว้นชั้นลายน้ำใหม่, และรองรับการบันทึกไปยังสตรีมสำหรับการประมวลผลต่อไป

watermarker.save("C:/files/output.pdf");

เมธอดนี้จะเขียน PDF ที่แก้ไขแล้วลงดิสก์, รักษาเนื้อหาต้นฉบับทั้งหมดยกเว้นชั้นลายน้ำใหม่

บทเรียนที่มี

วิธีโหลดเอกสารที่ป้องกันด้วยรหัสผ่านใน Java ด้วย GroupDocs.Watermark

เรียนรู้วิธีโหลดและจัดการลายน้ำในเอกสารที่ป้องกันด้วยรหัสผ่านโดยใช้ GroupDocs.Watermark สำหรับ Java คู่มือนี้ให้คำแนะนำทีละขั้นตอน, ตัวอย่างจริง, และเคล็ดลับการแก้ปัญหา

วิธีโหลดและใส่ลายน้ำเอกสาร Word ที่ป้องกันด้วยรหัสผ่านใน Java ด้วย GroupDocs.Watermark

เรียนรู้วิธีใช้ GroupDocs.Watermark กับ Java เพื่อโหลด, จัดการ, และใส่ลายน้ำเอกสาร Word ที่ป้องกันด้วยรหัสผ่านอย่างมีประสิทธิภาพ

แหล่งข้อมูลเพิ่มเติม

ปัญหาทั่วไปและวิธีแก้

  • ข้อผิดพลาดรหัสผ่านไม่ถูกต้อง – ตรวจสอบสตริงรหัสผ่านอีกครั้ง; ต้องเป็นการเข้ารหัส UTF‑8
  • Out‑of‑memory บน PDF ขนาดใหญ่ – เปิดโหมดสตรีมโดยใช้คอนสตรัคเตอร์ Watermarker ที่รับ InputStream และ OutputStream
  • ลายน้ำไม่ปรากฏ – ตรวจสอบให้แน่ใจว่าความทึบแสงของลายน้ำตั้งค่ามากกว่า 0.1 และสีมีความคอนทราสต์กับพื้นหลังหน้า

คำถามที่พบบ่อย

ถาม: ฉันสามารถเพิ่มลายน้ำหลายชั้นลงใน PDF เดียวได้หรือไม่?
ตอบ: ใช่. เรียก watermarker.add() หลายครั้งด้วยอ็อบเจกต์ TextWatermark หรือ ImageWatermark ต่าง ๆ; แต่ละอันจะถูกวางเป็นชั้นตามลำดับที่เพิ่ม

ถาม: ไลบรารีจะรักษา annotation ที่มีอยู่เดิมหรือไม่?
ตอบ: แน่นอน. วัตถุ PDF ทั้งหมดรวมถึง annotation, ฟิลด์ฟอร์ม, และเมทาดาต้าจะไม่ถูกแก้ไข เว้นแต่คุณจะทำการเปลี่ยนแปลงโดยเจตนา

ถาม: สามารถใส่ลายน้ำเฉพาะหน้าที่เลือกได้หรือไม่?
ตอบ: ได้. ส่ง PageRange (เช่น new PageRange(2, 4)) ไปยังเมธอด add เพื่อจำกัดลายน้ำให้กับหน้าที่ระบุ

ถาม: ขนาดไฟล์สูงสุดที่รองรับคือเท่าไหร่?
ตอบ: SDK สามารถจัดการไฟล์ขนาดสูงสุด 2 GB โดยไม่ต้องโหลดเอกสารทั้งหมดเข้าสู่หน่วยความจำ, ขอบคุณสถาปัตยกรรมสตรีมของมัน

ถาม: จะลบลายน้ำที่เพิ่มแล้วออกได้อย่างไร?
ตอบ: ใช้ watermarker.remove(watermarkId) โดยที่ watermarkId คือรหัสประจำตัวที่ได้จากการเพิ่มลายน้ำครั้งแรก


Last Updated: 2026-09-16
Tested with: GroupDocs.Watermark 23.9 for Java
Author: GroupDocs

บทเรียนที่เกี่ยวข้อง