# parse-x-to-text **Repository Path**: pixelloz/parse-x-to-text ## Basic Information - **Project Name**: parse-x-to-text - **Description**: 解析各种格式电子书转文本,如PDF、EPUB、MOBI等。 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-09 - **Last Updated**: 2025-08-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: epub, pdf, mobi, parse ## README # Parse-X-To-Text 一个纯前端JavaScript库,用于将PDF、EPUB、MOBI文件转换为TXT格式。 ## ✨ 特性 - 📄 支持PDF、EPUB、MOBI格式文件转换 - 🔄 支持按页码转换或整体转换 - 📱 纯前端实现,无需服务器 - 🚀 高性能,支持大文件处理 - 🎨 现代化UI界面 - 📦 支持NPM安装 - 🔧 完全可配置的转换选项 ## 📦 安装 ```bash npm install parse-x-to-text ``` 或者使用Yarn: ```bash yarn add parse-x-to-text ``` ## 🚀 快速开始 ### 基本使用 ```javascript import ParseXToText from 'parse-x-to-text'; // 创建转换器实例 const converter = new ParseXToText(); // 转换单个文件 const file = document.getElementById('fileInput').files[0]; const result = await converter.convertToText(file); if (result.error) { console.error('转换失败:', result.error); } else { console.log('转换成功:', result.content); console.log('总页数:', result.totalPages); console.log('转换耗时:', result.conversionTime + 'ms'); } ``` ### 按页码转换 ```javascript // 转换指定页码范围 const options = { byPage: true, pageRange: '1-5', // 转换第1-5页 includePageNumbers: true }; const result = await converter.convertToText(file, options); ``` ### 批量转换 ```javascript // 批量转换多个文件 const files = Array.from(document.getElementById('fileInput').files); const results = await converter.convertMultipleFiles(files); // 获取转换统计信息 const stats = converter.getConversionStats(results); console.log('成功转换:', stats.successfulConversions, '个文件'); ``` ## 📚 API 文档 ### ParseXToText 类 #### 构造函数 ```javascript const converter = new ParseXToText(); ``` #### 方法 ##### `getSupportedFormats()` 获取支持的文件格式。 ```javascript const formats = converter.getSupportedFormats(); // 返回: ['pdf', 'epub', 'mobi'] ``` ##### `isFileSupported(file)` 检查文件是否支持转换。 ```javascript const isSupported = converter.isFileSupported(file); // 返回: boolean ``` ##### `getFileInfo(file)` 获取文件信息。 ```javascript const fileInfo = converter.getFileInfo(file); // 返回: { name, size, type, lastModified } ``` ##### `convertToText(file, options)` 将文件转换为文本。 ```javascript const result = await converter.convertToText(file, { byPage: false, pageRange: undefined, outputFormat: 'txt', includePageNumbers: false, separator: '\n\n--- 第 {page} 页 ---\n\n' }); ``` ##### `convertToHTML(file, options)` 将文件转换为HTML。 ```javascript const result = await converter.convertToHTML(file, options); ``` ##### `convertMultipleFiles(files, options)` 批量转换文件。 ```javascript const results = await converter.convertMultipleFiles(files, options); ``` ##### `downloadResult(result, filename)` 下载转换结果。 ```javascript converter.downloadResult(result, 'output.txt'); ``` ##### `getConversionStats(results)` 获取转换统计信息。 ```javascript const stats = converter.getConversionStats(results); // 返回: { totalFiles, successfulConversions, failedConversions, totalPages, totalFileSize, averageConversionTime } ``` ##### `formatFileSize(bytes)` 格式化文件大小。 ```javascript const size = converter.formatFileSize(1024); // 返回: "1 KB" ``` ### 转换选项 (ConversionOptions) ```typescript interface ConversionOptions { /** 是否按页码转换 */ byPage?: boolean; /** 指定页码范围,格式: "1-5" 或 "1,3,5" */ pageRange?: string; /** 输出格式 */ outputFormat?: 'txt' | 'html'; /** 是否包含页码信息 */ includePageNumbers?: boolean; /** 自定义分隔符 */ separator?: string; } ``` ### 转换结果 (ConversionResult) ```typescript interface ConversionResult { /** 转换后的文本内容 */ content: string; /** 总页数 */ totalPages: number; /** 转换的页数 */ convertedPages: number; /** 文件大小(字节) */ fileSize: number; /** 转换耗时(毫秒) */ conversionTime: number; /** 错误信息 */ error?: string; } ``` ## 🎯 使用示例 ### 示例1: 基本文件转换 ```html