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 анотації; кожен повертає живий Annotation handle. Annotation.Flatten() вбудовує зовнішній вигляд анотації безпосередньо у потік вмісту сторінки та видаляє її з /Annots, роблячи її постійною та неінтерактивною.
const highlight = doc.Pages[0].AddHighlight({ quadPoints: [72, 700, 200, 700, 72, 685, 200, 685] });
highlight.Flatten();Дивіться Annotations для повного набору типів анотацій та пошуку тексту анотацій.
Форми та сплощення полів
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(), щоб надати альтернативний текст для зображень |
FAQ
Чи залежить Aspose.PDF FOSS для 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.
Куди я маю йти далі?
Посібник «Початок роботи» охоплює встановлення та перший робочий приклад. Цей посібник для розробників продовжується окремими сторінками для кожної області можливостей, посилання на які наведено вище.
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() та інші методи анотації Page.Add*() | Створити анотацію, повертаючи живий дескриптор |
Annotation.Flatten() | Вбудувати вигляд анотації у статичний вміст сторінки |
Form / Form.AddTextField() / Form.AddCheckbox() | AcroForm фасад та створення полів |
Document.Sign() / Document.Certify() / Document.VerifySignatures() | Додати або перевірити цифрові підписи |
Page.AddRedact() / Page.ApplyRedactions() | Позначити та застосувати редагування вмісту |
Document.AutoTag() / Document.GetStructTree() | Автор та прочитати логічне дерево структури документа |