Skip to content

Referência da API Rust

Esta página documenta cada struct e método público em pdf_oxide. Para os bindings Python, veja a Referência da API Python. Para detalhes de tipos e enums, veja Tipos e Enums.

PdfDocument

O handle de documento de baixo nível. Abrir um arquivo PDF, extrair texto, imagens e metadados.

use pdf_oxide::PdfDocument;

Abertura e Autenticação

Método Assinatura Descrição
open fn open(path: impl AsRef<Path>) -> Result<Self> Abrir um arquivo PDF do disco
open_from_bytes fn open_from_bytes(data: Vec<u8>) -> Result<Self> Abrir um PDF de bytes na memória
open_with_config fn open_with_config(path: impl AsRef<Path>, config: impl Any) -> Result<Self> Abrir com configuração do parser
authenticate fn authenticate(&mut self, password: &[u8]) -> Result<bool> Autenticar com senha de usuário ou proprietário

Metadados

Método Assinatura Descrição
page_count fn page_count(&mut self) -> Result<usize> Número de páginas no documento
page_count_u32 fn page_count_u32(&mut self) -> u32 Contagem de páginas como u32 (0 em erro)
version fn version(&self) -> (u8, u8) Versão do PDF como (major, minor)
trailer fn trailer(&self) -> &Object Dicionário trailer bruto
catalog fn catalog(&mut self) -> Result<Object> Dicionário de catálogo do documento

Extração de Texto

Método Assinatura Descrição
extract_text fn extract_text(&mut self, page_index: usize) -> Result<String> Texto simples de uma única página
extract_all_text fn extract_all_text(&mut self) -> Result<String> Texto simples de todas as páginas
extract_spans fn extract_spans(&mut self, page_index: usize) -> Result<Vec<TextSpan>> Trechos de texto com metadados de fonte
extract_spans_with_config fn extract_spans_with_config(&mut self, page_index: usize, config: &TextConfig) -> Result<Vec<TextSpan>> Spans com configuração personalizada
extract_chars fn extract_chars(&mut self, page_index: usize) -> Result<Vec<TextChar>> Posições e metadados por caractere
extract_text_with_ocr fn extract_text_with_ocr(&mut self, page_index: usize) -> Result<String> Texto com fallback OCR para páginas digitalizadas
extract_spans_with_ocr fn extract_spans_with_ocr(&mut self, page_index: usize) -> Result<Vec<TextSpan>> Spans com fallback OCR
apply_intelligent_text_processing fn apply_intelligent_text_processing(&self, spans: Vec<TextSpan>) -> Vec<TextSpan> Expansão de ligaduras, reconstrução de hifens, limpeza OCR
extract_hierarchical_content fn extract_hierarchical_content(&mut self, page_index: usize) -> Result<Vec<ContentElement>> Árvore de conteúdo estruturado de PDFs marcados

Conversion

Método Assinatura Descrição
to_markdown fn to_markdown(&mut self, page_index: usize, options: &ConversionOptions) -> Result<String> Converter página para Markdown
to_html fn to_html(&mut self, page_index: usize, options: &ConversionOptions) -> Result<String> Converter página para HTML
to_plain_text fn to_plain_text(&mut self, page_index: usize) -> Result<String> Converter página para texto simples
to_markdown_all fn to_markdown_all(&mut self, options: &ConversionOptions) -> Result<String> Todas as páginas para Markdown
to_html_all fn to_html_all(&mut self, options: &ConversionOptions) -> Result<String> Todas as páginas para HTML
to_plain_text_all fn to_plain_text_all(&mut self) -> Result<String> Todas as páginas para texto simples
to_markdown_with_ocr fn to_markdown_with_ocr(&mut self, page_index: usize, options: &ConversionOptions) -> Result<String> Markdown com fallback OCR

Extração de Imagens

Método Assinatura Descrição
extract_images fn extract_images(&mut self, page_index: usize) -> Result<Vec<ImageInfo>> Metadados de imagem e dados brutos de uma página
extract_images_to_files fn extract_images_to_files(&mut self, page_index: usize, output_dir: &str) -> Result<Vec<PathBuf>> Extrair e salvar imagens no disco

Path and Graphics Extraction

Método Assinatura Descrição
extract_paths fn extract_paths(&mut self, page_index: usize) -> Result<Vec<PathContent>> Gráficos vetoriais de uma página
extract_paths_in_rect fn extract_paths_in_rect(&mut self, page_index: usize, rect: Rect) -> Result<Vec<PathContent>> Caminhos dentro de uma região retangular

Página Information

Método Assinatura Descrição
get_page_info fn get_page_info(&mut self, page_index: usize) -> Result<PageInfo> Dimensões da página, rotação, caixas
get_page_resources fn get_page_resources(&mut self, page_index: usize) -> Result<Object> Dicionário de recursos bruto
get_page_content_data fn get_page_content_data(&mut self, page_index: usize) -> Result<Vec<u8>> Bytes brutos do fluxo de conteúdo

Estrutura and Accessibility

Método Assinatura Descrição
structure_tree fn structure_tree(&mut self) -> Result<Option<StructTreeRoot>> Árvore de estrutura marcada
mark_info fn mark_info(&mut self) -> Result<MarkInfo> Dicionário MarkInfo (marcado, suspeitos)

Low-Level

Método Assinatura Descrição
load_object fn load_object(&mut self, obj_ref: ObjectRef) -> Result<Object> Carregar um objeto PDF por referência
resolve_object fn resolve_object(&mut self, obj: &Object) -> Result<Object> Resolver referências indiretas
resolve_references fn resolve_references(&mut self, obj: &Object, max_depth: usize) -> Result<Object> Resolver recursivamente todas as referências
check_for_circular_references fn check_for_circular_references(&mut self) -> Vec<(ObjectRef, ObjectRef)> Detectar cadeias de referência circular

Pdf

A API unificada de alto nível. Um tipo para extração, criação, edição, busca e conformidade.

use pdf_oxide::api::Pdf;

Construtors

Método Assinatura Descrição
new fn new() -> Self Criar uma instância Pdf vazia
open fn open(path: impl AsRef<Path>) -> Result<Self> Abrir PDF existente para leitura
open_editor fn open_editor(path: impl AsRef<Path>) -> Result<DocumentEditor> Abrir para edição estrutural
from_markdown fn from_markdown(content: &str) -> Result<Self> Criar PDF a partir de Markdown
from_html fn from_html(content: &str) -> Result<Self> Criar PDF a partir de HTML
from_text fn from_text(content: &str) -> Result<Self> Criar PDF a partir de texto simples
from_image fn from_image(path: impl AsRef<Path>) -> Result<Self> Criar PDF a partir de arquivo de imagem
from_image_bytes fn from_image_bytes(data: &[u8]) -> Result<Self> Criar PDF a partir de bytes de imagem
from_images fn from_images<P: AsRef<Path>>(paths: &[P]) -> Result<Self> Múltiplas páginas a partir de imagens
from_qrcode fn from_qrcode(data: &str) -> Result<Self> PDF contendo um código QR
from_qrcode_with_options fn from_qrcode_with_options(data: &str, size: f32, ecl: &str) -> Result<Self> Código QR com tamanho e correção de erros personalizados
from_barcode fn from_barcode(data: &str, barcode_type: BarcodeType) -> Result<Self> PDF contendo um código de barras
from_barcode_with_options fn from_barcode_with_options(data: &str, barcode_type: BarcodeType, width: f32, height: f32) -> Result<Self> Código de barras com dimensões personalizadas

Extraction

Método Assinatura Descrição
page_count fn page_count(&mut self) -> Result<usize> Número de páginas
page fn page(&mut self, index: usize) -> Result<PdfPage> DOM-like página handle
to_markdown fn to_markdown(&mut self, page: usize) -> Result<String> Página para Markdown
to_html fn to_html(&mut self, page: usize) -> Result<String> Página para HTML
to_text fn to_text(&mut self, page: usize) -> Result<String> Página para texto simples

Busca

Método Assinatura Descrição
search fn search(&mut self, pattern: &str) -> Result<Vec<SearchResult>> Search todas as páginas
search_with_options fn search_with_options(&mut self, pattern: &str, opts: &SearchOptions) -> Result<Vec<SearchResult>> Buscar com opções
search_page fn search_page(&mut self, page: usize, pattern: &str) -> Result<Vec<SearchResult>> Search single página
highlight_matches fn highlight_matches(&mut self, pattern: &str) -> Result<usize> Adicionar anotações de destaque para correspondências

Metadados

Método Assinatura Descrição
set_title fn set_title(&mut self, title: impl Into<String>) -> Result<()> Definir título do documento
set_author fn set_author(&mut self, author: impl Into<String>) -> Result<()> Definir autor
set_subject fn set_subject(&mut self, subject: impl Into<String>) -> Result<()> Definir assunto
set_keywords fn set_keywords(&mut self, keywords: impl Into<String>) -> Result<()> Definir palavras-chave

Metadados XMP

Método Assinatura Descrição
xmp_metadata fn xmp_metadata(&mut self) -> Result<Option<XmpMetadata>> Metadados XMP completos
has_xmp_metadata fn has_xmp_metadata(&mut self) -> Result<bool> Verificar presença de 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

Rótulos de Página

Método Assinatura Descrição
page_labels fn page_labels(&mut self) -> Result<Vec<PageLabelRange>> Intervalos de rótulos de página
page_label fn page_label(&mut self, page: usize) -> Result<String> Label for a specific página
all_page_labels fn all_page_labels(&mut self) -> Result<Vec<String>> Labels for every página

Operações de Pagina

Método Assinatura Descrição
page_rotation fn page_rotation(&mut self, page: usize) -> Result<i32> Rotação atual em graus
set_page_rotation fn set_page_rotation(&mut self, page: usize, degrees: i32) -> Result<()> Definir rotação absoluta
rotate_page fn rotate_page(&mut self, page: usize, degrees: i32) -> Result<()> Adicionar rotação relativa
rotate_all_pages fn rotate_all_pages(&mut self, degrees: i32) -> Result<()> Rotacionar todas as páginas
page_media_box fn page_media_box(&mut self, page: usize) -> Result<[f32; 4]> Dimensões do MediaBox
set_page_media_box fn set_page_media_box(&mut self, page: usize, rect: [f32; 4]) -> Result<()> Definir MediaBox
page_crop_box fn page_crop_box(&mut self, page: usize) -> Result<Option<[f32; 4]>> Dimensões do CropBox
set_page_crop_box fn set_page_crop_box(&mut self, page: usize, rect: [f32; 4]) -> Result<()> Definir CropBox
crop_margins fn crop_margins(&mut self, left: f32, right: f32, top: f32, bottom: f32) -> Result<()> Crop todas as páginas by margins

Edição de Conteúdo

Método Assinatura Descrição
save_page fn save_page(&mut self, page: PdfPage) -> Result<()> Save modified página back
erase_region fn erase_region(&mut self, page: usize, rect: [f32; 4]) -> Result<()> Branquear uma área retangular
erase_regions fn erase_regions(&mut self, page: usize, rects: &[[f32; 4]]) -> Result<()> Branquear múltiplas áreas
clear_erase_regions fn clear_erase_regions(&mut self, page: usize) Limpar operações de apagamento pendentes

Anotações

Método Assinatura Descrição
flatten_page_annotations fn flatten_page_annotations(&mut self, page: usize) -> Result<()> Achatar anotações em uma página
flatten_all_annotations fn flatten_all_annotations(&mut self) -> Result<()> Achatar todas as anotações
is_page_marked_for_flatten fn is_page_marked_for_flatten(&self, page: usize) -> bool Verificar status de achatamento
unmark_page_for_flatten fn unmark_page_for_flatten(&mut self, page: usize) Unmark a página

Formulários

Método Assinatura Descrição
flatten_forms_on_page fn flatten_forms_on_page(&mut self, page: usize) -> Result<()> Achatar formulários em uma página
flatten_forms fn flatten_forms(&mut self) -> Result<()> Achatar todos os campos de formulário
is_page_marked_for_form_flatten fn is_page_marked_for_form_flatten(&self, page: usize) -> bool Check if página forms are marked for flatten
will_remove_acroform fn will_remove_acroform(&self) -> bool Verificar se AcroForm será removido ao salvar
export_form_data_fdf fn export_form_data_fdf(&mut self, output_path: impl AsRef<Path>) -> Result<()> Exportar dados de formulário como FDF
export_form_data_xfdf fn export_form_data_xfdf(&mut self, output_path: impl AsRef<Path>) -> Result<()> Exportar dados de formulário como XFDF

Redacaos

Método Assinatura Descrição
apply_page_redactions fn apply_page_redactions(&mut self, page: usize) -> Result<()> Aplicar redações em uma página
apply_all_redactions fn apply_all_redactions(&mut self) -> Result<()> Aplicar todas as redações pendentes
is_page_marked_for_redaction fn is_page_marked_for_redaction(&self, page: usize) -> bool Check if página has pending redactions
unmark_page_for_redaction fn unmark_page_for_redaction(&mut self, page: usize) Remove pending redactions for a página

Imagens

Método Assinatura Descrição
page_images fn page_images(&mut self, page: usize) -> Result<Vec<ImageInfo>> List images on a página
reposition_image fn reposition_image(&mut self, page: usize, image_index: usize, x: f32, y: f32) -> Result<()> Mover uma imagem
resize_image fn resize_image(&mut self, page: usize, image_index: usize, width: f32, height: f32) -> Result<()> Redimensionar uma imagem
set_image_bounds fn set_image_bounds(&mut self, page: usize, image_index: usize, rect: [f32; 4]) -> Result<()> Definir caixa delimitadora da imagem
clear_image_modifications fn clear_image_modifications(&mut self, page: usize) Limpar modificações de imagem pendentes
has_image_modifications fn has_image_modifications(&self, page: usize) -> bool Verificar modificações de imagem pendentes

Arquivos Incorporados

Método Assinatura Descrição
embed_file fn embed_file(&mut self, name: &str, data: Vec<u8>) -> Result<()> Anexar um arquivo
embed_file_with_options fn embed_file_with_options(&mut self, file: EmbeddedFile) -> Result<()> Anexar com configuração completa
pending_embedded_files fn pending_embedded_files(&self) -> &[EmbeddedFile] Listar anexos de arquivo pendentes
clear_embedded_files fn clear_embedded_files(&mut self) Limpar anexos de arquivo pendentes

Renderização (requer feature rendering)

Método Assinatura Descrição
render_page fn render_page(&mut self, page: usize) -> Result<RenderedImage> Renderizar para imagem
render_page_with_options fn render_page_with_options(&mut self, page: usize, opts: &RenderOptions) -> Result<RenderedImage> Renderizar com opções
render_page_to_file fn render_page_to_file(&mut self, page: usize, path: impl AsRef<Path>) -> Result<()> Renderizar e salvar em arquivo
render_page_to_file_with_dpi fn render_page_to_file_with_dpi(&mut self, page: usize, path: impl AsRef<Path>, dpi: f32) -> Result<()> Renderizar com DPI personalizado

Salvando

Método Assinatura Descrição
save fn save(&mut self, path: impl AsRef<Path>) -> Result<()> Salvar em arquivo
save_as fn save_as(&mut self, path: impl AsRef<Path>) -> Result<()> Salvar em um arquivo diferente
save_encrypted fn save_encrypted(&mut self, path: impl AsRef<Path>, user_password: &str, owner_password: &str) -> Result<()> Salvar com proteção por senha
save_with_encryption fn save_with_encryption(&mut self, path: impl AsRef<Path>, config: CriptografiaConfig) -> Result<()> Salvar com configuração completa de criptografia
as_bytes fn as_bytes(&self) -> &[u8] Bytes do PDF (modo de criação)
into_bytes fn into_bytes(mut self) -> Vec<u8> Consumir e retornar bytes do PDF
to_bytes fn to_bytes(&mut self) -> Result<Vec<u8>> Gerar bytes do PDF
to_markdown_file fn to_markdown_file(&mut self, path: impl AsRef<Path>) -> Result<()> Save todas as páginas as Markdown file

Acessores

Método Assinatura Descrição
source_path fn source_path(&self) -> Option<&Path> Caminho do arquivo aberto
editor fn editor(&mut self) -> Option<&mut DocumentEditor> Acessar o editor subjacente
config fn config(&self) -> &PdfConfig Configuração atual
is_modified fn is_modified(&self) -> bool Se o documento tem alterações não salvas

PdfBuilder

Builder fluente para criar PDFs com metadados e configuração de layout.

use pdf_oxide::api::PdfBuilder;
use pdf_oxide::writer::PageSize;
Método Assinatura Descrição
new fn new() -> Self Criar um novo builder
title fn title(self, title: impl Into<String>) -> Self Definir título
author fn author(self, author: impl Into<String>) -> Self Definir autor
subject fn subject(self, subject: impl Into<String>) -> Self Definir assunto
keywords fn keywords(self, keywords: impl Into<String>) -> Self Definir palavras-chave
page_size fn page_size(self, size: PageSize) -> Self Set página size
margin fn margin(self, margin: f32) -> Self Definir margens uniformes
margins fn margins(self, left: f32, right: f32, top: f32, bottom: f32) -> Self Definir margens individuais
font_size fn font_size(self, size: f32) -> Self Definir tamanho da fonte
line_height fn line_height(self, height: f32) -> Self Definir altura da linha
from_markdown fn from_markdown(self, content: &str) -> Result<Pdf> Construir a partir de Markdown
from_html fn from_html(self, content: &str) -> Result<Pdf> Construir a partir de HTML
from_text fn from_text(self, content: &str) -> Result<Pdf> Construir a partir de texto simples
from_image fn from_image(self, path: impl AsRef<Path>) -> Result<Pdf> Construir a partir de imagem
from_image_bytes fn from_image_bytes(self, data: &[u8]) -> Result<Pdf> Construir a partir de bytes de imagem
from_images fn from_images<P: AsRef<Path>>(self, paths: &[P]) -> Result<Pdf> Construir a partir de múltiplas imagens
from_qrcode fn from_qrcode(self, data: &str) -> Result<Pdf> Construir a partir de dados de código QR
from_barcode fn from_barcode(self, data: &str, barcode_type: BarcodeType) -> Result<Pdf> Construir a partir de dados de código de barras

DocumentBuilder

Low-level builder for pixel-precise página layout.

use pdf_oxide::writer::DocumentBuilder;
Método Assinatura Descrição
new fn new() -> Self Criar um novo builder
metadata fn metadata(self, metadata: DocumentMetadata) -> Self Definir metadados do documento
page fn page(&mut self, size: PageSize) -> FluentPageBuilder Add a página with named size
letter_page fn letter_page(&mut self) -> FluentPageBuilder Add US Letter página
a4_page fn a4_page(&mut self) -> FluentPageBuilder Add A4 página
build fn build(self) -> Result<Vec<u8>> Gerar bytes do PDF
save fn save(self, path: impl AsRef<Path>) -> Result<()> Salvar em arquivo

FluentPageBuilder

Retornado por DocumentBuilder::page(). Encadear chamadas para adicionar conteúdo a uma página:

Método Descrição
text(text, x, y, size) Posicionar texto em coordenadas exatas
heading(level, text) Adicionar um cabeçalho (H1-H6)
paragraph(text) Adicionar um parágrafo com quebra automática
space(points) Adicionar espaço vertical
horizontal_rule() Desenhar uma linha horizontal
link_url(url) Adicionar uma anotação de link URL
link_page(page) Add internal página link
highlight(color) Adicionar anotação de destaque
underline(color) Adicionar anotação de sublinhado
strikeout(color) Adicionar anotação de tachado
sticky_note(text) Adicionar uma nota adesiva
stamp(stamp_type) Adicionar uma anotação de carimbo
freetext(rect, text) Adicionar anotação de texto livre
watermark(text) Adicionar sobreposição de marca d’água
add_annotation(annotation) Adicionar qualquer tipo de anotação
done() Finalizar página, retornar ao builder

DocumentEditor

Abrir um PDF existente para modificações estruturais.

use pdf_oxide::editor::DocumentEditor;

Núcleo

Método Assinatura Descrição
open fn open(path: impl AsRef<Path>) -> Result<Self> Abrir arquivo para edição
is_modified fn is_modified(&self) -> bool Verificar alterações não salvas
source_path fn source_path(&self) -> &str Caminho do arquivo original
source fn source(&self) -> &PdfDocument Documento subjacente (leitura)
source_mut fn source_mut(&mut self) -> &mut PdfDocument Documento subjacente (escrita)
version fn version(&self) -> (u8, u8) Versão do PDF
current_page_count fn current_page_count(&self) -> usize Contagem de páginas

Metadados

Método Descrição
title() / set_title() Obter/definir título do documento
author() / set_author() Obter/definir autor
subject() / set_subject() Obter/definir assunto
keywords() / set_keywords() Obter/definir palavras-chave

Operações de Pagina

Método Descrição
get_page_rotation() / set_page_rotation() Obter/definir rotação
rotate_page_by() Adicionar rotação relativa
rotate_all_pages() Rotacionar todas as páginas
get_page_media_box() / set_page_media_box() Obter/definir MediaBox
get_page_crop_box() / set_page_crop_box() Obter/definir CropBox
crop_margins() Crop todas as páginas by margins
erase_region() / erase_regions() Branquear conteúdo
extract_pages() Extrair páginas para arquivo separado
merge_from() / merge_pages_from() Mesclar páginas de outro PDF

Edição Tipo DOM

Método Assinatura Descrição
get_page fn get_page(&mut self, page_index: usize) -> Result<PdfPage> Get DOM página handle
save_page fn save_page(&mut self, page: PdfPage) -> Result<()> Save modified página
edit_page fn edit_page<F>(&mut self, page_index: usize, f: F) -> Result<()> Editar com closure
page_editor fn page_editor(&mut self, page_index: usize) -> Result<PageEditor> Get página editor
get_page_content fn get_page_content(&mut self, page_index: usize) -> Result<Option<StructureElement>> Get página structure
set_page_content fn set_page_content(&mut self, page_index: usize, content: StructureElement) -> Result<()> Set página structure
modify_structure fn modify_structure<F>(&mut self, page_index: usize, f: F) -> Result<()> Modificar estrutura com closure

Campos de Formulário

Método Descrição
get_form_fields() Listar todos os campos de formulário
get_form_field_value(name) Obter valor do campo por nome
set_form_field_value(name, value: FormFieldValue) Definir valor do campo por nome
has_form_field(name) Verificar existência do campo
add_form_field(widget) Adicionar um novo campo de formulário
flatten_forms_on_page(page) Achatar formulários em uma página
flatten_forms() Achatar todos os campos de formulário
export_form_data_fdf(path) Exportar como FDF
export_form_data_xfdf(path) Exportar como XFDF
has_xfa() Verificar formulários XFA
analyze_xfa() Analisar dados de formulário XFA
convert_xfa_to_acroform() Converter XFA para AcroForm

Anotações e Achatamento

Método Descrição
flatten_page_annotations(page) Achatar anotações em uma página
flatten_all_annotations() Achatar todas as anotações
get_page_annotations(page) List annotations on a página

Arquivos Incorporados

Método Descrição
embed_file(name, data) Anexar um arquivo
embed_file_with_options(file) Anexar com configuração completa
pending_embedded_files() Listar anexos pendentes
clear_embedded_files() Limpar anexos pendentes

Tipos DOM

PdfPage

Representa uma única página com elementos consultáveis e editáveis.

Método Descrição
elements() All elements on the página
text_elements() Apenas elementos de texto
image_elements() Apenas elementos de imagem
path_elements() Apenas elementos de caminho/gráficos
table_elements() Apenas elementos de tabela
find_text_containing(needle) Encontrar texto correspondente à substring
set_text(id, new_text) Substituir texto por ID de elemento

PdfText

Método Retorno Descrição
id() ElementId Identificador único de elemento
text() &str Conteúdo de texto
bbox() Rect Retângulo delimitador
font_name() &str Nome da fonte
font_size() f32 Tamanho da fonte em pontos
is_bold() bool Peso negrito
is_italic() bool Estilo itálico
color() Color Cor do texto
set_text(new) Substituir texto
append(text) Anexar texto
replace(old, new) usize Substituir ocorrências
clear() Limpar texto

PdfImage

Método Retorno Descrição
id() ElementId Identificador único
bbox() Rect Retângulo delimitador
format() ImageFormat Formato da imagem
dimensions() (u32, u32) Largura e altura em pixels
aspect_ratio() f32 Proporção largura / altura
is_grayscale() bool Verificação de escala de cinza
alt_text() Option<&str> Texto alternativo para acessibilidade
resolution() Option<(f32, f32)> DPI como (horizontal, vertical)

PdfPath

Método Retorno Descrição
id() ElementId Identificador único
bbox() Rect Retângulo delimitador
operations() &[PathOperation] Operações de desenho de caminho
stroke_color() Option<Color> Cor do traço
fill_color() Option<Color> Cor de preenchimento
stroke_width() f32 Largura da linha
line_cap() LineCap Estilo de terminação de linha
line_join() LineJoin Estilo de junção de linha
is_closed() bool Se o caminho está fechado
to_svg() String Converter para dados de caminho SVG
to_svg_document() String Converter para SVG independente

PdfTable

Método Retorno Descrição
id() ElementId Identificador único
bbox() Rect Retângulo delimitador
row_count() usize Número de linhas
column_count() usize Número de colunas
has_header() bool Se a primeira linha é um cabeçalho
get_cell(row, col) Option<&TableCellContent> Conteúdo da célula
caption() Option<&str> Legenda da tabela

TextoSearcher

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

BuscaOptions

Field Type Padrão Descrição
case_sensitive bool true Correspondência sensível a maiúsculas/minúsculas
literal bool false Tratar padrão como literal (não regex)
whole_word bool false Corresponder apenas palavras inteiras
max_results Option<usize> None Limitar número de resultados
page_range Option<(usize, usize)> None Restrict to página range

BuscaResult

Campo Tipo Descrição
page usize Índice da página
text String Texto correspondente
x f64 Posição X em pontos
y f64 Posição Y em pontos

FormField e XmpExtractor

FormField (read)

Campo Tipo Descrição
name String Nome completo qualificado do campo
field_type FieldType Texto, Botão, Escolha, Assinatura
value Option<String> Valor atual
rect Option<Rect> Limites do widget
flags u32 Sinalizadores do campo

XmpExtractor

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

Métodos estáticos que operam em um PdfDocument:

Método Retorno Descrição
extract(doc) Result<Option<XmpMetadata>> Extrair metadados XMP

XmpMetadata

Campo Tipo Descrição
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

PáginaLabelExtractor

use pdf_oxide::extractors::page_labels::PageLabelExtractor;
Método Retorno Descrição
extract(doc) Result<Vec<PageLabelRange>> Extract página label definitions
label_for_page(doc, page) Result<String> Compute label for a specific página
all_labels(doc) Result<Vec<String>> Compute labels for every página

Funções Independentes

use pdf_oxide::document::{parse_header, parse_trailer};
Função Assinatura Descrição
parse_header fn parse_header<R: Read + Seek>(reader: &mut R, lenient: bool) -> Result<(u8, u8, u64)> Analisar cabeçalho PDF, retorna (major, minor, byte_offset)
parse_trailer fn parse_trailer<R: Read>(reader: &mut R) -> Result<Object> Analisar o dicionário trailer

Próximos Passos