ทำงานกับลายน้ำ

ทำงานกับลายน้ำ

คู่มือนี้แสดงวิธีการเพิ่ม, ตั้งค่า, และลบลายน้ำเอกสารใน Aspose.Words FOSS สำหรับ .NET โดยใช้ Watermark คลาส, ที่เข้าถึงผ่าน Document.Watermark. ลายน้ำสามารถเป็นข้อความหรือรูปภาพ, และมีเพียงลายน้ำเดียวที่ใช้งานได้บนเอกสารในแต่ละครั้ง – การตั้งค่าลายน้ำใหม่จะทับสิ่งที่มีอยู่ก่อนหน้า.


การเพิ่มลายน้ำข้อความ

Watermark.SetText(text) เพิ่มลายน้ำข้อความด้วยการจัดรูปแบบเริ่มต้น. การโอเวอร์โหลด SetText(text, options) รับอินสแตนซ์ของ TextWatermarkOptions เพื่อควบคุมลักษณะของมัน: FontFamily, Color, และ FontSize ควบคุมการจัดรูปแบบข้อความ, IsSemitrasparent เปิด/ปิดเอฟเฟกต์กึ่งโปร่งใสที่เป็นลักษณะของลายน้ำ, และ Layout (ค่าประเภท WatermarkLayout – Horizontal หรือ Diagonal) ควบคุมการวางแนวของมันสัมพันธ์กับหน้า.


การเพิ่มลายน้ำภาพ

Watermark.SetImage(image) เพิ่มลายน้ำภาพจาก Image ที่โหลดไว้แล้ว. การโอเวอร์โหลดที่รับอินสแตนซ์ของ ImageWatermarkOptions ด้วย – SetImage(image, options), SetImage(imagePath, options) (โหลดจากพาธไฟล์), และ SetImage(imageStream, options) (โหลดจาก Stream) – ให้คุณควบคุม Scale (ตัวคูณสเกลของภาพ, แสดงเป็นส่วนเศษ) และ IsWashout (เอฟเฟกต์สีจางที่ทำให้ลายน้ำภาพไม่ลบหน้าเนื้อหา).


การตรวจสอบและลบลายน้ำ

Watermark.Type รายงานประเภทของลายน้ำปัจจุบันเป็นค่า WatermarkType – Text, Image หรือ None หากไม่มีการตั้งลายน้ำ เรียกใช้ Watermark.Remove() เพื่อลบลายน้ำปัจจุบันออกจากเอกสาร.


เคล็ดลับและแนวปฏิบัติที่ดีที่สุด

  • ตรวจสอบ Watermark.Type ก่อนสันนิษฐานว่ามีลายน้ำอยู่ – มันจะคืนค่า WatermarkType.None สำหรับเอกสารที่ไม่เคยตั้งลายน้ำมาก่อน.
  • การตั้งค่าลายน้ำใหม่ผ่าน SetText() หรือ SetImage() จะทับลายน้ำที่มีอยู่เดิม; ไม่สามารถมีลายน้ำที่ใช้งานได้มากกว่าหนึ่งรายการพร้อมกัน.
  • ใช้ WatermarkLayout.Diagonal เพื่อสร้างทิศทางลายน้ำแนวทะแยงตามค่าเริ่มต้นของ Word, หรือใช้ Horizontal สำหรับลายน้ำที่วิ่งขนานกับขอบหน้า.
  • ควรใช้ overload ของ ImageWatermarkOptions/TextWatermarkOptions แทนการเรียกแบบธรรมดา SetImage(image) / SetText(text) ทุกครั้งที่ต้องการควบคุมความโปร่งใส, ขนาด, หรือแบบอักษร – overload ที่ไม่มีพารามิเตอร์จะใช้ค่าเริ่มต้นของ Word.

ปัญหาทั่วไป

ปัญหาสาเหตุวิธีแก้
ลายน้ำใหม่ไม่แสดงพร้อมกับลายน้ำเก่าSetText()/SetImage() แทนที่ลายน้ำที่มีอยู่แทนที่จะเพิ่มลายน้ำที่สองเรียก Remove() ก่อนเฉพาะเมื่อคุณต้องการล้างลายน้ำก่อนตั้งค่าชนิดอื่น; หากไม่ใช่ การแทนที่จะทำโดยอัตโนมัติ
ลายน้ำรูปภาพทำให้เนื้อหาหน้าถูกบดบังImageWatermarkOptions.IsWashout ถูกปล่อยให้ปิดอยู่ตั้งค่า IsWashout เป็น true เมื่อสร้าง ImageWatermarkOptions
แบบอักษรของลายน้ำข้อความไม่ตรงกับแบบอักษรที่ต้องการTextWatermarkOptions.FontFamily ไม่ได้ตั้งค่า (หรือสะกดผิด)ตั้งค่า FontFamily เป็นชื่อแบบอักษรที่มีในสภาพแวดล้อมการเรนเดอร์

FAQ

ฉันจะตรวจสอบว่าเอกสารมีลายน้ำอยู่แล้วหรือไม่ได้อย่างไร?

อ่าน Document.Watermark.Type; จะคืนค่า WatermarkType.Text, WatermarkType.Image หรือ WatermarkType.None.

ฉันจะลบลายน้ำออกได้อย่างไร?

เรียก Document.Watermark.Remove().

ฉันสามารถควบคุมความโปร่งใสของลายน้ำได้หรือไม่?

ได้ – สำหรับลายน้ำข้อความ ให้ตั้งค่า TextWatermarkOptions.IsSemitrasparent; สำหรับลายน้ำรูปภาพ ให้ตั้งค่า ImageWatermarkOptions.IsWashout.

ฉันจะโหลดลายน้ำรูปภาพจากดิสก์แทนการใช้ Image ในหน่วยความจำได้อย่างไร?

ใช้ overload Watermark.SetImage(imagePath, options), ส่งพาธไฟล์เป็นสตริงพร้อมกับอินสแตนซ์ ImageWatermarkOptions.


API Reference สรุป

คลาส / Enumคำอธิบาย
Watermarkลายน้ำเอกสาร, ผ่าน Document.Watermark; SetText(), SetImage(), Remove(), Type
WatermarkTypeEnum ที่ระบุประเภทลายน้ำปัจจุบัน: Text, Image, None
WatermarkLayoutEnum สำหรับการวางแนวลายน้ำ: Horizontal, Diagonal
TextWatermarkOptionsการจัดรูปแบบลายน้ำข้อความ: FontFamily, Color, FontSize, IsSemitrasparent, Layout
ImageWatermarkOptionsตัวเลือกลายน้ำภาพ: Scale, IsWashout

ดูเพิ่มเติม

 ภาษาไทย