การจัดการเอกสาร PDF ขั้นพื้นฐานครอบคลุมการดำเนินการที่ปรากฏในเกือบทุกขั้นตอนการทำงานของ PDF: การเปิดหรือสร้างเอกสาร, การเข้าถึงหน้าและเนื้อหาของหน้า, การอ่านและเขียนคำอธิบาย, การสกัดข้อความ, และการทำงานกับการกระทำแบบโต้ตอบ. Aspose.PDF FOSS for .NET ให้ API .NET 8+ ที่จัดการงานทั้งหมดเหล่านี้ผ่านโมเดลวัตถุที่สอดคล้องซึ่งมุ่งเน้นที่ประเภท Document และ Page.

วงจรชีวิตของเอกสาร: สร้าง, เปิด, บันทึก

ทุกขั้นตอนการทำงานเริ่มต้นด้วยการสร้างเอกสารใหม่หรือโหลดเอกสารที่มีอยู่แล้ว Document.Create() คืนค่าอินสแตนซ์ Document ใหม่ที่ว่างเปล่า Document.Open(data) รับ byte[] หรือ Stream และทำการแยกโครงสร้าง PDF:

using var doc = Document.Create();
doc.Pages.Add();
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(new Rectangle(50, 700, 200, 720), action);
using var ms = new MemoryStream();
doc.Save(ms);
ms.Position = 0;
using var doc2 = Document.Open(ms.ToArray());
var annot = (LinkAnnotation)doc2.Pages[1].Annotations[1];
Console.WriteLine(annot.Uri); // https://aspose.com

สแนปเพตนี้เปิด PDF ขั้นต่ำ, เพิ่มการอธิบายลิงก์บนหน้า 1, บันทึกเป็น MemoryStream, และตรวจสอบว่าการอธิบายยังคงอยู่หลังจากโหลดใหม่. การ overload Document.Save(Stream) เขียนโครงสร้างที่อัปเดตทั้งหมด; Document.ToArray() คืนค่าไบต์โดยตรง.


การเข้าถึงหน้าและคอลเลกชันของหน้า

หน้าถูกเข้าถึงผ่านคุณสมบัติ Pages โดยใช้ดัชนีจำนวนเต็มเริ่มจาก 1: doc.Pages[1] คืนค่าหน้าตัวแรก, doc.Pages[doc.Pages.Count] คืนค่าหน้าตัวสุดท้าย. แต่ละวัตถุ Page เปิดเผย:

  • AnnotationsAnnotationCollection สำหรับหน้านั้น, รองรับ AddLinkAnnotation และการนับรายการของคำอธิบายที่มีอยู่ตามประเภท.
  • ตัวดำเนินการสตรีมเนื้อหา — การเข้าถึงระดับต่ำของคำสั่งการวาดหน้าโดยผ่านคอลเลกชัน Operators.

ดัชนีแบบ 1-based มีความสอดคล้องตลอด API: การค้นหา annotation, ดัชนีหน้าปลายทางของการกระทำ GoTo, และการอ้างอิงหน้าทั้งหมดอื่น ๆ ใช้แนวทางเดียวกัน.


การสกัดข้อความด้วย TextFragmentAbsorber

TextFragmentAbsorber เป็นจุดเริ่มต้นมาตรฐานสำหรับการอ่านข้อความจากหน้า PDF ใช้คอนสตรัคเตอร์ที่ไม่มีอาร์กิวเมนต์เพื่อดึงเอา fragment ทั้งหมด หรือส่งวลีค้นหาเพื่อกรองข้อความที่ตรงกัน:

using var doc = Document.Open("path/to/document.pdf");
var absorber = new TextFragmentAbsorber("Hello");
absorber.Visit(doc.Pages[1]);
foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine($"Found: {fragment.Text} size={fragment.FontSize}");
}

เรียก absorber.Visit(page) เพื่อประมวลผลหน้าเดียว คอลเลกชัน TextFragments ที่ได้จะมีอ็อบเจ็กต์ TextFragment; แต่ละอ็อบเจ็กต์เปิดเผย Text (เนื้อหาเป็นสตริง) และ FontSize (ขนาดจุดที่แสดงผล) ตัวโอเวอร์โหลดที่สอง TextFragmentAbsorber(searchPhrase, isRegex) รับแฟล็ก regular expression สำหรับการค้นหาแบบใช้รูปแบบ.


การกระทำแบบโต้ตอบ

PdfAction เป็นคลาสโรงงานสำหรับประเภทการกระทำ PDF มาตรฐานทั้งหมด สี่เมธอดโรงงานแบบสถิตครอบคลุมกรณีที่พบบ่อยที่สุด:

  • PdfAction.CreateUri(uri) — เปิด URL ในเบราว์เซอร์ของผู้ใช้
  • PdfAction.CreateGoTo(pageIndex, fitType) — ไปยังหน้าที่ระบุภายในเอกสาร
  • PdfAction.CreateJavaScript(script) — เรียกใช้สตริง JavaScript ในตัวดู PDF
  • PdfAction.CreateLaunch(filePath) — เปิดไฟล์หรือแอปพลิเคชันภายนอก

การกระทำจะถูกแนบกับหน้าโดยผ่านคำอธิบายประกอบ AnnotationCollection.AddLinkAnnotation(rectangle, action) วาง LinkAnnotation ไว้เหนือพื้นที่สี่เหลี่ยมที่ระบุพร้อมกับการกระทำที่แนบมา:

using var doc = Document.Create();
doc.Pages.Add();
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://example.org");
var annot = page.Annotations.AddLinkAnnotation(new Rectangle(10, 10, 100, 30), action);
Console.WriteLine(page.Annotations.Count);      // 1
Console.WriteLine(annot.AnnotationType);         // Link

AnnotationType.Link ยืนยันว่าการทำหมายเหตุถูกสร้างเป็นประเภทลิงก์. ตัวสร้าง Rectangle รับค่าพิกัดซ้าย, ล่าง, ขวา, และบนในหน่วยพื้นที่ผู้ใช้ของ PDF.


เมตาดาต้าเอกสารและการให้สิทธิ์

คลาส Document เปิดเผย IsLicensed (คืนค่า true ในการสร้าง FOSS), JavaScript (เป็น JavaScriptCollection สำหรับสคริปต์ระดับเอกสาร), และ DocumentActions สำหรับเหตุการณ์วงจรชีวิตเช่น BeforeClosing และ BeforeSaving.

แพคเกจ FOSS ถูกติดตั้งผ่าน NuGet:

dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha

ไม่จำเป็นต้องใช้คีย์ใบอนุญาต ใบอนุญาต MIT อนุญาตให้ใช้ในแอปพลิเคชันเชิงพาณิชย์โดยไม่มีข้อกำหนดการอ้างอิงนอกจากการรักษาประกาศใบอนุญาตไว้


เริ่มต้น

ทรัพยากรที่เกี่ยวข้อง