مدیریت اسناد

مدیریت اسناد

مدیریت اسناد

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) برای پردازش دسته‌ای حاشیه‌نویسی‌ها در تمام صفحات استفاده کنید.

مشکلات رایج

IssueCauseFix
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 / MethodDescription
Documentشی ریشه PDF؛ صفحات، فراداده‌ها و فیلدهای فرم را نگه می‌دارد
Document.Openکارخانهٔ ایستا برای باز کردن PDF از یک آرایه بایت
Document.Saveسریال‌سازی سند به یک فایل یا جریان
Pageصفحهٔ تک PDF با محتوا، حاشیه‌نویسی‌ها و هندسه
Page.SetMediaBoxتعریف جعبهٔ رسانه‌ای صفحه
Page.SetCropBoxتعریف ناحیهٔ برش قابل مشاهده
Page.SetRotationچرخش صفحه به میزان ۰، ۹۰، ۱۸۰ یا ۲۷۰ درجه
PageCollectionمجموعهٔ مرتب‌شده‌ای از صفحات در یک سند
PageCollection.Addافزودن یک صفحهٔ خالی
OperatorCollectionعملگرهای خام جریان محتوا برای یک صفحه
FileSpecificationتوصیف‌گر پیوست فایل جاسازی‌شده
ImageStampمهر تصویری پوششی برای صفحات
XFormCollectionXObjectهای فرم قابل استفاده مجدد در سند

همچنین ببینید

 فارسی