Фасады API
Фасады API
API фасадов предоставляет упрощённые, ориентированные на задачу обёртки вокруг основной объектной модели Aspose.PDF FOSS for .NET. Каждый класс фасада нацелен на конкретную операцию PDF — заполнение форм, объединение файлов, редактирование содержимого или цифровую подпись — и раскрывает рабочий процесс BindPdf / Save.
Заполнение формы с помощью фасада Form
Form (в Aspose.Pdf.Facades) привязывается к существующему PDF и позволяет читать или записывать значения полей AcroForm без навигации по дереву страниц.
using var form = new Form("input.pdf", "output.pdf");
form.FillField("FirstName", "Alice");
form.FillField("AcceptTerms", "Yes");
form.Save();Чтобы прочитать значения полей:
using var form = new Form("input.pdf");
string name = form.GetField("FirstName");Объединение и разбиение PDF‑файлов с PdfFileEditor
PdfFileEditor объединяет, разделяет, извлекает и удаляет диапазоны страниц.
var editor = new PdfFileEditor();
// Concatenate two files
editor.Concatenate("file1.pdf", "file2.pdf", "merged.pdf");
// Extract pages 2-5
editor.Extract("source.pdf", 2, 5, "pages2to5.pdf");
// Split at page 3
editor.SplitFromFirst("source.pdf", 3, "first3.pdf");Редактирование содержимого страницы с помощью PdfContentEditor
PdfContentEditor изменяет существующее содержимое страницы — добавляет текст, заменяет текст или прикрепляет действия к аннотациям.
var editor = new PdfContentEditor();
editor.BindPdf("input.pdf");
// Perform content edits
editor.Save("output.pdf");Цифровые подписи с PdfFileSignature
PdfFileSignature подписывает PDF‑документы и проверяет существующие подписи.
var sig = new PdfFileSignature();
sig.BindPdf("document.pdf");
// Sign or verify
sig.Save("signed.pdf");Наложение штампа на страницу с помощью PdfFileStamp
PdfFileStamp накладывает текст, изображения или другие страницы PDF в виде штампов.
var stamp = new PdfFileStamp();
stamp.BindPdf("input.pdf");
// Add stamps
stamp.Save("stamped.pdf");
stamp.Close();Преобразование страниц в изображения с помощью PdfConverter
PdfConverter отображает страницы PDF в растровые форматы изображений.
var converter = new PdfConverter();
converter.BindPdf("input.pdf");
converter.DoConvert();
// Iterate pages and save imagesСоветы и лучшие практики
- Всегда вызывайте
Close()или используйтеusingдля освобождения ресурсов, удерживаемых объектами фасада. - Используйте
BindPdfс путем к файлу для больших файлов, чтобы избежать загрузки всего в память одновременно. - Предпочитайте
TryConcatenateиTryAppendих вариантов без Try для гибкой обработки ошибок. - Фасады делегируют работу внутренней модели
Document— переключайтесь на ядро API, когда требуется тонкий контроль. - Фасад
FormEditorпозволяет добавлять новые поля формы в существующий PDF, а не только заполнять уже существующие.
Общие проблемы
| Issue | Cause | Fix |
|---|---|---|
Save() создает пустой файл | BindPdf не был вызван перед сохранением | Всегда привязывайте исходный PDF перед вызовом Save |
| Значение поля формы не записано | Имя поля не совпадает с внутренним именем поля PDF | Используйте Form.FieldNames для получения списка доступных имен полей |
| Конкатенация завершается без ошибок | Входной файл зашифрован или повреждён | Используйте TryConcatenate и проверьте возвращаемое значение |
| Подписи недействительны после редактирования | Содержимое было изменено после подписания | Подписывайте документ как последний шаг |
Часто задаваемые вопросы
В чём разница между Facades и core Document API?
Фасады предоставляют высокоуровневые, ориентированные на задачу методы (заполнение формы, объединение файлов).
Ядро API (Document, Page, Annotation) предоставляет более низкоуровневый доступ к
каждому объекту PDF. Фасады используют ядро API внутри.
Могу ли я цепочкой выполнять несколько операций фасада?
Да. Привяжите тот же источник, выполните операции и сохраните один раз. Или сохраните
промежуточный результат и привяжите заново для следующей операции.
Поддерживает ли PdfFileEditor PDF-файлы, защищённые паролем?
Да. Перегрузки, принимающие пароли владельца/пользователя, доступны для зашифрованных файлов.
Сводка справочника API
| Class / Method | Description |
|---|---|
Form | Фасад AcroForm для чтения и записи значений полей |
Form.FillField | Установить значение поля формы по имени |
Form.GetField | Прочитать значение поля формы по имени |
FormEditor | Добавить или изменить поля формы в существующем PDF |
PdfFileEditor | Объединять, разделять, извлекать и удалять диапазоны страниц PDF |
PdfFileEditor.Concatenate | Объединить два или более PDF в один |
PdfFileEditor.Extract | Извлечь диапазон страниц в новый PDF |
PdfContentEditor | Изменить содержимое страницы (текст, аннотации, действия) |
PdfFileSignature | Подписывать и проверять цифровые подписи PDF |
PdfFileStamp | Наложить текстовые или графические штампы на страницы |
PdfConverter | Отрисовывать страницы PDF в растровые изображения |
FormattedText | Описание стилизованного текста для операций штампа |
FontStyle | Перечисление стилей шрифтов (жирный, курсив и т.д.) |
EncodingType | Перечисление кодировок символов |