چگونه با مدیریت اسناد هسته ای در .NET کار کنیم
Aspose.PDF FOSS for .NET provides the Document کلاس به عنوان نقطه ورودی مرکزی برای تمام عملیات PDF. نصب بسته با dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha و استفاده از Document.Create(), Document.Open(), Document.Save(),و Document.Merge() برای مدیریت اسناد PDF به صورت برنامه نویسی در .NET 8+ استفاده کنید.
راهنمای گام به گام
مرحله اول: نصب بسته بندی
اضافه کردن Aspose.PDF FOSS به پروژه خود:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alphaبررسی ارجاع در خودتان .csproj:
<PackageReference Include="Aspose.Pdf.Foss" Version="0.1.0-alpha" />مرحله دوم: کلاس های مورد نیاز واردات
دستورالعمل های مورد نیاز را در بالای فایل خود اضافه کنید:
using Aspose.Pdf;
using Aspose.Pdf.Annotations;مرحله 3: ایجاد یک سند PDF جدید
استفاده از Document.Create() برای ایجاد یک سند خالی در حافظه:
using var doc = Document.Create();
// The document has no pages yet; add pages before saving
using var ms = new MemoryStream();
doc.Save(ms);
byte[] pdfBytes = ms.ToArray();مرحله چهارم: یک PDF موجود را باز کنید.
Document.Open یک بایت را می پذیرد، مسیر فایل یا جریان. using برای اطمینان از اینکه پس از استفاده، اسناد حذف می شوند:
// From a file path
using var doc = Document.Open("input.pdf");
var page = doc.Pages[1];
// From a byte array loaded elsewhere
byte[] data = File.ReadAllBytes("input.pdf");
using var doc2 = Document.Open(data);مرحله پنجم: دسترسی به صفحات
و این Document.Pages املاک به خانه بازگردانده می شود PageCollection.صفحه ها 1 شاخص هستند:
using var doc = Document.Open("input.pdf");
int pageCount = doc.Pages.Count;
var firstPage = doc.Pages[1];
double width = firstPage.Width;
double height = firstPage.Height;مرحله 6: یک سند را ذخیره کنید
در جریان با یک جریان ذخیره کنید. Document.Save(),یا به یک بایت درآمده است. Document.ToArray():
using var doc = Document.Open("input.pdf");
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://aspose.com/test");
page.Annotations.AddLinkAnnotation(new Rectangle(50, 700, 200, 720), action);
using var ms = new MemoryStream();
doc.Save(ms);
ms.Position = 0;
byte[] savedBytes = ms.ToArray();مرحله هفتم: جمع آوری اسناد چندگانه
استفاده از Document.Merge() ترکیب چندگانه Document مثال ها در یک:
using var doc1 = Document.Open("part1.pdf");
using var doc2 = Document.Open("part2.pdf");
var merged = Document.Merge(new[] { doc1, doc2 });
merged.Save("combined.pdf");Document.MergeDocuments() یک بار اضافی معادل است که مسیر فایل را به طور مستقیم پذیرفته است.
مشکلات و اصلاحات مشترک
صفحه های جمع آوری خالی پس از Document.Create() Document.Create() بازگرداندن یک سند بدون صفحات.شما باید به صراحت اضافه کردن یک صفحه قبل از دسترسی doc.Pages[1].تلاش برای دسترسی به یک شاخص که وجود ندارد، یک IndexOutOfRangeException.
InvalidOperationاستثنا هنگام تماس با Document.Open در یک فایل فاسد اگر فایل یا بایت PDF خراب شده یا نادرست باشد،, Document.Open تایید کنید که منبع بایت مجموعه یک PDF کامل است (با شروع با %PDF-قبل از اینکه آن را به Open.
اسناد حذف نشده – حافظه در سناریوهای با سرعت بالا همیشه چوبی Document.Open و Document.Create تماس در A using بیانیه : The Document کلاس های کاربردی IDisposable;عدم رفع آن باعث می شود که جریان و جدول مرجع متقابل در حافظه باقی بماند.
پس از ms.Position دوباره تنظیم نشده است ذخیره(ms) وقتی از یک خواندن به عقب برمی گردند MemoryStream بعد از doc.Save(ms),بازسازی ms.Position = 0 قبل از خواندن. نادیده گرفتن این مرحله باعث می شود که خواننده یک PDF خالی یا جزئی را پیدا کند.
Merge یک سند با تعداد صفحه های غیرمنتظره تولید می کند اطمینان حاصل کنید که تمام اسناد منبع قبل از انتقال آنها به Document.Merge.قرار دادن یک سند منبع قبل از تماس ترکیبی می تواند منجر به یک درخت صفحه نامناسب شود.
پرسش های متداول
آیا می توانم یک فایل PDF با رمز عبور را باز کنم؟?
بله استفاده کنید Document.Open(data, password) یا Document.Open(path, password) برای ارائه مالک یا رمز عبور کاربر به عنوان دومین استدلال.
آیا Document.ToArray() از ذخیره سازی به MemoryStream متفاوت است؟?
Document.ToArray() این یک روش مناسب است که به طور داخلی برای یک MemoryStream و بازگرداندن بایت نتیجه. هر دو مسیر تولید یک خروجی PDF مشابه است.
نوع مالکیت صفحات چیست؟?
Document.Pages نوعی است PageCollection.1- این شاخص ها به صورت 1 شاخه است.; doc.Pages[1] صفحه اول است.
آیا می توانم چندین بار یک سند را ذخیره کنم؟?
بله، می توانید تماس بگیرید. doc.Save() یا doc.ToArray() چندین بار در همان مثال سند.هر تماس وضعیت فعلی اسناد را سریالی می کند.
چگونه می توانم بررسی کنم که آیا یک سند مجوز داده شده است؟?
Document.IsLicensed بازگشت به A bool برای Aspose.PDF FOSS این فقط اطلاعاتی است - هیچ فعال سازی لازم نیست.