Skip to main content

Crate pdf_ast

Crate pdf_ast 

Source
Expand description

PDF-AST: A comprehensive PDF analysis library providing Abstract Syntax Tree representation and security analysis capabilities for PDF documents.

This library offers:

  • Full PDF parsing with tolerance for malformed documents
  • AST-based graph representation of PDF structure
  • Advanced security analysis including signature verification
  • Multimedia content extraction (audio, video, 3D, RichMedia)
  • XFA form analysis and script detection
  • Performance profiling and optimization tools
  • Multiple output formats (JSON, YAML, TOML)

Copyright (C) 2026 Marc Rivero López Licensed under the GNU General Public License v3.0 See LICENSE file for details

Re-exports§

pub use ast::AstError;
pub use ast::AstNode;
pub use ast::AstResult;
pub use ast::NodeId;
pub use ast::NodeType;
pub use ast::PdfAstGraph;
pub use ast::PdfDocument;
pub use ast::PdfVersion;
pub use compression::create_optimal_compressor;
pub use compression::AdvancedCompressor;
pub use compression::CompressionConfig;
pub use compression::CompressionLevel;
pub use compression::CompressionResult;
pub use events::AstEventListener;
pub use forms::count_fields_in_acroform;
pub use forms::has_hybrid_forms;
pub use forms::AcroFormStats;
pub use forms::XfaDocument;
pub use forms::XfaNode;
pub use forms::XfaPacket;
pub use forms::XfaScriptStats;
pub use multimedia::av::AudioInfo;
pub use multimedia::av::VideoInfo;
pub use multimedia::richmedia::RichMediaInfo;
pub use multimedia::threed::ThreeDInfo;
pub use parser::PdfParser;
pub use performance::get_performance_stats;
pub use performance::start_timer;
pub use performance::PerformanceAnalyzer;
pub use performance::PerformanceConfig;
pub use performance::PerformanceReport;
pub use performance::PerformanceStats;
pub use security::etsi::validate_etsi_profiles;
pub use security::etsi::EtsiValidationOptions;
pub use security::ltv::LtvInfo;
pub use security::report_output::format_security_report;
pub use security::report_output::SecurityOutputFormat;
pub use security::security_info_to_report;
pub use security::security_report_to_json;
pub use security::security_report_to_toml;
pub use security::security_report_to_yaml;
pub use security::DigitalSignature;
pub use security::SecurityAnalyzer;
pub use security::SecurityInfo;
pub use security::SecurityReport;
pub use serialization::GraphDeserializer;
pub use serialization::SerializableGraph;
pub use traversal::AstWalker;
pub use traversal::GraphWalker;
pub use traversal::TimelineWalker;
pub use types::ObjectId;
pub use types::PdfArray;
pub use types::PdfDictionary;
pub use types::PdfName;
pub use types::PdfReference;
pub use types::PdfStream;
pub use types::PdfString;
pub use types::PdfValue;
pub use visitor::QueryBuilder;
pub use visitor::Visitor;
pub use visitor::VisitorAction;

Modules§

api
ast
Abstract Syntax Tree implementation for PDF documents.
bindings
Language bindings for Python and JavaScript.
compression
constants
PDF specification constants and enumerations. Project-wide constants for PDF-AST
crypto
Cryptographic operations for signatures and encryption.
events
Event hooks for parser/AST instrumentation.
ffi
Foreign Function Interface for C interoperability.
filters
Stream filters (compression, encoding, decoding).
forms
AcroForm and XFA form processing.
metadata
Document metadata extraction and parsing.
multimedia
parser
Core PDF parsing functionality.
performance
Performance monitoring and profiling.
plugins
Plugin architecture for extensibility.
recovery
schema
security
Security analysis and signature verification.
serialization
Graph serialization and deserialization.
streaming
transform
Document transformation utilities.
traversal
Traversal helpers and walker traits.
types
Core PDF data types (objects, arrays, dictionaries).
validation
Document validation and compliance checking.
visitor
Visitor pattern for AST traversal.

Macros§

progress_loop
with_progress
Convenience macros for common progress patterns