Skip to content

Довідник API

Ця сторінка документує кожну публічну структуру та метод у pdf_oxide. Для Python-обгорток дивіться Довідник Python API. Для деталей типів та enum дивіться Типи та Enum.

PdfDocument

Низькорівневий дескриптор документа. Відкриття PDF-файлу, вилучення тексту, зображень та метаданих.

use pdf_oxide::PdfDocument;

Відкриття та автентифікація

Метод Сигнатура Опис
open fn open(path: impl AsRef<Path>) -> Result<Self> Відкрити PDF-файл з диску
open_from_bytes fn open_from_bytes(data: Vec<u8>) -> Result<Self> Відкрити PDF з байтів у пам’яті
open_with_config fn open_with_config(path: impl AsRef<Path>, config: impl Any) -> Result<Self> Відкрити з конфігурацією парсера
authenticate fn authenticate(&mut self, password: &[u8]) -> Result<bool> Автентифікувати за допомогою пароля користувача або власника

Метадані

Метод Сигнатура Опис
page_count fn page_count(&mut self) -> Result<usize> Кількість сторінок у документі
page_count_u32 fn page_count_u32(&mut self) -> u32 Кількість сторінок як u32 (0 при помилці)
version fn version(&self) -> (u8, u8) Версія PDF як (major, minor)
trailer fn trailer(&self) -> &Object Необроблений словник trailer
catalog fn catalog(&mut self) -> Result<Object> Словник каталогу документа

Вилучення тексту

Метод Сигнатура Опис
extract_text fn extract_text(&mut self, page_index: usize) -> Result<String> Простий текст з однієї сторінки
extract_all_text fn extract_all_text(&mut self) -> Result<String> Простий текст з усіх сторінок
extract_spans fn extract_spans(&mut self, page_index: usize) -> Result<Vec<TextSpan>> Текстові фрагменти з метаданими шрифту
extract_spans_with_config fn extract_spans_with_config(&mut self, page_index: usize, config: &TextConfig) -> Result<Vec<TextSpan>> Span-и з власною конфігурацією
extract_chars fn extract_chars(&mut self, page_index: usize) -> Result<Vec<TextChar>> Позиції та метадані для кожного символу
extract_text_with_ocr fn extract_text_with_ocr(&mut self, page_index: usize) -> Result<String> Текст з OCR-резервом для сканованих сторінок
extract_spans_with_ocr fn extract_spans_with_ocr(&mut self, page_index: usize) -> Result<Vec<TextSpan>> Span-и з OCR-резервом
apply_intelligent_text_processing fn apply_intelligent_text_processing(&self, spans: Vec<TextSpan>) -> Vec<TextSpan> Розширення лігатур, відновлення дефісів, очищення OCR
extract_hierarchical_content fn extract_hierarchical_content(&mut self, page_index: usize) -> Result<Vec<ContentElement>> Структурований дерево вмісту з тегованих PDF

Конвертація

Метод Сигнатура Опис
to_markdown fn to_markdown(&mut self, page_index: usize, options: &ConversionOptions) -> Result<String> Конвертувати сторінку у Markdown
to_html fn to_html(&mut self, page_index: usize, options: &ConversionOptions) -> Result<String> Конвертувати сторінку у HTML
to_plain_text fn to_plain_text(&mut self, page_index: usize) -> Result<String> Конвертувати сторінку у простий текст
to_markdown_all fn to_markdown_all(&mut self, options: &ConversionOptions) -> Result<String> Усі сторінки у Markdown
to_html_all fn to_html_all(&mut self, options: &ConversionOptions) -> Result<String> Усі сторінки у HTML
to_plain_text_all fn to_plain_text_all(&mut self) -> Result<String> Усі сторінки у простий текст
to_markdown_with_ocr fn to_markdown_with_ocr(&mut self, page_index: usize, options: &ConversionOptions) -> Result<String> Markdown з OCR-резервом

Вилучення зображень

Метод Сигнатура Опис
extract_images fn extract_images(&mut self, page_index: usize) -> Result<Vec<ImageInfo>> Метадані зображення та необроблені дані сторінки
extract_images_to_files fn extract_images_to_files(&mut self, page_index: usize, output_dir: &str) -> Result<Vec<PathBuf>> Витягти та зберегти зображення на диск

Вилучення шляхів та графіки

Метод Сигнатура Опис
extract_paths fn extract_paths(&mut self, page_index: usize) -> Result<Vec<PathContent>> Векторна графіка зі сторінки
extract_paths_in_rect fn extract_paths_in_rect(&mut self, page_index: usize, rect: Rect) -> Result<Vec<PathContent>> Шляхи в межах прямокутної області

Сторінка Information

Метод Сигнатура Опис
get_page_info fn get_page_info(&mut self, page_index: usize) -> Result<PageInfo> Розміри сторінки, обертання, бокси
get_page_resources fn get_page_resources(&mut self, page_index: usize) -> Result<Object> Необроблений словник ресурсів
get_page_content_data fn get_page_content_data(&mut self, page_index: usize) -> Result<Vec<u8>> Необроблені байти потоку вмісту

Структура та доступність

Метод Сигнатура Опис
structure_tree fn structure_tree(&mut self) -> Result<Option<StructTreeRoot>> Теговане дерево структури
mark_info fn mark_info(&mut self) -> Result<MarkInfo> Словник MarkInfo (теговано, підозрілі)

Низькорівневий

Метод Сигнатура Опис
load_object fn load_object(&mut self, obj_ref: ObjectRef) -> Result<Object> Завантажити PDF-об’єкт за посиланням
resolve_object fn resolve_object(&mut self, obj: &Object) -> Result<Object> Розв’язати непрямі посилання
resolve_references fn resolve_references(&mut self, obj: &Object, max_depth: usize) -> Result<Object> Рекурсивно розв’язати всі посилання
check_for_circular_references fn check_for_circular_references(&mut self) -> Vec<(ObjectRef, ObjectRef)> Виявити циклічні ланцюги посилань

Pdf

Уніфікований високорівневий API. Один тип для вилучення, створення, редагування, пошуку та відповідності.

use pdf_oxide::api::Pdf;

Конструктори

Метод Сигнатура Опис
new fn new() -> Self Створити порожній екземпляр Pdf
open fn open(path: impl AsRef<Path>) -> Result<Self> Відкрити наявний PDF для читання
open_editor fn open_editor(path: impl AsRef<Path>) -> Result<DocumentEditor> Відкрити для структурного редагування
from_markdown fn from_markdown(content: &str) -> Result<Self> Створити PDF з Markdown
from_html fn from_html(content: &str) -> Result<Self> Створити PDF з HTML
from_text fn from_text(content: &str) -> Result<Self> Створити PDF з простого тексту
from_image fn from_image(path: impl AsRef<Path>) -> Result<Self> Створити PDF з файлу зображення
from_image_bytes fn from_image_bytes(data: &[u8]) -> Result<Self> Створити PDF з байтів зображення
from_images fn from_images<P: AsRef<Path>>(paths: &[P]) -> Result<Self> Багатосторінковий з зображень
from_qrcode fn from_qrcode(data: &str) -> Result<Self> PDF з QR-кодом
from_qrcode_with_options fn from_qrcode_with_options(data: &str, size: f32, ecl: &str) -> Result<Self> QR-код з довільним розміром та корекцією помилок
from_barcode fn from_barcode(data: &str, barcode_type: BarcodeType) -> Result<Self> PDF зі штрих-кодом
from_barcode_with_options fn from_barcode_with_options(data: &str, barcode_type: BarcodeType, width: f32, height: f32) -> Result<Self> Штрих-код з довільними розмірами

Вилучення

Метод Сигнатура Опис
page_count fn page_count(&mut self) -> Result<usize> Кількість сторінок
page fn page(&mut self, index: usize) -> Result<PdfPage> DOM-подібний дескриптор сторінки
to_markdown fn to_markdown(&mut self, page: usize) -> Result<String> Сторінка у Markdown
to_html fn to_html(&mut self, page: usize) -> Result<String> Сторінка у HTML
to_text fn to_text(&mut self, page: usize) -> Result<String> Сторінка у простий текст

Пошук

Метод Сигнатура Опис
search fn search(&mut self, pattern: &str) -> Result<Vec<SearchResult>> Пошук по всіх сторінках
search_with_options fn search_with_options(&mut self, pattern: &str, opts: &SearchOptions) -> Result<Vec<SearchResult>> Пошук з параметрами
search_page fn search_page(&mut self, page: usize, pattern: &str) -> Result<Vec<SearchResult>> Пошук на одній сторінці
highlight_matches fn highlight_matches(&mut self, pattern: &str) -> Result<usize> Додати анотації виділення для збігів

Метадані

Метод Сигнатура Опис
set_title fn set_title(&mut self, title: impl Into<String>) -> Result<()> Встановити назву документа
set_author fn set_author(&mut self, author: impl Into<String>) -> Result<()> Встановити автора
set_subject fn set_subject(&mut self, subject: impl Into<String>) -> Result<()> Встановити тему
set_keywords fn set_keywords(&mut self, keywords: impl Into<String>) -> Result<()> Встановити ключові слова

Метадані XMP

Метод Сигнатура Опис
xmp_metadata fn xmp_metadata(&mut self) -> Result<Option<XmpMetadata>> Повні метадані XMP
has_xmp_metadata fn has_xmp_metadata(&mut self) -> Result<bool> Перевірити наявність XMP
xmp_title fn xmp_title(&mut self) -> Result<Option<String>> XMP dc:title
xmp_creators fn xmp_creators(&mut self) -> Result<Vec<String>> XMP dc:creator list
xmp_description fn xmp_description(&mut self) -> Result<Option<String>> XMP dc:description
xmp_creator_tool fn xmp_creator_tool(&mut self) -> Result<Option<String>> XMP xmp:CreatorTool
xmp_create_date fn xmp_create_date(&mut self) -> Result<Option<String>> XMP xmp:CreateDate
xmp_modify_date fn xmp_modify_date(&mut self) -> Result<Option<String>> XMP xmp:ModifyDate
xmp_producer fn xmp_producer(&mut self) -> Result<Option<String>> XMP pdf:Producer

Мітки сторінок

Метод Сигнатура Опис
page_labels fn page_labels(&mut self) -> Result<Vec<PageLabelRange>> Діапазони міток сторінок
page_label fn page_label(&mut self, page: usize) -> Result<String> Мітка для конкретної сторінки
all_page_labels fn all_page_labels(&mut self) -> Result<Vec<String>> Мітки для кожної сторінки

Операції зі сторінками

Метод Сигнатура Опис
page_rotation fn page_rotation(&mut self, page: usize) -> Result<i32> Поточне обертання у градусах
set_page_rotation fn set_page_rotation(&mut self, page: usize, degrees: i32) -> Result<()> Встановити абсолютне обертання
rotate_page fn rotate_page(&mut self, page: usize, degrees: i32) -> Result<()> Додати відносне обертання
rotate_all_pages fn rotate_all_pages(&mut self, degrees: i32) -> Result<()> Обернути всі сторінки
page_media_box fn page_media_box(&mut self, page: usize) -> Result<[f32; 4]> Розміри MediaBox
set_page_media_box fn set_page_media_box(&mut self, page: usize, rect: [f32; 4]) -> Result<()> Встановити MediaBox
page_crop_box fn page_crop_box(&mut self, page: usize) -> Result<Option<[f32; 4]>> Розміри CropBox
set_page_crop_box fn set_page_crop_box(&mut self, page: usize, rect: [f32; 4]) -> Result<()> Встановити CropBox
crop_margins fn crop_margins(&mut self, left: f32, right: f32, top: f32, bottom: f32) -> Result<()> Обрізати всі сторінки за полями

Редагування вмісту

Метод Сигнатура Опис
save_page fn save_page(&mut self, page: PdfPage) -> Result<()> Зберегти змінену сторінку назад
erase_region fn erase_region(&mut self, page: usize, rect: [f32; 4]) -> Result<()> Вибілити прямокутну область
erase_regions fn erase_regions(&mut self, page: usize, rects: &[[f32; 4]]) -> Result<()> Вибілити кілька областей
clear_erase_regions fn clear_erase_regions(&mut self, page: usize) Очистити незавершені операції стирання

Анотації

Метод Сигнатура Опис
flatten_page_annotations fn flatten_page_annotations(&mut self, page: usize) -> Result<()> Вирівняти анотації на сторінці
flatten_all_annotations fn flatten_all_annotations(&mut self) -> Result<()> Вирівняти всі анотації
is_page_marked_for_flatten fn is_page_marked_for_flatten(&self, page: usize) -> bool Перевірити статус вирівнювання
unmark_page_for_flatten fn unmark_page_for_flatten(&mut self, page: usize) Зняти позначку зі сторінки

Форми

Метод Сигнатура Опис
flatten_forms_on_page fn flatten_forms_on_page(&mut self, page: usize) -> Result<()> Вирівняти форми на сторінці
flatten_forms fn flatten_forms(&mut self) -> Result<()> Вирівняти всі поля форми
is_page_marked_for_form_flatten fn is_page_marked_for_form_flatten(&self, page: usize) -> bool Перевірити чи форми сторінки позначені для вирівнювання
will_remove_acroform fn will_remove_acroform(&self) -> bool Перевірити чи AcroForm буде видалено при збереженні
export_form_data_fdf fn export_form_data_fdf(&mut self, output_path: impl AsRef<Path>) -> Result<()> Експортувати дані форми як FDF
export_form_data_xfdf fn export_form_data_xfdf(&mut self, output_path: impl AsRef<Path>) -> Result<()> Експортувати дані форми як XFDF

Редагування (затирання)

Метод Сигнатура Опис
apply_page_redactions fn apply_page_redactions(&mut self, page: usize) -> Result<()> Застосувати затирання на сторінці
apply_all_redactions fn apply_all_redactions(&mut self) -> Result<()> Застосувати всі незавершені затирання
is_page_marked_for_redaction fn is_page_marked_for_redaction(&self, page: usize) -> bool Перевірити чи сторінка має незавершені затирання
unmark_page_for_redaction fn unmark_page_for_redaction(&mut self, page: usize) Видалити незавершені затирання для сторінки

Зображення

Метод Сигнатура Опис
page_images fn page_images(&mut self, page: usize) -> Result<Vec<ImageInfo>> Перелічити зображення на сторінці
reposition_image fn reposition_image(&mut self, page: usize, image_index: usize, x: f32, y: f32) -> Result<()> Перемістити зображення
resize_image fn resize_image(&mut self, page: usize, image_index: usize, width: f32, height: f32) -> Result<()> Змінити розмір зображення
set_image_bounds fn set_image_bounds(&mut self, page: usize, image_index: usize, rect: [f32; 4]) -> Result<()> Встановити обмежувальний прямокутник зображення
clear_image_modifications fn clear_image_modifications(&mut self, page: usize) Очистити незавершені зміни зображень
has_image_modifications fn has_image_modifications(&self, page: usize) -> bool Перевірити незавершені зміни зображень

Вбудовані файли

Метод Сигнатура Опис
embed_file fn embed_file(&mut self, name: &str, data: Vec<u8>) -> Result<()> Прикріпити файл
embed_file_with_options fn embed_file_with_options(&mut self, file: EmbeddedFile) -> Result<()> Прикріпити з повною конфігурацією
pending_embedded_files fn pending_embedded_files(&self) -> &[EmbeddedFile] Перелічити незавершені файлові вкладення
clear_embedded_files fn clear_embedded_files(&mut self) Очистити незавершені файлові вкладення

Рендеринг (потрібна функція rendering)

Метод Сигнатура Опис
render_page fn render_page(&mut self, page: usize) -> Result<RenderedImage> Рендерити у зображення
render_page_with_options fn render_page_with_options(&mut self, page: usize, opts: &RenderOptions) -> Result<RenderedImage> Рендерити з параметрами
render_page_to_file fn render_page_to_file(&mut self, page: usize, path: impl AsRef<Path>) -> Result<()> Рендерити та зберегти у файл
render_page_to_file_with_dpi fn render_page_to_file_with_dpi(&mut self, page: usize, path: impl AsRef<Path>, dpi: f32) -> Result<()> Рендерити з довільним DPI

Збереження

Метод Сигнатура Опис
save fn save(&mut self, path: impl AsRef<Path>) -> Result<()> Зберегти у файл
save_as fn save_as(&mut self, path: impl AsRef<Path>) -> Result<()> Зберегти в інший файл
save_encrypted fn save_encrypted(&mut self, path: impl AsRef<Path>, user_password: &str, owner_password: &str) -> Result<()> Зберегти із захистом паролем
save_with_encryption fn save_with_encryption(&mut self, path: impl AsRef<Path>, config: EncryptionConfig) -> Result<()> Зберегти з повною конфігурацією шифрування
as_bytes fn as_bytes(&self) -> &[u8] Байти PDF (режим створення)
into_bytes fn into_bytes(mut self) -> Vec<u8> Спожити та повернути байти PDF
to_bytes fn to_bytes(&mut self) -> Result<Vec<u8>> Згенерувати байти PDF
to_markdown_file fn to_markdown_file(&mut self, path: impl AsRef<Path>) -> Result<()> Зберегти всі сторінки як файл Markdown

Аксесори

Метод Сигнатура Опис
source_path fn source_path(&self) -> Option<&Path> Шлях відкритого файлу
editor fn editor(&mut self) -> Option<&mut DocumentEditor> Доступ до базового редактора
config fn config(&self) -> &PdfConfig Поточна конфігурація
is_modified fn is_modified(&self) -> bool Чи документ має незбережені зміни

PdfBuilder

Fluent builder для створення PDF з метаданими та конфігурацією макету.

use pdf_oxide::api::PdfBuilder;
use pdf_oxide::writer::PageSize;
Метод Сигнатура Опис
new fn new() -> Self Створити новий builder
title fn title(self, title: impl Into<String>) -> Self Встановити назву
author fn author(self, author: impl Into<String>) -> Self Встановити автора
subject fn subject(self, subject: impl Into<String>) -> Self Встановити тему
keywords fn keywords(self, keywords: impl Into<String>) -> Self Встановити ключові слова
page_size fn page_size(self, size: PageSize) -> Self Встановити розмір сторінки
margin fn margin(self, margin: f32) -> Self Встановити однакові поля
margins fn margins(self, left: f32, right: f32, top: f32, bottom: f32) -> Self Встановити окремі поля
font_size fn font_size(self, size: f32) -> Self Встановити розмір шрифту
line_height fn line_height(self, height: f32) -> Self Встановити висоту рядка
from_markdown fn from_markdown(self, content: &str) -> Result<Pdf> Побудувати з Markdown
from_html fn from_html(self, content: &str) -> Result<Pdf> Побудувати з HTML
from_text fn from_text(self, content: &str) -> Result<Pdf> Побудувати з простого тексту
from_image fn from_image(self, path: impl AsRef<Path>) -> Result<Pdf> Побудувати з зображення
from_image_bytes fn from_image_bytes(self, data: &[u8]) -> Result<Pdf> Побудувати з байтів зображення
from_images fn from_images<P: AsRef<Path>>(self, paths: &[P]) -> Result<Pdf> Побудувати з кількох зображень
from_qrcode fn from_qrcode(self, data: &str) -> Result<Pdf> Побудувати з даних QR-коду
from_barcode fn from_barcode(self, data: &str, barcode_type: BarcodeType) -> Result<Pdf> Побудувати з даних штрих-коду

DocumentBuilder

Низькорівневий builder для макету сторінки з точністю до пікселя.

use pdf_oxide::writer::DocumentBuilder;
Метод Сигнатура Опис
new fn new() -> Self Створити новий builder
metadata fn metadata(self, metadata: DocumentMetadata) -> Self Встановити метадані документа
page fn page(&mut self, size: PageSize) -> FluentPageBuilder Додати сторінку з іменованим розміром
letter_page fn letter_page(&mut self) -> FluentPageBuilder Додати сторінку US Letter
a4_page fn a4_page(&mut self) -> FluentPageBuilder Додати сторінку A4
build fn build(self) -> Result<Vec<u8>> Згенерувати байти PDF
save fn save(self, path: impl AsRef<Path>) -> Result<()> Зберегти у файл

FluentPageBuilder

Повертається DocumentBuilder::page(). Ланцюжок викликів для додавання вмісту на сторінку:

Метод Опис
text(text, x, y, size) Розмістити текст за точними координатами
heading(level, text) Додати заголовок (H1-H6)
paragraph(text) Додати абзац з автоперенесенням
space(points) Додати вертикальний відступ
horizontal_rule() Намалювати горизонтальну лінію
link_url(url) Додати анотацію URL-посилання
link_page(page) Додати внутрішнє посилання на сторінку
highlight(color) Додати анотацію виділення
underline(color) Додати анотацію підкреслення
strikeout(color) Додати анотацію закреслення
sticky_note(text) Додати нотатку
stamp(stamp_type) Додати анотацію штампа
freetext(rect, text) Додати анотацію вільного тексту
watermark(text) Додати накладку водяного знаку
add_annotation(annotation) Додати будь-який тип анотації
done() Завершити сторінку, повернутися до builder

DocumentEditor

Відкриття існуючого PDF для структурних модифікацій.

use pdf_oxide::editor::DocumentEditor;

Ядро

Метод Сигнатура Опис
open fn open(path: impl AsRef<Path>) -> Result<Self> Відкрити файл для редагування
is_modified fn is_modified(&self) -> bool Перевірити незбережені зміни
source_path fn source_path(&self) -> &str Оригінальний шлях файлу
source fn source(&self) -> &PdfDocument Базовий документ (читання)
source_mut fn source_mut(&mut self) -> &mut PdfDocument Базовий документ (запис)
version fn version(&self) -> (u8, u8) Версія PDF
current_page_count fn current_page_count(&self) -> usize Кількість сторінок

Метадані

Метод Опис
title() / set_title() Отримати/встановити назву документа
author() / set_author() Отримати/встановити автора
subject() / set_subject() Отримати/встановити тему
keywords() / set_keywords() Отримати/встановити ключові слова

Операції зі сторінками

Метод Опис
get_page_rotation() / set_page_rotation() Отримати/встановити обертання
rotate_page_by() Додати відносне обертання
rotate_all_pages() Обернути всі сторінки
get_page_media_box() / set_page_media_box() Отримати/встановити MediaBox
get_page_crop_box() / set_page_crop_box() Отримати/встановити CropBox
crop_margins() Обрізати всі сторінки за полями
erase_region() / erase_regions() Вибілити вміст
extract_pages() Витягти сторінки в окремий файл
merge_from() / merge_pages_from() Об’єднати сторінки з іншого PDF

Редагування у стилі DOM

Метод Сигнатура Опис
get_page fn get_page(&mut self, page_index: usize) -> Result<PdfPage> Отримати DOM-дескриптор сторінки
save_page fn save_page(&mut self, page: PdfPage) -> Result<()> Зберегти змінену сторінку
edit_page fn edit_page<F>(&mut self, page_index: usize, f: F) -> Result<()> Редагувати з closure
page_editor fn page_editor(&mut self, page_index: usize) -> Result<PageEditor> Отримати редактор сторінки
get_page_content fn get_page_content(&mut self, page_index: usize) -> Result<Option<StructureElement>> Отримати структуру сторінки
set_page_content fn set_page_content(&mut self, page_index: usize, content: StructureElement) -> Result<()> Встановити структуру сторінки
modify_structure fn modify_structure<F>(&mut self, page_index: usize, f: F) -> Result<()> Змінити структуру з closure

Поля форми

Метод Опис
get_form_fields() Перелічити всі поля форми
get_form_field_value(name) Отримати значення поля за іменем
set_form_field_value(name, value: FormFieldValue) Встановити значення поля за іменем
has_form_field(name) Перевірити існування поля
add_form_field(widget) Додати нове поле форми
flatten_forms_on_page(page) Вирівняти форми на сторінці
flatten_forms() Вирівняти всі поля форми
export_form_data_fdf(path) Експортувати як FDF
export_form_data_xfdf(path) Експортувати як XFDF
has_xfa() Перевірити наявність форм XFA
analyze_xfa() Аналізувати дані форми XFA
convert_xfa_to_acroform() Конвертувати XFA у AcroForm

Анотації та вирівнювання

Метод Опис
flatten_page_annotations(page) Вирівняти анотації на сторінці
flatten_all_annotations() Вирівняти всі анотації
get_page_annotations(page) Перелічити анотації на сторінці

Вбудовані файли

Метод Опис
embed_file(name, data) Прикріпити файл
embed_file_with_options(file) Прикріпити з повною конфігурацією
pending_embedded_files() Перелічити незавершені вкладення
clear_embedded_files() Очистити незавершені вкладення

Типи DOM

PdfPage

Представляє одну сторінку з елементами для запиту та редагування.

Метод Опис
elements() Усі елементи на сторінці
text_elements() Тільки текстові елементи
image_elements() Тільки елементи зображень
path_elements() Тільки елементи шляхів/графіки
table_elements() Тільки елементи таблиць
find_text_containing(needle) Знайти текст за підрядком
set_text(id, new_text) Замінити текст за ID елемента

PdfText

Метод Повертає Опис
id() ElementId Унікальний ідентифікатор елемента
text() &str Текстовий вміст
bbox() Rect Обмежувальний прямокутник
font_name() &str Назва шрифту
font_size() f32 Розмір шрифту у пунктах
is_bold() bool Жирний
is_italic() bool Курсив
color() Color Колір тексту
set_text(new) Замінити текст
append(text) Додати текст
replace(old, new) usize Замінити входження
clear() Очистити текст

PdfImage

Метод Повертає Опис
id() ElementId Унікальний ідентифікатор
bbox() Rect Обмежувальний прямокутник
format() ImageFormat Формат зображення
dimensions() (u32, u32) Ширина та висота у пікселях
aspect_ratio() f32 Співвідношення ширини/висоти
is_grayscale() bool Перевірка на відтінки сірого
alt_text() Option<&str> Альтернативний текст для доступності
resolution() Option<(f32, f32)> DPI як (горизонтальний, вертикальний)

PdfPath

Метод Повертає Опис
id() ElementId Унікальний ідентифікатор
bbox() Rect Обмежувальний прямокутник
operations() &[PathOperation] Операції малювання шляху
stroke_color() Option<Color> Колір обводки
fill_color() Option<Color> Колір заливки
stroke_width() f32 Ширина лінії
line_cap() LineCap Стиль завершення лінії
line_join() LineJoin Стиль з’єднання ліній
is_closed() bool Чи шлях замкнутий
to_svg() String Конвертувати у дані SVG-шляху
to_svg_document() String Конвертувати у окремий SVG

PdfTable

Метод Повертає Опис
id() ElementId Унікальний ідентифікатор
bbox() Rect Обмежувальний прямокутник
row_count() usize Кількість рядків
column_count() usize Кількість стовпців
has_header() bool Чи перший рядок є заголовком
get_cell(row, col) Option<&TableCellContent> Вміст комірки
caption() Option<&str> Підпис таблиці

ТекстSearcher

use pdf_oxide::search::{TextSearcher, SearchOptions, SearchResult};

ПошукOptions

Поле Тип За замовчуванням Опис
case_sensitive bool true Пошук з урахуванням регістру
literal bool false Трактувати шаблон як літерал (не regex)
whole_word bool false Шукати лише цілі слова
max_results Option<usize> None Обмежити кількість результатів
page_range Option<(usize, usize)> None Обмежити діапазоном сторінок

ПошукResult

Поле Тип Опис
page usize Індекс сторінки
text String Знайдений текст
x f64 Позиція X у пунктах
y f64 Позиція Y у пунктах

FormField та XmpExtractor

FormField (read)

Поле Тип Опис
name String Повне кваліфіковане ім’я поля
field_type FieldType Текст, Кнопка, Вибір, Підпис
value Option<String> Поточне значення
rect Option<Rect> Межі віджета
flags u32 Прапорці поля

XmpExtractor

use pdf_oxide::extractors::xmp::XmpExtractor;

Статичні методи, що працюють з PdfDocument:

Метод Повертає Опис
extract(doc) Result<Option<XmpMetadata>> Витягти метадані XMP

XmpMetadata

Поле Тип Опис
title Option<String> dc:title
creators Vec<String> dc:creator
description Option<String> dc:description
creator_tool Option<String> xmp:CreatorTool
create_date Option<String> xmp:CreateDate
modify_date Option<String> xmp:ModifyDate
producer Option<String> pdf:Producer

СторінкаLabelExtractor

use pdf_oxide::extractors::page_labels::PageLabelExtractor;
Метод Повертає Опис
extract(doc) Result<Vec<PageLabelRange>> Витягти визначення міток сторінок
label_for_page(doc, page) Result<String> Обчислити мітку для конкретної сторінки
all_labels(doc) Result<Vec<String>> Обчислити мітки для кожної сторінки

Окремі функції

use pdf_oxide::document::{parse_header, parse_trailer};
Функція Сигнатура Опис
parse_header fn parse_header<R: Read + Seek>(reader: &mut R, lenient: bool) -> Result<(u8, u8, u64)> Розібрати заголовок PDF, повертає (major, minor, byte_offset)
parse_trailer fn parse_trailer<R: Read>(reader: &mut R) -> Result<Object> Розібрати словник trailer

Наступні кроки