Aspose.PDF FOSS for TypeScript คุณสมบัติ
Aspose.PDF FOSS สำหรับ TypeScript คุณลักษณะ
หน้านี้สำรวจพื้นที่ความสามารถหลักของ Aspose.PDF FOSS สำหรับ TypeScript และคลาสที่ทำหน้าที่เป็นจุดเริ่มต้นของพวกมัน เพื่อให้คุณสามารถค้นหาหน้าคู่มือผู้พัฒนาที่เหมาะสมสำหรับงานที่ต้องทำได้แต่ละพื้นที่จะได้รับการอธิบายอย่างละเอียดในหน้าของตนเอง.
การจัดการเอกสารและหน้า
Document เป็นจุดเริ่มต้นสำหรับทุกการดำเนินการ: Document.New() เริ่มต้นเอกสารเปล่าที่ PageFormat ที่กำหนด, และ Document.OpenFile() / Document.Open() โหลดเอกสารที่มีอยู่จากเส้นทางไฟล์หรือไบต์ในหน่วยความจำ. doc.Pages เป็นอาร์เรย์ของอ็อบเจกต์ Page, และ Document.WriteTo() / Document.Save() เขียนผลลัพธ์ออกไป.
import { Document, PageFormat } from '@asposefoss/pdf';
const doc = Document.New(PageFormat.A4);
doc.Pages[0].AddText('Hello from Aspose.PDF FOSS!', 72, 720, { fontSize: 14 });
doc.WriteTo('hello.pdf');ดู Core API สำหรับวงจรชีวิตของเอกสาร การแยก การรวม และการประกอบหน้า.
การแปลงรูปแบบ
Document.ToHtml(), Document.ToDocx() และ Document.ToMarkdown() แสดงผลทุกหน้าของเอกสารเป็นรูปแบบอื่น; วิธีเดียวกันนี้มีอยู่บน Page เพื่อแสดงผลหน้าเดียว, พร้อมกับ Page.ToImage() สำหรับเอาต์พุต PNG แบบราสเตอร์และ Page.ToSvg() สำหรับ SVG แยกเดี่ยว.
const doc = Document.OpenFile('report.pdf');
const html = doc.ToHtml(); // standalone HTML, all pages
const png = doc.Pages[0].ToImage({ scale: 2 }); // PNG bytes for page 1
ดู Conversion สำหรับชุดเต็มของรูปแบบการส่งออกและตัวเลือก.
คำอธิบาย
Page.AddHighlight() และเมธอดพี่น้อง Page.Add*() สร้าง markup และ shape annotations; แต่ละเมธอดจะคืนค่า handle Annotation ที่ใช้งานได้แบบเรียลไทม์. Annotation.Flatten() ฝังลักษณะการแสดงผลของ annotation ลงในสตรีมเนื้อหาของหน้าโดยตรงและลบออกจาก /Annots, ทำให้เป็นถาวรและไม่โต้ตอบได้.
const highlight = doc.Pages[0].AddHighlight({ quadPoints: [72, 700, 200, 700, 72, 685, 200, 685] });
highlight.Flatten();ดู Annotations สำหรับชุดเต็มของประเภท annotation และการค้นหาข้อความ annotation.
แบบฟอร์มและการทำให้ฟิลด์แบน
AcroForm ฟิลด์ถูกสร้างผ่าน doc.Form, ฟาซาด Form, หรือโดยตรงบน Page ด้วย Page.AddTextField() / Page.AddCheckbox(). Form.AddTextField() และ Form.AddCheckbox() คืนค่า field handle ที่เมธอด Flatten() ของมันเองจะฝังมันลงในเนื้อหาแบบคงที่ในลักษณะเดียวกับที่ Annotation.Flatten() ทำ.
const field = doc.Form.AddTextField({
page: 0, rect: [72, 660, 300, 680], name: 'FullName', value: 'Jane Doe',
});
field.Flatten();ดู Forms สำหรับชุดเต็มของประเภทฟิลด์.
Security
Document.OpenFile() และ Document.Open() ยอมรับตัวเลือก password เพื่อเปิดเอกสารที่ได้รับการป้องกัน, และ Document.Save() ยอมรับตัวเลือก encrypt เพื่อปกป้องเอกสารเมื่อบันทึก. Document.Sign() และ Document.Certify() เพิ่มลายเซ็นดิจิทัล, และ Document.VerifySignatures() ตรวจสอบลายเซ็นทั้งหมดที่มีอยู่ในเอกสาร.
import { Document, InvalidPasswordError } from '@asposefoss/pdf';
try {
const doc = Document.OpenFile('secret.pdf', { password: 'hunter2' });
doc.WriteTo('decrypted.pdf');
} catch (e) {
if (e instanceof InvalidPasswordError) console.error('wrong password');
else throw e;
}ดู Security สำหรับการเข้ารหัส, การเซ็นชื่อ, และการตรวจสอบลายเซ็น.
Redaction
Page.AddRedact() ทำเครื่องหมายพื้นที่สี่เหลี่ยมสำหรับการลบข้อมูลโดยยังไม่เปลี่ยนแปลงหน้า; Page.ApplyRedactions() จากนั้นเขียนทับสตรีมเนื้อหาอย่างทำลายล้าง, ลบเนื้อหาที่ทำเครื่องหมายออกอย่างถาวรและคืนค่าจำนวนการลบข้อมูลที่ได้ทำ.
page.AddRedact({ rect: [220, 550, 460, 566], fill: [0, 0, 0], overlayText: '[REDACTED]' });
const applied = page.ApplyRedactions();ดู Redaction สำหรับโหมดมาร์กเทียบกับการลบข้อมูลที่นำไปใช้อย่างละเอียด.
โครงสร้างเอกสารและการเข้าถึง
Document.AutoTag() สรุปและสร้าง /StructTreeRoot จากการจัดหน้า — หัวเรื่องโดยการจัดกลุ่มขนาดฟอนต์, ย่อหน้า, และ (กับ opts.alt) รูปภาพ — และคืนค่า AutoTagReport. Document.GetStructTree() อ่านต้นไม้โครงสร้างที่ได้กลับมา, และ Document.ValidatePdfUa() ตรวจสอบเอกสารเทียบกับส่วนย่อยที่เครื่องจักรสามารถตรวจสอบได้ของ PDF/UA-1.
const report = doc.AutoTag({ lang: 'en-US', title: 'Quarterly Report', tables: true });
console.log(report);ดู Structure สำหรับโครงร่าง, การแท็ก, และจุดหมายที่ตั้งชื่อ.
เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
- แก้ไขวัตถุ
Pageที่เข้าถึงผ่านdoc.Pagesโดยตรง — การอธิบาย, ฟิลด์, หรือหน้า ที่อยู่ในตัวแปรแยกต่างหากและไม่ได้มาจากเอกสารสดจะไม่ปรากฏเมื่อคุณเรียกSave()/WriteTo(). Flatten()มีให้ใช้ได้ทั้งบนAnnotationและตัวจัดการฟิลด์ฟอร์ม (TextField,CheckboxFieldและประเภทฟิลด์อื่น ๆ) — เรียกใช้ครั้งเดียวเมื่อเนื้อหาเชิงโต้ตอบควรกลายเป็นเนื้อหาหน้าถาวรที่ไม่สามารถแก้ไขได้.- เรียก
Page.ApplyRedactions()เฉพาะหลังจากที่ได้เพิ่มเครื่องหมายPage.AddRedact()ทั้งหมดสำหรับหน้าดังกล่าวแล้ว; เครื่องหมายที่เพิ่มหลังจากการเรียกจะไม่ถูกนำไปใช้. - ดักจับ
InvalidPasswordErrorอย่างเฉพาะเจาะจงก่อนการดักจับทั่วไปเมื่อเรียกDocument.OpenFile()/Document.Open()กับข้อมูลที่ไม่ได้เชื่อถือ. Document.AutoTag()สร้างโครงสร้างต้นไม้เชิงประมาณ — ควรตรวจสอบผลลัพธ์ด้วยDocument.GetStructTree()หรือValidatePdfUa()เสมอ แทนที่จะสมมติว่ามีการปฏิบัติตามการเข้าถึงอย่างสมบูรณ์.
ปัญหาทั่วไป
| ปัญหา | สาเหตุ | วิธีแก้ |
|---|---|---|
Document.OpenFile() / Document.Open() ทำให้เกิด InvalidPasswordError | เอกสารถูกป้องกันด้วยรหัสผ่านและไม่ได้ให้รหัสผ่าน หรือให้รหัสผิด | ส่ง { password: '...' } ให้ Document.OpenFile() / Document.Open() |
| เครื่องหมายการปกปิดไม่มีผล | Page.ApplyRedactions() ไม่เคยถูกเรียกใช้, หรือถูกเรียกใช้ก่อนที่เครื่องหมายจะถูกเพิ่ม | เรียก Page.AddRedact() สำหรับทุกเครื่องหมายก่อน, แล้วจึงเรียก Page.ApplyRedactions() ครั้งเดียว |
| ฟิลด์หรือคำอธิบายที่แบนยังคงแสดงเป็นแบบโต้ตอบ | Flatten() ถูกเรียกบนสำเนาแทนที่จะเป็นตัวจัดการที่ได้จากการเรียก Add*() | เรียก Flatten() บนวัตถุที่ได้โดยตรงจาก AddTextField() / AddHighlight() / เป็นต้น. |
ValidatePdfUa() ยังรายงานโครงสร้างที่หายไปหลังจาก AutoTag() | AutoTag() เป็นวิธีเชิงประมาณและอาจไม่แท็กรูปภาพทุกภาพหากไม่มีการเรียกกลับ alt | ส่งฟังก์ชัน opts.alt ไปยัง AutoTag() เพื่อจัดหาข้อความ alt สำหรับรูปภาพ |
FAQ
ซอฟต์แวร์ Aspose.PDF แบบโอเพนซอร์สสำหรับ TypeScript พึ่งพาเอนจิ้น PDF เชิงพาณิชย์หรือไม่?
ไม่. มันถูกปล่อยภายใต้ลิขสิทธิ์ MIT และตรรกะการแสดงผล การแปลง และการลงนามทำงานทั้งหมดใน TypeScript/JavaScript.
ฉันสามารถแปลง PDF โดยตรงเป็น HTML, Markdown หรือ DOCX ได้หรือไม่?
ได้ — Document.ToHtml(), Document.ToMarkdown() และ Document.ToDocx() ทำการแสดงผลทุกหน้าในเอกสาร; วิธีการ Page.ToHtml() / Page.ToMarkdown() / Page.ToDocx() ที่เทียบเท่าจะทำการแสดงผลเพียงหน้าเดียว.
ความแตกต่างระหว่างการทำเครื่องหมายและการใช้การลบข้อมูลลับคืออะไร?
Page.AddRedact() เพียงทำเครื่องหมายพื้นที่เท่านั้น — เนื้อหาภายใต้ยังคงอยู่และสามารถคัดลอกได้จนกว่า Page.ApplyRedactions() จะถูกเรียก ซึ่งจะลบออกอย่างถาวร.
ฉันจะทำให้หมายเหตุหรือฟิลด์ฟอร์มเป็นถาวรและไม่สามารถแก้ไขได้อย่างไร?
เรียก Flatten() บนวัตถุที่ส่งกลับจากการเรียก Add*() ที่สร้างมัน — Annotation.Flatten() สำหรับหมายเหตุ, หรือ Flatten() ของตัวจัดการฟิลด์สำหรับฟิลด์ AcroForm.
ฉันควรไปต่อที่ไหน?
Getting Started ครอบคลุมการติดตั้งและตัวอย่างการทำงานแรก คู่มือสำหรับนักพัฒนานี้ดำเนินต่อด้วยหน้าเฉพาะสำหรับแต่ละพื้นที่ความสามารถที่เชื่อมโยงด้านบน.
API Reference สรุป
| คลาส/เมธอด | คำอธิบาย |
|---|---|
Document | จุดเริ่มต้น — สร้าง, โหลด, บันทึก, และจัดการ PDF |
Document.New() / Document.OpenFile() / Document.Open() | เริ่มต้นเอกสารเปล่า, หรือโหลดจากเส้นทางไฟล์หรือไบต์ในหน่วยความจำ |
Document.WriteTo() / Document.Save() | เขียนเอกสารไปยังเส้นทางไฟล์หรือคืนค่าเป็นไบต์ |
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | เรนเดอร์ทุกหน้าเป็นรูปแบบอื่น |
Page.ToImage() / Page.ToSvg() | เรนเดอร์หน้าเดียวเป็น PNG หรือ SVG |
Page.AddHighlight() และวิธีการทำ annotation Page.Add*() อื่นๆ | สร้าง annotation แล้วคืน live handle |
Annotation.Flatten() | บันทึกลักษณะของ annotation ลงในเนื้อหาหน้าแบบคงที่ |
Form / Form.AddTextField() / Form.AddCheckbox() | AcroForm facade และการสร้าง field |
Document.Sign() / Document.Certify() / Document.VerifySignatures() | เพิ่มหรือยืนยันลายเซ็นดิจิทัล |
Page.AddRedact() / Page.ApplyRedactions() | ทำเครื่องหมายและดำเนินการลบข้อมูล |
Document.AutoTag() / Document.GetStructTree() | ผู้เขียนและอ่านต้นไม้โครงสร้างตรรกะของเอกสาร |