متادیتا و ابزارها
متادیتا و ابزارها
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 از ایندکسگذاری، تکرار و پذیرش الگوی بازدیدکننده پشتیبانی میکند.
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 نمایانگر عناصر غیرمحتوا مانند واترمارکها، سرصفحهها و پاورقیها است. برای شمارهگذاری صفحات و عناصر تزئینی از آرتیفکتها استفاده کنید.
var artifact = new Artifact(ArtifactType.Watermark);
artifact.SetPageNumberReplacementString("Page {0}");نکات و بهترین شیوهها
- کلیدهای متادیتای XMP مطابق با مشخصات Dublin Core و XMP — از پیشوندهای فضای نام استاندارد استفاده کنید.
- مختصات
Rectangleدر واحدهای فضای کاربری PDF (1/72 اینچ) هستند، با مبدأ در پایین‑چپ. - برای تبدیلات افین از
Matrixاستفاده کنید: ترجمه، چرخش، مقیاسگذاری و برش. XmpValueاز انواع رشته، عدد صحیح، عدد اعشاری، تاریخ و آرایه پشتیبانی میکند.- Artefacts عناصر ساختاری هستند — در پیمایشهای درخت دسترسپذیری ظاهر نمیشوند.
مسائل رایج
| Issue | Cause | Fix |
|---|---|---|
| کلید متادیتا یافت نشد | کلید از پیشوند فضای نام متفاوتی استفاده میکند | ابتدا تمام کلیدها را فهرست کنید تا پیشوند صحیح را پیدا کنید |
| مختصات مستطیل به نظر وارونه میرسند | مبدا PDF در پایین‑چپ است، نه در بالا‑چپ | مختصات Y را متناسب تنظیم کنید |
| مجموعه تصویر خالی است | تصاویر به صورت XObjects هستند، نه بهصورت منابع مستقیم صفحه | XFormCollection را برای منابع تصویر تو در تو بررسی کنید |
سوالات متداول
چگونه میتوانم عنوان سند را از متادیتا بخوانم؟
دسترسی doc.Metadata["dc:title"] برای ویژگی عنوان Dublin Core.
آیا میتوانم یک اثر واترمارک اضافه کنم؟
بله. یک Artifact با نوع Watermark ایجاد کنید و آن را به صفحه اضافه کنید.
Rectangle از چه سیستم مختصاتی استفاده میکند؟
فضای کار PDF: مبدأ در پایین‑چپ، واحدها 1/72 اینچ. یک صفحه استاندارد US Letter دارای 612 × 792 واحد است.
خلاصه مرجع API
| Class / Method | Description |
|---|---|
Metadata | دایرکتوری متادیتای XMP در سند |
XmpValue | پوششگذار تایپشده برای مقادیر ویژگی XMP |
Rectangle | جعبه محدودکننده هممحور (llx, lly, urx, ury) |
Rectangle.ContainsPoint | آزمون اینکه آیا نقطهای داخل مستطیل قرار دارد یا خیر |
Matrix | ماتریس تبدیل افین دو‑بعدی |
Matrix.Translate | ایجاد ماتریس ترجمه |
PageCollection | مجموعه صفحههای مرتب با ایندکسگذاری مبتنی بر ۱ |
XImageCollection | منابع تصویر در یک صفحه |
XImage | تصویر تکتنه جاسازیشده با تشخیص نوع رنگ |
Artifact | عنصر غیرمحتوای صفحه (واترمارک، سرصفحه، پاورقی) |
Artifact.SetPageNumberReplacementString | قالب برای آثار شمارهصفحه |