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 |
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
- Referência da API Python – referência dos bindings Python
- Tipos e Enums – todos os tipos, enums e structs de configuração
- Primeiros Passos com Rust – tutorial com exemplos