ทำงานกับลายน้ำ
ทำงานกับลายน้ำ
คู่มือนี้แสดงวิธีการเพิ่ม, ตั้งค่า, และลบลายน้ำเอกสารใน 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 |
WatermarkType | Enum ที่ระบุประเภทลายน้ำปัจจุบัน: Text, Image, None |
WatermarkLayout | Enum สำหรับการวางแนวลายน้ำ: Horizontal, Diagonal |
TextWatermarkOptions | การจัดรูปแบบลายน้ำข้อความ: FontFamily, Color, FontSize, IsSemitrasparent, Layout |
ImageWatermarkOptions | ตัวเลือกลายน้ำภาพ: Scale, IsWashout |