1#![warn(missing_docs)]
42#![warn(clippy::pedantic)]
43#![deny(unsafe_code)]
44#![allow(
45 clippy::uninlined_format_args,
46 clippy::manual_string_new,
47 clippy::cast_precision_loss,
48 clippy::doc_markdown,
49 clippy::write_with_newline,
50 clippy::items_after_statements
51)]
52
53pub use easypdf_core::*;
59
60pub use easypdf_derive::PdfModel;
62
63pub use easypdf_reader::{PdfReader, ReadStrategy};
65
66pub use easypdf_core::io::guards::{guard_decompression_bomb, guard_element_explosion};
68pub use easypdf_core::io::repair::{RepairOptions, attempt_repair, is_likely_corrupt};
69pub use easypdf_core::io::ssrf_guard::validate_url as validate_io_url;
70pub use easypdf_core::{AtomicFileOutput, PdfInput, ResourceLimits};
71pub use easypdf_core::{
72 ImageData, ImageFormat, ListItem, PdfBlock, PdfBlockType, PdfDocumentModel, PdfPageModel,
73 SourceLocation,
74};
75
76pub use easypdf_writer::{PdfWriter, PdfWriterBuilder, WriteBackend};
78
79pub use easypdf_reader::PdfManipulator;
81
82pub use easypdf_writer::PdfTemplateFiller;
84
85pub use easypdf_core::layout::Direction as LayoutDirection;
87pub use easypdf_core::layout::FlowLayout;
88
89#[cfg(feature = "markdown")]
91pub use easypdf_markdown::{
92 DetailedProcessorCapabilities, PRIORITY_GENERIC, PRIORITY_SPECIFIC, ProcessorCapability,
93 ProcessorPipeline,
94};
95#[cfg(feature = "markdown")]
96pub use easypdf_markdown::{
97 ImagePolicy, MarkdownConversionResult, MarkdownExportReport, MarkdownExportResult,
98 MarkdownProcessorCapabilities, MarkdownProfile, MarkdownRenderer, MarkdownWarning, OcrPolicy,
99 PdfMarkdownBuilder, PdfMarkdownExportBuilder, PdfMarkdownProcessor, TablePolicy,
100};
101
102#[cfg(feature = "markdown-table")]
104pub use easypdf_markdown::table::{ColumnSeparator, TableDetectionConfig, TableDetectorProcessor};
105
106#[cfg(feature = "ocr")]
108pub use easypdf_markdown::ocr::{
109 OcrConfig, OcrEngine, OcrImage, OcrProcessor, OcrResult, OcrTrigger, WordBox,
110};
111
112#[cfg(feature = "ocr")]
114pub use easypdf_ocr::{
115 AuthMethod as OcrAuthMethod, BackoffStrategy, HttpClientConfig as OcrHttpClientConfig,
116 HttpOcrEngine, OcrHttpError, RateLimitConfig,
117};
118
119#[cfg(feature = "render")]
121pub use easypdf_markdown::render::error::RenderError;
122#[cfg(feature = "render")]
123pub use easypdf_markdown::render::{
124 Background, PdfRenderer, RenderBackend, RenderConfig, RenderedImage,
125};
126
127#[cfg(feature = "resident")]
129pub use easypdf_runtime::resident::serve as resident_serve;
130#[cfg(feature = "resident")]
131pub use easypdf_runtime::resident::try_attach as resident_try_attach;
132#[cfg(feature = "resident")]
133pub use easypdf_runtime::resident::{AutosaveMode, ResidentClient, ResidentConfig, ResidentServer};
134
135#[cfg(feature = "mcp")]
137pub use easypdf_runtime::mcp::McpServer;
138
139mod builders;
144pub use builders::{
145 PdfCreateBuilder, PdfImageBuilder, PdfManipulateBuilder, PdfPositionedTextBuilder,
146 PdfReadBuilder, PdfSplitBuilder, PdfTableBuilder, PdfTextBuilder,
147};
148
149mod pdf_fill_builder;
150pub use pdf_fill_builder::PdfFillBuilder;
151
152mod writer_helpers;
153pub use writer_helpers::{PageNumberHandler, write_table};
154
155pub mod prelude;
156
157#[cfg(any(test, feature = "html"))]
158mod html;
159#[cfg(feature = "html")]
160pub use html::HtmlToPdfBuilder;
161#[cfg(test)]
162use html::markdown_to_html;
163mod crypto_facade;
164mod facade_features;
165
166mod easy_pdf;
167pub use easy_pdf::EasyPdf;
168
169#[cfg(test)]
170mod tests;