Skip to main content

easyofd_core/
lib.rs

1//! # easyofd-core
2//!
3//! Core types, traits, and models for the easyofd-rust OFD document library.
4//!
5//! This crate provides:
6//! - [`model`] — OFD data model types (`OfdPage`, `TextObject`, `ImageObject`, etc.)
7//! - [`ofd_model`] — The [`OfdModel`] trait for mapping Rust types to OFD pages
8//! - [`error`] — Error types ([`OfdError`])
9//! - [`page_size`] — Common page size constants
10
11pub mod action;
12pub mod annotation;
13pub mod attachment;
14pub mod basic_type;
15pub mod compat;
16pub mod composite_obj;
17pub mod consts;
18pub mod crypto;
19pub mod custom_tags;
20pub mod doc;
21pub mod doc_vpreferences;
22pub mod error;
23pub mod extensions;
24pub mod graph;
25pub mod graphics2d;
26pub mod holder;
27pub mod image;
28pub mod integrity;
29pub mod model;
30pub mod ofd_common_qname;
31pub mod ofd_element;
32pub mod ofd_model;
33pub mod page_description;
34pub mod page_obj;
35pub mod signatures;
36pub mod text;
37pub mod versions;
38pub mod watermark;
39pub mod xml_element;
40mod xml_impls;
41pub mod xml_parse;
42
43// Re-export core types at crate root for convenience.
44pub use xml_element::{XmlElement, XmlElementError, XmlNode, xml_escape};
45pub use xml_parse::parse_xml_to_nodes;
46
47// Re-export core types at crate root for convenience.
48pub use action::{
49    Actions, Bookmark as ActionBookmark, CTAction, CTDest, DestType, EventType, Goto, GotoA, Movie,
50    OfdAction, OfdGotoTarget, PlayType, Sound, URI,
51};
52pub use annotation::{AnnPage, Annot, AnnotType, Annotations, Appearance, PageAnnot};
53pub use attachment::{Attachments, CTAttachment};
54pub use basic_type::{ST_Array, ST_Box, ST_ID, ST_Loc, ST_Pos, ST_RefID};
55pub use composite_obj::{CT_Composite, CT_VectorG, Content};
56pub use custom_tags::{CustomTag, CustomTags};
57pub use doc::bookmark::{Bookmark, Bookmarks};
58pub use doc::ct_doc_info::{CtDocInfo, DocUsage};
59pub use doc::ct_v_preferences::{
60    CtVPreferences, PageLayout, PageMode, TabDisplay, ZoomMode, ZoomScale,
61};
62pub use doc::doc_dir::DocDir;
63pub use doc::ofd_dir::OfdDir;
64pub use doc::permission::{CtPermission, Print, ValidPeriod};
65pub use error::{OfdError, OfdResult};
66pub use extensions::{CtExtension, Extensions, Property};
67pub use graph::{AbbreviatedData, CT_Path, FillRule, PathCommand};
68pub use model::{
69    Bookmark as ModelBookmark, Bookmarks as ModelBookmarks, ContentObject, CreationDate, Creator,
70    CustomData, CustomDatas, ImageFormat, ImageObject, OfdId, OfdMetadata, OfdPage, PathObject,
71    Point, TextObject, Weight, page_size,
72};
73pub use ofd_model::{OfdField, OfdFieldKind, OfdModel};
74pub use page_obj::{
75    CT_CommonData, CT_GraphicUnit, CT_Layer, CT_PageArea, CT_PageBlock, CT_TemplatePage, LayerType,
76    LineCapType, LineJoinType, TemplateZOrder,
77};
78pub use signatures::{
79    CheckMethod, Provider, Reference, References, Seal, SealImageType, SigType, Signature,
80    Signatures, SignedInfo, StampAnnot, StampAnnotEntity,
81};
82pub use text::{CT_CGTransform, CT_Font, CT_Text, Direction, TextCode};
83pub use versions::{DocVersion, File, FileList, Version, Versions};
84pub use watermark::Watermark;
85
86// ── 新增类型导出 ──────────────────────────────────────────────────────────
87
88pub use crypto::{
89    CryptoParameter, CryptoProvider, DecyptSeed, Encryptions, ExtendParams, SigParameter,
90    SigParameters, UserInfo,
91};
92pub use graphics2d::{
93    GraphicsDeviceType, OfdGraphics2DDrawParam, OfdGraphicsDocument, OfdPageGraphics2D,
94    OfdPageGraphicsConfiguration, OfdPageGraphicsDevice, OfdShape, OfdShapes,
95};
96pub use ofd_common_qname::OfdCommonQName;
97pub use ofd_element::{DefaultElementProxy, OfdElement, OfdSimpleTypeElement};
98
99// ── 兼容别名(Java 类名 → Rust 类型名)────────────────────────────────────
100// 不用 wildcard,已在 compat 模块中逐个 pub use。详见 compat 模块文档。
101
102/// 对应 Java: OFDCommonQName(Rust 命名别名)。
103pub type OFDCommonQName = OfdCommonQName;
104
105/// 对应 Java: OFDGraphicsDocument(Rust 命名别名)。
106pub type OFDGraphicsDocument = OfdGraphicsDocument;
107
108/// 对应 Java: OFDGraphics2DDrawParam(Rust 命名别名)。
109pub type OFDGraphics2DDrawParam = OfdGraphics2DDrawParam;
110
111/// 对应 Java: OFDPageGraphics2D(Rust 命名别名)。
112pub type OFDPageGraphics2D = OfdPageGraphics2D;
113
114/// 对应 Java: OFDPageGraphicsConfiguration(Rust 命名别名)。
115pub type OFDPageGraphicsConfiguration = OfdPageGraphicsConfiguration;
116
117/// 对应 Java: OFDPageGraphicsDevice(Rust 命名别名)。
118pub type OFDPageGraphicsDevice = OfdPageGraphicsDevice;
119
120/// 对应 Java: OFDShapes(Rust 命名别名)。
121pub type OFDShapes = OfdShapes;