Skip to main content

easydoc_reader/
read_text.rs

1//! 同步读取文档纯文本。
2
3use std::path::Path;
4
5use easydoc_core::Result;
6
7/// 同步读取文档中的所有纯文本。
8///
9/// 通过 `office_oxide` 自动检测 DOCX/DOC 格式。
10///
11/// 对应 Java: `EasyExcel.read(path).sheet().doReadSync()` 的文本提取简化版
12///
13/// # Errors
14///
15/// 文件无法读取时返回 I/O 或格式错误。
16pub fn read_text(path: &Path) -> Result<String> {
17    crate::extractor::text::extract_text(path)
18}
19
20/// 从内存字节同步读取文档纯文本(不触碰文件系统)。
21///
22/// 通过 magic bytes 自动检测 DOCX/DOC 格式。适用于 fuzz 目标、
23/// 网络/流式数据源等无文件路径的场景。
24///
25/// # Errors
26///
27/// 字节不是受支持的文档格式或解析失败时返回格式错误。
28pub fn read_text_from_bytes(bytes: &[u8]) -> Result<String> {
29    crate::extractor::text::extract_text_from_bytes(bytes)
30}