API-Referenz
Diese Seite dokumentiert jede öffentliche Struktur und Methode in pdf_oxide. Für die Python-Bindings siehe die Python-API-Referenz. Für Details zu Typen und Enums siehe Typen und Enums.
PdfDocument
Der Low-Level-Dokument-Handle. PDF-Datei öffnen, Text, Bilder und Metadaten extrahieren.
use pdf_oxide::PdfDocument;
Öffnen und Authentifizierung
| Methode | Signatur | Beschreibung |
|---|---|---|
open |
fn open(path: impl AsRef<Path>) -> Result<Self> |
PDF-Datei von der Festplatte öffnen |
open_from_bytes |
fn open_from_bytes(data: Vec<u8>) -> Result<Self> |
PDF aus Bytes im Speicher öffnen |
open_with_config |
fn open_with_config(path: impl AsRef<Path>, config: impl Any) -> Result<Self> |
Mit Parser-Konfiguration öffnen |
authenticate |
fn authenticate(&mut self, password: &[u8]) -> Result<bool> |
Mit Benutzer- oder Eigentümerpasswort authentifizieren |
Metadaten
| Methode | Signatur | Beschreibung |
|---|---|---|
page_count |
fn page_count(&mut self) -> Result<usize> |
Anzahl der Seiten im Dokument |
page_count_u32 |
fn page_count_u32(&mut self) -> u32 |
Seitenanzahl als u32 (0 bei Fehler) |
version |
fn version(&self) -> (u8, u8) |
PDF-Version als (major, minor) |
trailer |
fn trailer(&self) -> &Object |
Rohes Trailer-Wörterbuch |
catalog |
fn catalog(&mut self) -> Result<Object> |
Dokumentkatalog-Wörterbuch |
Textextraktion
| Methode | Signatur | Beschreibung |
|---|---|---|
extract_text |
fn extract_text(&mut self, page_index: usize) -> Result<String> |
Klartext von einer einzelnen Seite |
extract_all_text |
fn extract_all_text(&mut self) -> Result<String> |
Klartext von allen Seiten |
extract_spans |
fn extract_spans(&mut self, page_index: usize) -> Result<Vec<TextSpan>> |
Textläufe mit Schriftmetadaten |
extract_spans_with_config |
fn extract_spans_with_config(&mut self, page_index: usize, config: &TextConfig) -> Result<Vec<TextSpan>> |
Spans mit benutzerdefinierter Konfiguration |
extract_chars |
fn extract_chars(&mut self, page_index: usize) -> Result<Vec<TextChar>> |
Zeichenweise Positionen und Metadaten |
extract_text_with_ocr |
fn extract_text_with_ocr(&mut self, page_index: usize) -> Result<String> |
Text mit OCR-Fallback für gescannte Seiten |
extract_spans_with_ocr |
fn extract_spans_with_ocr(&mut self, page_index: usize) -> Result<Vec<TextSpan>> |
Spans mit OCR-Fallback |
apply_intelligent_text_processing |
fn apply_intelligent_text_processing(&self, spans: Vec<TextSpan>) -> Vec<TextSpan> |
Ligaturerweiterung, Silbentrennungs-Rekonstruktion, OCR-Bereinigung |
extract_hierarchical_content |
fn extract_hierarchical_content(&mut self, page_index: usize) -> Result<Vec<ContentElement>> |
Strukturierter Inhaltsbaum aus getaggten PDFs |
Konvertierung
| Methode | Signatur | Beschreibung |
|---|---|---|
to_markdown |
fn to_markdown(&mut self, page_index: usize, options: &ConversionOptions) -> Result<String> |
Seite in Markdown konvertieren |
to_html |
fn to_html(&mut self, page_index: usize, options: &ConversionOptions) -> Result<String> |
Seite in HTML konvertieren |
to_plain_text |
fn to_plain_text(&mut self, page_index: usize) -> Result<String> |
Seite in Klartext konvertieren |
to_markdown_all |
fn to_markdown_all(&mut self, options: &ConversionOptions) -> Result<String> |
Alle Seiten in Markdown |
to_html_all |
fn to_html_all(&mut self, options: &ConversionOptions) -> Result<String> |
Alle Seiten in HTML |
to_plain_text_all |
fn to_plain_text_all(&mut self) -> Result<String> |
Alle Seiten in Klartext |
to_markdown_with_ocr |
fn to_markdown_with_ocr(&mut self, page_index: usize, options: &ConversionOptions) -> Result<String> |
Markdown mit OCR-Fallback |
Bildextraktion
| Methode | Signatur | Beschreibung |
|---|---|---|
extract_images |
fn extract_images(&mut self, page_index: usize) -> Result<Vec<ImageInfo>> |
Bildmetadaten und Rohdaten einer Seite |
extract_images_to_files |
fn extract_images_to_files(&mut self, page_index: usize, output_dir: &str) -> Result<Vec<PathBuf>> |
Bilder extrahieren und auf Festplatte speichern |
Pfad- und Grafikextraktion
| Methode | Signatur | Beschreibung |
|---|---|---|
extract_paths |
fn extract_paths(&mut self, page_index: usize) -> Result<Vec<PathContent>> |
Vektorgrafiken einer Seite |
extract_paths_in_rect |
fn extract_paths_in_rect(&mut self, page_index: usize, rect: Rect) -> Result<Vec<PathContent>> |
Pfade innerhalb eines rechteckigen Bereichs |
Seite Information
| Methode | Signatur | Beschreibung |
|---|---|---|
get_page_info |
fn get_page_info(&mut self, page_index: usize) -> Result<PageInfo> |
Seitendimensionen, Rotation, Boxen |
get_page_resources |
fn get_page_resources(&mut self, page_index: usize) -> Result<Object> |
Rohes Ressourcen-Wörterbuch |
get_page_content_data |
fn get_page_content_data(&mut self, page_index: usize) -> Result<Vec<u8>> |
Rohe Inhaltsstrom-Bytes |
Struktur und Barrierefreiheit
| Methode | Signatur | Beschreibung |
|---|---|---|
structure_tree |
fn structure_tree(&mut self) -> Result<Option<StructTreeRoot>> |
Getaggter Strukturbaum |
mark_info |
fn mark_info(&mut self) -> Result<MarkInfo> |
MarkInfo-Wörterbuch (getaggt, verdächtig) |
Niedrigstufig
| Methode | Signatur | Beschreibung |
|---|---|---|
load_object |
fn load_object(&mut self, obj_ref: ObjectRef) -> Result<Object> |
PDF-Objekt per Referenz laden |
resolve_object |
fn resolve_object(&mut self, obj: &Object) -> Result<Object> |
Indirekte Referenzen auflösen |
resolve_references |
fn resolve_references(&mut self, obj: &Object, max_depth: usize) -> Result<Object> |
Alle Referenzen rekursiv auflösen |
check_for_circular_references |
fn check_for_circular_references(&mut self) -> Vec<(ObjectRef, ObjectRef)> |
Zirkuläre Referenzketten erkennen |
Die vereinheitlichte High-Level-API. Ein Typ für Extraktion, Erstellung, Bearbeitung, Suche und Konformität.
use pdf_oxide::api::Pdf;
Konstruktors
| Methode | Signatur | Beschreibung |
|---|---|---|
new |
fn new() -> Self |
Leere Pdf-Instanz erstellen |
open |
fn open(path: impl AsRef<Path>) -> Result<Self> |
Vorhandenes PDF zum Lesen öffnen |
open_editor |
fn open_editor(path: impl AsRef<Path>) -> Result<DocumentEditor> |
Zum strukturellen Bearbeiten öffnen |
from_markdown |
fn from_markdown(content: &str) -> Result<Self> |
PDF aus Markdown erstellen |
from_html |
fn from_html(content: &str) -> Result<Self> |
PDF aus HTML erstellen |
from_text |
fn from_text(content: &str) -> Result<Self> |
PDF aus Klartext erstellen |
from_image |
fn from_image(path: impl AsRef<Path>) -> Result<Self> |
PDF aus Bilddatei erstellen |
from_image_bytes |
fn from_image_bytes(data: &[u8]) -> Result<Self> |
PDF aus Bild-Bytes erstellen |
from_images |
fn from_images<P: AsRef<Path>>(paths: &[P]) -> Result<Self> |
Mehrseitig aus Bildern |
from_qrcode |
fn from_qrcode(data: &str) -> Result<Self> |
PDF mit QR-Code |
from_qrcode_with_options |
fn from_qrcode_with_options(data: &str, size: f32, ecl: &str) -> Result<Self> |
QR-Code mit benutzerdefinierter Größe und Fehlerkorrektur |
from_barcode |
fn from_barcode(data: &str, barcode_type: BarcodeType) -> Result<Self> |
PDF mit Strichcode |
from_barcode_with_options |
fn from_barcode_with_options(data: &str, barcode_type: BarcodeType, width: f32, height: f32) -> Result<Self> |
Strichcode mit benutzerdefinierten Abmessungen |
Extraktion
| Methode | Signatur | Beschreibung |
|---|---|---|
page_count |
fn page_count(&mut self) -> Result<usize> |
Anzahl der Seiten |
page |
fn page(&mut self, index: usize) -> Result<PdfPage> |
DOM-ähnliches Seiten-Handle |
to_markdown |
fn to_markdown(&mut self, page: usize) -> Result<String> |
Seite zu Markdown |
to_html |
fn to_html(&mut self, page: usize) -> Result<String> |
Seite zu HTML |
to_text |
fn to_text(&mut self, page: usize) -> Result<String> |
Seite zu Klartext |
Suche
| Methode | Signatur | Beschreibung |
|---|---|---|
search |
fn search(&mut self, pattern: &str) -> Result<Vec<SearchResult>> |
Alle Seiten durchsuchen |
search_with_options |
fn search_with_options(&mut self, pattern: &str, opts: &SearchOptions) -> Result<Vec<SearchResult>> |
Mit Optionen suchen |
search_page |
fn search_page(&mut self, page: usize, pattern: &str) -> Result<Vec<SearchResult>> |
Einzelne Seite durchsuchen |
highlight_matches |
fn highlight_matches(&mut self, pattern: &str) -> Result<usize> |
Hervorhebungsanmerkungen für Treffer hinzufügen |
Metadaten
| Methode | Signatur | Beschreibung |
|---|---|---|
set_title |
fn set_title(&mut self, title: impl Into<String>) -> Result<()> |
Dokumenttitel setzen |
set_author |
fn set_author(&mut self, author: impl Into<String>) -> Result<()> |
Autor setzen |
set_subject |
fn set_subject(&mut self, subject: impl Into<String>) -> Result<()> |
Betreff setzen |
set_keywords |
fn set_keywords(&mut self, keywords: impl Into<String>) -> Result<()> |
Schlüsselwörter setzen |
XMP-Metadaten
| Methode | Signatur | Beschreibung |
|---|---|---|
xmp_metadata |
fn xmp_metadata(&mut self) -> Result<Option<XmpMetadata>> |
Vollständige XMP-Metadaten |
has_xmp_metadata |
fn has_xmp_metadata(&mut self) -> Result<bool> |
XMP-Präsenz prüfen |
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 |
Seitenbeschriftungen
| Methode | Signatur | Beschreibung |
|---|---|---|
page_labels |
fn page_labels(&mut self) -> Result<Vec<PageLabelRange>> |
Seitenbeschriftungsbereiche |
page_label |
fn page_label(&mut self, page: usize) -> Result<String> |
Beschriftung für eine bestimmte Seite |
all_page_labels |
fn all_page_labels(&mut self) -> Result<Vec<String>> |
Beschriftungen für jede Seite |
Seitenoperationen
| Methode | Signatur | Beschreibung |
|---|---|---|
page_rotation |
fn page_rotation(&mut self, page: usize) -> Result<i32> |
Aktuelle Rotation in Grad |
set_page_rotation |
fn set_page_rotation(&mut self, page: usize, degrees: i32) -> Result<()> |
Absolute Rotation setzen |
rotate_page |
fn rotate_page(&mut self, page: usize, degrees: i32) -> Result<()> |
Relative Rotation hinzufügen |
rotate_all_pages |
fn rotate_all_pages(&mut self, degrees: i32) -> Result<()> |
Alle Seiten rotieren |
page_media_box |
fn page_media_box(&mut self, page: usize) -> Result<[f32; 4]> |
MediaBox-Dimensionen |
set_page_media_box |
fn set_page_media_box(&mut self, page: usize, rect: [f32; 4]) -> Result<()> |
MediaBox setzen |
page_crop_box |
fn page_crop_box(&mut self, page: usize) -> Result<Option<[f32; 4]>> |
CropBox-Dimensionen |
set_page_crop_box |
fn set_page_crop_box(&mut self, page: usize, rect: [f32; 4]) -> Result<()> |
CropBox setzen |
crop_margins |
fn crop_margins(&mut self, left: f32, right: f32, top: f32, bottom: f32) -> Result<()> |
Alle Seiten an Rändern beschneiden |
Inhaltsbearbeitung
| Methode | Signatur | Beschreibung |
|---|---|---|
save_page |
fn save_page(&mut self, page: PdfPage) -> Result<()> |
Geänderte Seite zurückspeichern |
erase_region |
fn erase_region(&mut self, page: usize, rect: [f32; 4]) -> Result<()> |
Rechteckigen Bereich weißen |
erase_regions |
fn erase_regions(&mut self, page: usize, rects: &[[f32; 4]]) -> Result<()> |
Mehrere Bereiche weißen |
clear_erase_regions |
fn clear_erase_regions(&mut self, page: usize) |
Ausstehende Löschoperationen löschen |
Anmerkungen
| Methode | Signatur | Beschreibung |
|---|---|---|
flatten_page_annotations |
fn flatten_page_annotations(&mut self, page: usize) -> Result<()> |
Anmerkungen auf einer Seite einbetten |
flatten_all_annotations |
fn flatten_all_annotations(&mut self) -> Result<()> |
Alle Anmerkungen einbetten |
is_page_marked_for_flatten |
fn is_page_marked_for_flatten(&self, page: usize) -> bool |
Einbettungsstatus prüfen |
unmark_page_for_flatten |
fn unmark_page_for_flatten(&mut self, page: usize) |
Seite entmarkieren |
Formulare
| Methode | Signatur | Beschreibung |
|---|---|---|
flatten_forms_on_page |
fn flatten_forms_on_page(&mut self, page: usize) -> Result<()> |
Formulare auf einer Seite einbetten |
flatten_forms |
fn flatten_forms(&mut self) -> Result<()> |
Alle Formularfelder einbetten |
is_page_marked_for_form_flatten |
fn is_page_marked_for_form_flatten(&self, page: usize) -> bool |
Prüfen ob Seitenformulare zum Einbetten markiert sind |
will_remove_acroform |
fn will_remove_acroform(&self) -> bool |
Prüfen ob AcroForm beim Speichern entfernt wird |
export_form_data_fdf |
fn export_form_data_fdf(&mut self, output_path: impl AsRef<Path>) -> Result<()> |
Formulardaten als FDF exportieren |
export_form_data_xfdf |
fn export_form_data_xfdf(&mut self, output_path: impl AsRef<Path>) -> Result<()> |
Formulardaten als XFDF exportieren |
Schwärzungen
| Methode | Signatur | Beschreibung |
|---|---|---|
apply_page_redactions |
fn apply_page_redactions(&mut self, page: usize) -> Result<()> |
Schwärzungen auf einer Seite anwenden |
apply_all_redactions |
fn apply_all_redactions(&mut self) -> Result<()> |
Alle ausstehenden Schwärzungen anwenden |
is_page_marked_for_redaction |
fn is_page_marked_for_redaction(&self, page: usize) -> bool |
Prüfen ob Seite ausstehende Schwärzungen hat |
unmark_page_for_redaction |
fn unmark_page_for_redaction(&mut self, page: usize) |
Ausstehende Schwärzungen einer Seite entfernen |
Bilder
| Methode | Signatur | Beschreibung |
|---|---|---|
page_images |
fn page_images(&mut self, page: usize) -> Result<Vec<ImageInfo>> |
Bilder auf einer Seite auflisten |
reposition_image |
fn reposition_image(&mut self, page: usize, image_index: usize, x: f32, y: f32) -> Result<()> |
Bild verschieben |
resize_image |
fn resize_image(&mut self, page: usize, image_index: usize, width: f32, height: f32) -> Result<()> |
Bild skalieren |
set_image_bounds |
fn set_image_bounds(&mut self, page: usize, image_index: usize, rect: [f32; 4]) -> Result<()> |
Bildbegrenzungsrahmen setzen |
clear_image_modifications |
fn clear_image_modifications(&mut self, page: usize) |
Ausstehende Bildänderungen löschen |
has_image_modifications |
fn has_image_modifications(&self, page: usize) -> bool |
Auf ausstehende Bildänderungen prüfen |
Eingebettete Dateien
| Methode | Signatur | Beschreibung |
|---|---|---|
embed_file |
fn embed_file(&mut self, name: &str, data: Vec<u8>) -> Result<()> |
Datei anhängen |
embed_file_with_options |
fn embed_file_with_options(&mut self, file: EmbeddedFile) -> Result<()> |
Mit vollständiger Konfiguration anhängen |
pending_embedded_files |
fn pending_embedded_files(&self) -> &[EmbeddedFile] |
Ausstehende Dateianhänge auflisten |
clear_embedded_files |
fn clear_embedded_files(&mut self) |
Ausstehende Dateianhänge löschen |
Rendering (erfordert Feature rendering)
| Methode | Signatur | Beschreibung |
|---|---|---|
render_page |
fn render_page(&mut self, page: usize) -> Result<RenderedImage> |
In Bild rendern |
render_page_with_options |
fn render_page_with_options(&mut self, page: usize, opts: &RenderOptions) -> Result<RenderedImage> |
Mit Optionen rendern |
render_page_to_file |
fn render_page_to_file(&mut self, page: usize, path: impl AsRef<Path>) -> Result<()> |
Rendern und in Datei speichern |
render_page_to_file_with_dpi |
fn render_page_to_file_with_dpi(&mut self, page: usize, path: impl AsRef<Path>, dpi: f32) -> Result<()> |
Mit benutzerdefinierter DPI rendern |
Speichern
| Methode | Signatur | Beschreibung |
|---|---|---|
save |
fn save(&mut self, path: impl AsRef<Path>) -> Result<()> |
In Datei speichern |
save_as |
fn save_as(&mut self, path: impl AsRef<Path>) -> Result<()> |
In andere Datei speichern |
save_encrypted |
fn save_encrypted(&mut self, path: impl AsRef<Path>, user_password: &str, owner_password: &str) -> Result<()> |
Mit Passwortschutz speichern |
save_with_encryption |
fn save_with_encryption(&mut self, path: impl AsRef<Path>, config: VerschlüsselungConfig) -> Result<()> |
Mit vollständiger Verschlüsselungskonfiguration speichern |
as_bytes |
fn as_bytes(&self) -> &[u8] |
PDF-Bytes (Erstellungsmodus) |
into_bytes |
fn into_bytes(mut self) -> Vec<u8> |
Verbrauchen und PDF-Bytes zurückgeben |
to_bytes |
fn to_bytes(&mut self) -> Result<Vec<u8>> |
PDF-Bytes erzeugen |
to_markdown_file |
fn to_markdown_file(&mut self, path: impl AsRef<Path>) -> Result<()> |
Alle Seiten als Markdown-Datei speichern |
Zugriffsmethoden
| Methode | Signatur | Beschreibung |
|---|---|---|
source_path |
fn source_path(&self) -> Option<&Path> |
Pfad der geöffneten Datei |
editor |
fn editor(&mut self) -> Option<&mut DocumentEditor> |
Zugriff auf den zugrunde liegenden Editor |
config |
fn config(&self) -> &PdfConfig |
Aktuelle Konfiguration |
is_modified |
fn is_modified(&self) -> bool |
Ob das Dokument nicht gespeicherte Änderungen hat |
PdfBuilder
Fluent Builder zum Erstellen von PDFs mit Metadaten und Layout-Konfiguration.
use pdf_oxide::api::PdfBuilder;
use pdf_oxide::writer::PageSize;
| Methode | Signatur | Beschreibung |
|---|---|---|
new |
fn new() -> Self |
Neuen Builder erstellen |
title |
fn title(self, title: impl Into<String>) -> Self |
Titel setzen |
author |
fn author(self, author: impl Into<String>) -> Self |
Autor setzen |
subject |
fn subject(self, subject: impl Into<String>) -> Self |
Betreff setzen |
keywords |
fn keywords(self, keywords: impl Into<String>) -> Self |
Schlüsselwörter setzen |
page_size |
fn page_size(self, size: PageSize) -> Self |
Seitengröße setzen |
margin |
fn margin(self, margin: f32) -> Self |
Einheitliche Ränder setzen |
margins |
fn margins(self, left: f32, right: f32, top: f32, bottom: f32) -> Self |
Individuelle Ränder setzen |
font_size |
fn font_size(self, size: f32) -> Self |
Schriftgröße setzen |
line_height |
fn line_height(self, height: f32) -> Self |
Zeilenhöhe setzen |
from_markdown |
fn from_markdown(self, content: &str) -> Result<Pdf> |
Aus Markdown erstellen |
from_html |
fn from_html(self, content: &str) -> Result<Pdf> |
Aus HTML erstellen |
from_text |
fn from_text(self, content: &str) -> Result<Pdf> |
Aus Klartext erstellen |
from_image |
fn from_image(self, path: impl AsRef<Path>) -> Result<Pdf> |
Aus Bild erstellen |
from_image_bytes |
fn from_image_bytes(self, data: &[u8]) -> Result<Pdf> |
Aus Bild-Bytes erstellen |
from_images |
fn from_images<P: AsRef<Path>>(self, paths: &[P]) -> Result<Pdf> |
Aus mehreren Bildern erstellen |
from_qrcode |
fn from_qrcode(self, data: &str) -> Result<Pdf> |
Aus QR-Code-Daten erstellen |
from_barcode |
fn from_barcode(self, data: &str, barcode_type: BarcodeType) -> Result<Pdf> |
Aus Strichcode-Daten erstellen |
DocumentBuilder
Low-Level-Builder für pixelgenaues Seitenlayout.
use pdf_oxide::writer::DocumentBuilder;
| Methode | Signatur | Beschreibung |
|---|---|---|
new |
fn new() -> Self |
Neuen Builder erstellen |
metadata |
fn metadata(self, metadata: DocumentMetadata) -> Self |
Dokumentmetadaten setzen |
page |
fn page(&mut self, size: PageSize) -> FluentPageBuilder |
Seite mit benannter Größe hinzufügen |
letter_page |
fn letter_page(&mut self) -> FluentPageBuilder |
US-Letter-Seite hinzufügen |
a4_page |
fn a4_page(&mut self) -> FluentPageBuilder |
A4-Seite hinzufügen |
build |
fn build(self) -> Result<Vec<u8>> |
PDF-Bytes erzeugen |
save |
fn save(self, path: impl AsRef<Path>) -> Result<()> |
In Datei speichern |
FluentPageBuilder
Zurückgegeben von DocumentBuilder::page(). Aufrufe verketten, um Inhalt zu einer Seite hinzuzufügen:
| Methode | Beschreibung |
|---|---|
text(text, x, y, size) |
Text an exakten Koordinaten platzieren |
heading(level, text) |
Überschrift hinzufügen (H1-H6) |
paragraph(text) |
Absatz mit automatischem Umbruch hinzufügen |
space(points) |
Vertikalen Abstand hinzufügen |
horizontal_rule() |
Horizontale Linie zeichnen |
link_url(url) |
URL-Link-Anmerkung hinzufügen |
link_page(page) |
Internen Seitenlink hinzufügen |
highlight(color) |
Hervorhebungsanmerkung hinzufügen |
underline(color) |
Unterstreichungsanmerkung hinzufügen |
strikeout(color) |
Durchstreichungsanmerkung hinzufügen |
sticky_note(text) |
Haftnotiz hinzufügen |
stamp(stamp_type) |
Stempelanmerkung hinzufügen |
freetext(rect, text) |
Freitext-Anmerkung hinzufügen |
watermark(text) |
Wasserzeichen-Überlagerung hinzufügen |
add_annotation(annotation) |
Beliebigen Anmerkungstyp hinzufügen |
done() |
Seite abschließen, zum Builder zurückkehren |
DocumentEditor
Ein vorhandenes PDF für strukturelle Änderungen öffnen.
use pdf_oxide::editor::DocumentEditor;
Kern
| Methode | Signatur | Beschreibung |
|---|---|---|
open |
fn open(path: impl AsRef<Path>) -> Result<Self> |
Datei zum Bearbeiten öffnen |
is_modified |
fn is_modified(&self) -> bool |
Auf nicht gespeicherte Änderungen prüfen |
source_path |
fn source_path(&self) -> &str |
Originaler Dateipfad |
source |
fn source(&self) -> &PdfDocument |
Zugrunde liegendes Dokument (Lesen) |
source_mut |
fn source_mut(&mut self) -> &mut PdfDocument |
Zugrunde liegendes Dokument (Schreiben) |
version |
fn version(&self) -> (u8, u8) |
PDF-Version |
current_page_count |
fn current_page_count(&self) -> usize |
Seitenanzahl |
Metadaten
| Methode | Beschreibung |
|---|---|
title() / set_title() |
Dokumenttitel lesen/setzen |
author() / set_author() |
Autor lesen/setzen |
subject() / set_subject() |
Betreff lesen/setzen |
keywords() / set_keywords() |
Schlüsselwörter lesen/setzen |
Seitenoperationen
| Methode | Beschreibung |
|---|---|
get_page_rotation() / set_page_rotation() |
Rotation lesen/setzen |
rotate_page_by() |
Relative Rotation hinzufügen |
rotate_all_pages() |
Alle Seiten rotieren |
get_page_media_box() / set_page_media_box() |
MediaBox lesen/setzen |
get_page_crop_box() / set_page_crop_box() |
CropBox lesen/setzen |
crop_margins() |
Alle Seiten an Rändern beschneiden |
erase_region() / erase_regions() |
Inhalt weißen |
extract_pages() |
Seiten in separate Datei extrahieren |
merge_from() / merge_pages_from() |
Seiten aus einem anderen PDF zusammenführen |
DOM-ähnliche Bearbeitung
| Methode | Signatur | Beschreibung |
|---|---|---|
get_page |
fn get_page(&mut self, page_index: usize) -> Result<PdfPage> |
DOM-Seiten-Handle erhalten |
save_page |
fn save_page(&mut self, page: PdfPage) -> Result<()> |
Geänderte Seite speichern |
edit_page |
fn edit_page<F>(&mut self, page_index: usize, f: F) -> Result<()> |
Mit Closure bearbeiten |
page_editor |
fn page_editor(&mut self, page_index: usize) -> Result<PageEditor> |
Seiten-Editor erhalten |
get_page_content |
fn get_page_content(&mut self, page_index: usize) -> Result<Option<StructureElement>> |
Seitenstruktur erhalten |
set_page_content |
fn set_page_content(&mut self, page_index: usize, content: StructureElement) -> Result<()> |
Seitenstruktur setzen |
modify_structure |
fn modify_structure<F>(&mut self, page_index: usize, f: F) -> Result<()> |
Struktur mit Closure ändern |
Formularfelder
| Methode | Beschreibung |
|---|---|
get_form_fields() |
Alle Formularfelder auflisten |
get_form_field_value(name) |
Feldwert nach Name erhalten |
set_form_field_value(name, value: FormFieldValue) |
Feldwert nach Name setzen |
has_form_field(name) |
Feldexistenz prüfen |
add_form_field(widget) |
Neues Formularfeld hinzufügen |
flatten_forms_on_page(page) |
Formulare auf einer Seite einbetten |
flatten_forms() |
Alle Formularfelder einbetten |
export_form_data_fdf(path) |
Als FDF exportieren |
export_form_data_xfdf(path) |
Als XFDF exportieren |
has_xfa() |
Auf XFA-Formulare prüfen |
analyze_xfa() |
XFA-Formulardaten analysieren |
convert_xfa_to_acroform() |
XFA in AcroForm konvertieren |
Anmerkungen und Einbettung
| Methode | Beschreibung |
|---|---|
flatten_page_annotations(page) |
Anmerkungen auf einer Seite einbetten |
flatten_all_annotations() |
Alle Anmerkungen einbetten |
get_page_annotations(page) |
Anmerkungen auf einer Seite auflisten |
Eingebettete Dateien
| Methode | Beschreibung |
|---|---|
embed_file(name, data) |
Datei anhängen |
embed_file_with_options(file) |
Mit vollständiger Konfiguration anhängen |
pending_embedded_files() |
Ausstehende Anhänge auflisten |
clear_embedded_files() |
Ausstehende Anhänge löschen |
DOM-Typen
PdfPage
Stellt eine einzelne Seite mit abfragbaren und bearbeitbaren Elementen dar.
| Methode | Beschreibung |
|---|---|
elements() |
Alle Elemente auf der Seite |
text_elements() |
Nur Textelemente |
image_elements() |
Nur Bildelemente |
path_elements() |
Nur Pfad-/Grafikelemente |
table_elements() |
Nur Tabellenelemente |
find_text_containing(needle) |
Text mit Teilstring finden |
set_text(id, new_text) |
Text nach Element-ID ersetzen |
PdfText
| Methode | Rückgabe | Beschreibung |
|---|---|---|
id() |
ElementId |
Eindeutiger Elementbezeichner |
text() |
&str |
Textinhalt |
bbox() |
Rect |
Begrenzungsrechteck |
font_name() |
&str |
Schriftname |
font_size() |
f32 |
Schriftgröße in Punkten |
is_bold() |
bool |
Fett-Gewicht |
is_italic() |
bool |
Kursivstil |
color() |
Color |
Textfarbe |
set_text(new) |
Text ersetzen | |
append(text) |
Text anhängen | |
replace(old, new) |
usize |
Vorkommen ersetzen |
clear() |
Text löschen |
PdfImage
| Methode | Rückgabe | Beschreibung |
|---|---|---|
id() |
ElementId |
Eindeutiger Bezeichner |
bbox() |
Rect |
Begrenzungsrechteck |
format() |
ImageFormat |
Bildformat |
dimensions() |
(u32, u32) |
Breite und Höhe in Pixeln |
aspect_ratio() |
f32 |
Breite-/Höhe-Verhältnis |
is_grayscale() |
bool |
Graustufen-Prüfung |
alt_text() |
Option<&str> |
Alternativtext für Barrierefreiheit |
resolution() |
Option<(f32, f32)> |
DPI als (horizontal, vertikal) |
PdfPath
| Methode | Rückgabe | Beschreibung |
|---|---|---|
id() |
ElementId |
Eindeutiger Bezeichner |
bbox() |
Rect |
Begrenzungsrechteck |
operations() |
&[PathOperation] |
Pfadzeichnungsoperationen |
stroke_color() |
Option<Color> |
Strichfarbe |
fill_color() |
Option<Color> |
Füllfarbe |
stroke_width() |
f32 |
Linienbreite |
line_cap() |
LineCap |
Linienendstil |
line_join() |
LineJoin |
Linienverbindungsstil |
is_closed() |
bool |
Ob der Pfad geschlossen ist |
to_svg() |
String |
In SVG-Pfaddaten konvertieren |
to_svg_document() |
String |
In eigenständiges SVG konvertieren |
PdfTable
| Methode | Rückgabe | Beschreibung |
|---|---|---|
id() |
ElementId |
Eindeutiger Bezeichner |
bbox() |
Rect |
Begrenzungsrechteck |
row_count() |
usize |
Anzahl der Zeilen |
column_count() |
usize |
Anzahl der Spalten |
has_header() |
bool |
Ob die erste Zeile eine Überschrift ist |
get_cell(row, col) |
Option<&TableCellContent> |
Zelleninhalt |
caption() |
Option<&str> |
Tabellenüberschrift |
TextSearcher
use pdf_oxide::search::{TextSearcher, SearchOptions, SearchResult};
SucheOptions
| Feld | Typ | Standard | Beschreibung |
|---|---|---|---|
case_sensitive |
bool |
true |
Groß-/Kleinschreibung beachten |
literal |
bool |
false |
Muster als Literal behandeln (nicht Regex) |
whole_word |
bool |
false |
Nur ganze Wörter suchen |
max_results |
Option<usize> |
None |
Anzahl der Ergebnisse begrenzen |
page_range |
Option<(usize, usize)> |
None |
Auf Seitenbereich einschränken |
SucheResult
| Feld | Typ | Beschreibung |
|---|---|---|
page |
usize |
Seitenindex |
text |
String |
Gefundener Text |
x |
f64 |
X-Position in Punkten |
y |
f64 |
Y-Position in Punkten |
FormField und XmpExtractor
FormField (read)
| Feld | Typ | Beschreibung |
|---|---|---|
name |
String |
Vollständig qualifizierter Feldname |
field_type |
FieldType |
Text, Schaltfläche, Auswahl, Signatur |
value |
Option<String> |
Aktueller Wert |
rect |
Option<Rect> |
Widget-Grenzen |
flags |
u32 |
Feldflags |
XmpExtractor
use pdf_oxide::extractors::xmp::XmpExtractor;
Statische Methoden, die auf einem PdfDocument operieren:
| Methode | Rückgabe | Beschreibung |
|---|---|---|
extract(doc) |
Result<Option<XmpMetadata>> |
XMP-Metadaten extrahieren |
XmpMetadata
| Feld | Typ | Beschreibung |
|---|---|---|
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 |
SeiteLabelExtractor
use pdf_oxide::extractors::page_labels::PageLabelExtractor;
| Methode | Rückgabe | Beschreibung |
|---|---|---|
extract(doc) |
Result<Vec<PageLabelRange>> |
Seitenbeschriftungsdefinitionen extrahieren |
label_for_page(doc, page) |
Result<String> |
Beschriftung für eine bestimmte Seite berechnen |
all_labels(doc) |
Result<Vec<String>> |
Beschriftungen für jede Seite berechnen |
Eigenständige Funktionen
use pdf_oxide::document::{parse_header, parse_trailer};
| Funktion | Signatur | Beschreibung |
|---|---|---|
parse_header |
fn parse_header<R: Read + Seek>(reader: &mut R, lenient: bool) -> Result<(u8, u8, u64)> |
PDF-Header parsen, gibt (major, minor, byte_offset) zurück |
parse_trailer |
fn parse_trailer<R: Read>(reader: &mut R) -> Result<Object> |
Das Trailer-Wörterbuch parsen |
Nächste Schritte
- Python-API-Referenz – Python-Bindings-Referenz
- Typen und Enums – alle Typen, Enums und Konfigurationsstrukturen
- Erste Schritte mit Rust – Tutorial mit Beispielen