เมตาดาต้าและยูทิลิตี้
เมตาดาต้าและยูทิลิตี้
Aspose.PDF FOSS for .NET มีคลาสยูทิลิตี้สำหรับการเข้าถึงเมตาดาต้า, เรขาคณิตพิกัด, คอลเลกชันภาพ, และอาร์ติแฟกต์ระดับหน้า. คลาสเหล่านี้ เป็นบล็อกสร้างที่สนับสนุนการดำเนินการระดับสูงตลอดไลบรารี.
เมตาดาต้า XMP
Metadata บนเอกสารให้การเข้าถึงสตรีมเมตาดาต้า XMP. อ่านและ
เขียนคุณสมบัติ XMP มาตรฐานหรือแบบกำหนดเอง.
using var doc = Document.Open(pdfBytes);
// Read existing metadata
foreach (var entry in doc.Metadata)
{
Console.WriteLine($"{entry.Key}: {entry.Value}");
}
// Set a custom property
doc.Metadata.Add("xmp:CustomProp", new XmpValue("custom value"));
doc.Save("with-metadata.pdf");เรขาคณิตเชิงพิกัด
Rectangle และ Matrix ถูกใช้ทั่วทั้ง API สำหรับการกำหนดตำแหน่งและการแปลงรูป
var rect = new Rectangle(72, 700, 300, 720);
bool inside = rect.ContainsPoint(150, 710);
// Transformation matrix (translate by 100, 200)
var matrix = new Matrix(1, 0, 0, 1, 100, 200);การดำเนินการกับคอลเลกชันหน้า
PageCollection รองรับการทำดัชนี การวนซ้ำ และการยอมรับแบบ visitor-pattern.
using var doc = Document.Open(pdfBytes);
for (int i = 1; i <= doc.Pages.Count; i++)
{
var page = doc.Pages[i];
}คอลเลกชันภาพ
XImageCollection จัดการกับภาพที่ฝังอยู่ในทรัพยากรของหน้า. XImage ให้วิธีการสำหรับตรวจสอบคุณสมบัติของภาพ.
var images = doc.Pages[1].Resources.Images;
foreach (var img in images)
{
Console.WriteLine($"Color type: {img.GetColorType()}");
}อาร์ติแฟกต์
Artifact แสดงถึงองค์ประกอบที่ไม่ใช่เนื้อหา เช่น ลายน้ำ, ส่วนหัว, และส่วนท้าย. ใช้ artifacts สำหรับการจัดหมายเลขหน้าและองค์ประกอบตกแต่ง.
var artifact = new Artifact(ArtifactType.Watermark);
artifact.SetPageNumberReplacementString("Page {0}");เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
- คีย์เมตาดาต้า XMP ปฏิบัติตามสเปคของ Dublin Core และ XMP — ใช้คำนำหน้าชื่อเนมสเปซมาตรฐาน.
Rectangleพิกัดอยู่ในหน่วยพื้นที่ผู้ใช้ของ PDF (1/72 นิ้ว) โดยจุดกำเนิดที่มุมล่างซ้าย.- ใช้
Matrixสำหรับการแปลงเชิง affine: การแปล, การหมุน, การปรับขนาด, และการบิด. XmpValueรองรับประเภท string, integer, double, date, และ array.- Artifact เป็นองค์ประกอบเชิงโครงสร้าง — ไม่ปรากฏในการเดินทางของต้นไม้การเข้าถึง.
ปัญหาทั่วไป
| Issue | Cause | Fix |
|---|---|---|
| ไม่พบคีย์เมตาดาต้า | คีย์ใช้คำนำหน้าชื่อเนมสเปซที่แตกต่าง | แสดงรายการคีย์ทั้งหมดก่อนเพื่อค้นหาคำนำหน้าที่ถูกต้อง |
| พิกัดสี่เหลี่ยมดูเหมือนถูกสลับ | จุดกำเนิดของ PDF อยู่ที่มุมล่างซ้าย ไม่ใช่มุมบนซ้าย | ปรับพิกัด Y ตามนั้น |
| คอลเลกชันภาพว่างเปล่า | ภาพอยู่ในรูปแบบ XObjects ไม่ได้เป็นทรัพยากรหน้าโดยตรง | ตรวจสอบ XFormCollection สำหรับทรัพยากรภาพที่ซ้อนกัน |
คำถามที่พบบ่อย
ฉันจะอ่านชื่อเอกสารจากเมตาดาต้าได้อย่างไร?
เข้าถึง doc.Metadata["dc:title"] สำหรับคุณสมบัติ title ของ Dublin Core.
ฉันสามารถเพิ่มวัตถุลายน้ำได้หรือไม่?
ใช่. สร้าง Artifact ที่มีประเภท Watermark และเพิ่มลงในหน้า.
Rectangle ใช้ระบบพิกัดอะไร?
PDF user-space: จุดกำเนิดที่มุมล่างซ้าย, หน่วยเป็น 1/72 นิ้ว. หน้ากระดาษ US Letter มาตรฐาน มีขนาด 612 x 792 หน่วย.
สรุปการอ้างอิง API
| Class / Method | Description |
|---|---|
Metadata | พจนานุกรมเมตาดาต้า XMP บนเอกสาร |
XmpValue | ตัวห่อแบบกำหนดประเภทสำหรับค่าคุณสมบัติ XMP |
Rectangle | กล่องขอบเขตที่จัดแนวตามแกน (llx, lly, urx, ury) |
Rectangle.ContainsPoint | ทดสอบว่าจุดอยู่ภายในสี่เหลี่ยมหรือไม่ |
Matrix | เมทริกซ์การแปลงเชิง affine 2 มิติ |
Matrix.Translate | สร้างเมทริกซ์การแปลงตำแหน่ง |
PageCollection | คอลเลกชันหน้าที่เรียงลำดับด้วยการจัดทำดัชนีเริ่มจาก 1 |
XImageCollection | ทรัพยากรภาพบนหน้า |
XImage | ภาพฝังเดียวที่ตรวจจับประเภทสี |
Artifact | องค์ประกอบหน้าแบบไม่ใช่เนื้อหา (ลายน้ำ, ส่วนหัว, ส่วนท้าย) |
Artifact.SetPageNumberReplacementString | เทมเพลตสำหรับศิลปวัตถุหมายเลขหน้า |