Skip to content

Справочник Rust API

На этой странице описаны все публичные структуры и методы в pdf_oxide. Для привязок Python см. Справочник Python API. Подробности о типах и перечислениях см. в Типы и перечисления.

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 Необработанный словарь трейлера
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> Конвертация страницы в plain text
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>> Контуры в прямоугольной области

Информация о странице

Метод Сигнатура Описание
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 (tagged, suspects)

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

Метод Сигнатура Описание
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>> Full XMP metadata
has_xmp_metadata fn has_xmp_metadata(&mut self) -> Result<bool> Check XMP presence
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<()> White-out a rectangular area
erase_regions fn erase_regions(&mut self, page: usize, rects: &[[f32; 4]]) -> Result<()> White-out multiple areas
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 Check if page forms are marked for flatten
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 (requires rendering feature)

Метод Сигнатура Описание
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-конструктор для создания PDF с метаданными и конфигурацией макета.

use pdf_oxide::api::PdfBuilder;
use pdf_oxide::writer::PageSize;
Метод Сигнатура Описание
new fn new() -> Self Создать новый конструктор
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

Низкоуровневый конструктор для пиксельно-точного макета страниц.

use pdf_oxide::writer::DocumentBuilder;
Метод Сигнатура Описание
new fn new() -> Self Создать новый конструктор
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() Завершить страницу, вернуться к конструктору

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 version
current_page_count fn current_page_count(&self) -> usize Количество страниц

Метаданные

Метод Описание
title() / set_title() Get/set document title
author() / set_author() Get/set author
subject() / set_subject() Get/set subject
keywords() / set_keywords() Get/set keywords

Операции со страницами

Метод Описание
get_page_rotation() / set_page_rotation() Get/set rotation
rotate_page_by() Добавить относительный поворот
rotate_all_pages() Повернуть все страницы
get_page_media_box() / set_page_media_box() Get/set MediaBox
get_page_crop_box() / set_page_crop_box() Get/set 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<()> Редактирование с замыканием
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<()> Изменение структуры с замыканием

Поля форм

Метод Описание
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> Заголовок таблицы

TextSearcher

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

SearchOptions

Field Type Default Описание
case_sensitive bool true Учёт регистра при сопоставлении
literal bool false Обрабатывать шаблон как литерал (не регулярное выражение)
whole_word bool false Сопоставлять только целые слова
max_results Option<usize> None Ограничить количество результатов
page_range Option<(usize, usize)> None Ограничить диапазоном страниц

SearchResult

Поле Тип Описание
page usize Индекс страницы
text String Найденный текст
x f64 X position in points
y f64 Y position in points

FormField и XmpExtractor

FormField (read)

Поле Тип Описание
name String Полностью квалифицированное имя поля
field_type FieldType Text, Button, Choice, Signature
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

PageLabelExtractor

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> Разбор словаря трейлера

Следующие шаги