Skip to content

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

Pdf

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