Aspose.PDF FOSS for TypeScript Функции

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*() создают разметку и аннотации-формы; каждый возвращает активный дескриптор Annotation. 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() возвращают дескриптор поля, чей собственный метод 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 для более детального изучения mark-mode и применённых редактирований.


Структура документа и доступность

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.

Куда мне идти дальше?

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() и другие методы аннотирования Page.Add*()Создать аннотацию, возвращающую живой дескриптор
Annotation.Flatten()Запечь внешний вид аннотации в статическое содержимое страницы
Form / Form.AddTextField() / Form.AddCheckbox()AcroForm фасад и создание полей
Document.Sign() / Document.Certify() / Document.VerifySignatures()Добавить или проверить цифровые подписи
Page.AddRedact() / Page.ApplyRedactions()Отметить и применить редактирование контента
Document.AutoTag() / Document.GetStructTree()Автор и чтение логического дерева структуры документа

См. также:

 Русский