مدیریت اسناد
مدیریت اسناد
Document ریشهٔ شی در Aspose.PDF FOSS برای .NET است. این یک
فایل PDF کامل را نمایندگی میکند و دسترسی به صفحات، متادیتا، فیلدهای فرم و تمام
ساختارهای دیگر PDF را فراهم میآورد. فایلهای موجود را با Document.Open باز کنید و فایلهای جدید را با سازندهٔ Document ایجاد کنید.
باز کردن و ایجاد اسناد
// Open from a byte array
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
// Open from a file path
using var doc2 = new Document("input.pdf");
// Create a new empty document
using var newDoc = new Document();
newDoc.Pages.Add();
newDoc.Save("new.pdf");کار با صفحات
PageCollection صفحات سند را مدیریت میکند. با استفاده از ایندکس ۱‑پایه به صفحات دسترسی پیدا کنید، صفحات جدید اضافه کنید یا صفحات موجود را حذف کنید.
using var doc = Document.Open(pdfBytes);
// Access first page
var page = doc.Pages[1];
// Add a blank page
var newPage = doc.Pages.Add();
// Get page count
int count = doc.Pages.Count;هندسه صفحه
هر صفحه چندین جعبه مرزی تعریف میکند. از متدهای setter روی Page برای تنظیم آنها استفاده کنید.
var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);ذخیره اسناد
در یک مسیر فایل، یک جریان یا یک آرایه بایت ذخیره کنید.
// Save to file
doc.Save("output.pdf");
// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);پیوستهای فایل
FileSpecification نمایانگر پیوستهای فایلهای جاسازیشده در یک PDF است.
var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);مهرهای تصویری
ImageStamp یک تصویر رستر را بر روی صفحه در موقعیتی مشخص قرار میدهد.
var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");مجموعههای اپراتور
OperatorCollection در هر صفحه حاوی عملگرهای جریان‑محتوا (content‑stream) خام است. از آن برای بازرسی یا دستکاری محتوا در سطح پایین استفاده کنید.
var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
// Inspect each operator
}نکات و بهترین شیوهها
Documentرا در یک عبارتusingبپیچید تا دستههای فایل بهسرعت آزاد شوند.- از
Document.Open(byte[])برای جریانهای کاری در حافظه استفاده کنید تا از مشکلات قفلگذاری فایل جلوگیری شود. - جعبههای صفحه (MediaBox، CropBox) را قبل از افزودن محتوا تغییر دهید تا فضای مختصات صحیح تضمین شود.
Saveرا فقط یک بار پس از تمام تغییرات فراخوانی کنید — ذخیرههای مکرر کندتر هستند اما ایمناند.- از
PageCollection.Accept(AnnotationSelector)برای پردازش دستهای حاشیهنویسیها در تمام صفحات استفاده کنید.
مشکلات رایج
| Issue | Cause | Fix |
|---|---|---|
Document.Open در PDF معتبر خطا میدهد | فایل با رمز عبور رمزگذاری شده است | پارامتر رمز عبور را در سازنده فراهم کنید |
| تعداد صفحات پس از ساخت ۰ است | Document() جدید خالی شروع میشود | برای افزودن صفحه خالی، doc.Pages.Add() را فراخوانی کنید |
| فایل ذخیرهشده بزرگتر از انتظار است | تصاویر یا قلمها چندین بار جاسازی شدهاند | از بهینهسازی استفاده کنید (راهنمای تبدیل و بهینهسازی را ببینید) |
Pages[0] خطای ایندکس میدهد | صفحات از ۱ شروع میشوند، نه از ۰ | برای صفحه اول از Pages[1] استفاده کنید |
سوالات متداول
چگونه دو سند PDF را ادغام کنم؟
از PdfFileEditor.Concatenate در Facades API استفاده کنید، یا بهصورت دستی صفحات را از یک سند به سند دیگر با استفاده از PageCollection کپی کنید.
آیا میتوانم یک PDF را از یک URL یا جریان باز کنم؟
بله. ابتدا محتویات URL را در یک byte[] بخوانید، سپس آن را به
Document.Open(byte[]) پاس دهید.
چگونه یک صفحه را حذف کنم؟
doc.Pages.Delete(pageNumber) را فراخوانی کنید که pageNumber یکپایه است.
آیا Document thread-safe است؟
نه. هر رشته باید با نمونهٔ Document خود کار کند.
API خلاصه مرجع
| Class / Method | Description |
|---|---|
Document | شی ریشه PDF؛ صفحات، فرادادهها و فیلدهای فرم را نگه میدارد |
Document.Open | کارخانهٔ ایستا برای باز کردن PDF از یک آرایه بایت |
Document.Save | سریالسازی سند به یک فایل یا جریان |
Page | صفحهٔ تک PDF با محتوا، حاشیهنویسیها و هندسه |
Page.SetMediaBox | تعریف جعبهٔ رسانهای صفحه |
Page.SetCropBox | تعریف ناحیهٔ برش قابل مشاهده |
Page.SetRotation | چرخش صفحه به میزان ۰، ۹۰، ۱۸۰ یا ۲۷۰ درجه |
PageCollection | مجموعهٔ مرتبشدهای از صفحات در یک سند |
PageCollection.Add | افزودن یک صفحهٔ خالی |
OperatorCollection | عملگرهای خام جریان محتوا برای یک صفحه |
FileSpecification | توصیفگر پیوست فایل جاسازیشده |
ImageStamp | مهر تصویری پوششی برای صفحات |
XFormCollection | XObjectهای فرم قابل استفاده مجدد در سند |