تولید صفحه
تولید صفحه
Aspose.PDF FOSS برای .NET یک موتور چیدمان مبتنی بر پاراگراف برای تولید محتوای PDF فراهم میکند. جداول، جعبههای شناور، سرصفحهها/پاورقیها و مهرها به شما امکان میدهند صفحات ساختاریافته را بدون ساخت دستی عملگرهای جریان محتوا بسازید.
افزودن پاراگرافها
Page.Paragraphs نقطه ورودی برای افزودن عناصر محتوا است.
using var doc = new Document();
var page = doc.Pages.Add();
page.Paragraphs.Add(new TextFragment("Hello, PDF!"));
doc.Save("hello.pdf");جداول
Table ردیفها، سلولها، عرض ستونها، حاشیهها و وضعیت متن را پشتیبانی میکند.
var table = new Table();
table.ColumnWidths = "100 200 100";
var row = table.Rows.Add();
row.Cells.Add("Name");
row.Cells.Add("Description");
row.Cells.Add("Price");
page.Paragraphs.Add(table);قالببندی سلول
Cells.Add یک Cell برمیگرداند که در آن میتوانید حاشیهها، فاصله داخلی و محتوای تو در تو را پیکربندی کنید.
var cell = row.Cells.Add("Styled cell");
cell.Border = new BorderInfo(BorderSide.All, 0.5f);
cell.Margin = new MarginInfo(5, 5, 5, 5);جعبههای شناور
FloatingBox محتوا را در مختصات مطلق روی صفحه قرار میدهد.
var box = new FloatingBox(200, 100);
box.Left = 72;
box.Top = 700;
box.Paragraphs.Add(new TextFragment("Positioned text"));
page.Paragraphs.Add(box);سرصفحهها و پاورقیها
HeaderFooter محتوای تکراری را در بالای صفحه یا پایین آن اضافه میکند.
var header = HeaderFooter.FromText("Document Title");
header.ApplyAsHeader(page);
var footer = HeaderFooter.FromText("Page {0}");
footer.ApplyAsFooter(page);مهرهای صفحه
PdfPageStamp محتوا را از یک صفحه PDF روی صفحه دیگر میافکند.
var stamp = new PdfPageStamp("watermark.pdf");
stamp.Put(page);نکات و بهترین شیوهها
- از
Table.ColumnWidthsبه عنوان رشتهای از مقادیر نقطهای جدا شده با فاصله برای کنترل چیدمان استفاده کنید. FloatingBoxبرای موقعیتیابی مطلق مفید است — باTableترکیب کنید تا محتوای ساختاری داشته باشید.HeaderFooter.FromTextاز{0}به عنوان جایدار شماره صفحه پشتیبانی میکند.- تمام پاراگرافها را قبل از فراخوانی
Saveاضافه کنید — موتور چیدمان محتوا را به ترتیب پردازش میکند. - از
BorderInfoبرای افزودن حاشیه به جداول، سلولها و جعبههای شناور استفاده کنید.
مشکلات رایج
| مشکل | دلیل | راهحل |
|---|---|---|
| جدول از صفحه عبور میکند | تعداد ردیفها برای یک صفحه بیش از حد است | کتابخانه بهصورت خودکار صفحهبندی میکند؛ در صورت نیاز حاشیهها را تنظیم کنید |
| سرصفحه نمایش داده نمیشود | ApplyAsHeader پس از Save فراخوانی میشود | سرصفحهها را قبل از ذخیرهسازی اعمال کنید |
| FloatingBox در موقعیت نادرست قرار دارد | مختصات از بالا‑چپ بهواحدهای پاراگراف اندازهگیری میشوند | اطمینان حاصل کنید که واحدها با انتظارات شما مطابقت دارند |
سوالات متداول
آیا میتوانم جداول چندصفحهای ایجاد کنم؟
بله. وقتی یک جدول ارتفاع صفحه موجود را تجاوز میکند، بهصورت خودکار در صفحه بعد ادامه مییابد.
چگونه میتوانم تصاویر را به سلولهای جدول اضافه کنم؟
یک پاراگراف Image ایجاد کنید و آن را به مجموعه Paragraphs سلول اضافه کنید.
آیا میتوانم دادهها را از یک آرایه به جدول وارد کنم؟
بله. از Table.ImportArray برای پر کردن یک جدول از یک آرایه دو‑بعدی استفاده کنید.
خلاصه مرجع API
| کلاس / متد | توضیح |
|---|---|
Paragraphs | عناصر محتوا به ترتیب در یک صفحه |
Paragraphs.Add | افزودن یک عنصر پاراگراف (متن، جدول، نمودار و غیره) |
Table | چیدمان شبکهای با ردیفها، سلولها و عرض ستونها |
Table.ImportArray | پر کردن جدول از یک آرایه |
Rows | مجموعه ردیفها در یک جدول |
Cells | مجموعه سلولها در یک ردیف جدول |
BorderInfo | استایلگذاری حاشیه برای جدولها، سلولها و جعبهها |
FloatingBox | محفظه محتوا با موقعیت مطلق |
HeaderFooter | محتوای سرصفحه یا پاورقی تکراری |
HeaderFooter.FromText | ایجاد سرصفحه/پاورقی از یک قالب متنی |
PdfPageStamp | پوشاندن یک صفحه PDF به عنوان مهر |