เมตาดาต้าและยูทิลิตี้

เมตาดาต้าและยูทิลิตี้

เมตาดาต้าและยูทิลิตี้

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 เป็นองค์ประกอบเชิงโครงสร้าง — ไม่ปรากฏในการเดินทางของต้นไม้การเข้าถึง.

ปัญหาทั่วไป

IssueCauseFix
ไม่พบคีย์เมตาดาต้าคีย์ใช้คำนำหน้าชื่อเนมสเปซที่แตกต่างแสดงรายการคีย์ทั้งหมดก่อนเพื่อค้นหาคำนำหน้าที่ถูกต้อง
พิกัดสี่เหลี่ยมดูเหมือนถูกสลับจุดกำเนิดของ 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 / MethodDescription
Metadataพจนานุกรมเมตาดาต้า XMP บนเอกสาร
XmpValueตัวห่อแบบกำหนดประเภทสำหรับค่าคุณสมบัติ XMP
Rectangleกล่องขอบเขตที่จัดแนวตามแกน (llx, lly, urx, ury)
Rectangle.ContainsPointทดสอบว่าจุดอยู่ภายในสี่เหลี่ยมหรือไม่
Matrixเมทริกซ์การแปลงเชิง affine 2 มิติ
Matrix.Translateสร้างเมทริกซ์การแปลงตำแหน่ง
PageCollectionคอลเลกชันหน้าที่เรียงลำดับด้วยการจัดทำดัชนีเริ่มจาก 1
XImageCollectionทรัพยากรภาพบนหน้า
XImageภาพฝังเดียวที่ตรวจจับประเภทสี
Artifactองค์ประกอบหน้าแบบไม่ใช่เนื้อหา (ลายน้ำ, ส่วนหัว, ส่วนท้าย)
Artifact.SetPageNumberReplacementStringเทมเพลตสำหรับศิลปวัตถุหมายเลขหน้า

ดูเพิ่มเติม

 ภาษาไทย