# InvoiceAssistant **Repository Path**: lixingx86/invoice-assistant ## Basic Information - **Project Name**: InvoiceAssistant - **Description**: 采用Blazor实现的发票助手,将多个PDF电子发票合并到一张A4纸上,帮助用户更便捷的整理电子发票,且在打印时大大减少了纸张的使用量。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-05-13 - **Last Updated**: 2026-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 发票助手 (Invoice Assistant) 一款基于 Blazor 的发票管理 Web 应用,支持电子发票解析、批量合并打印等功能。 ## 功能特性 - **发票管理**:支持发票的增删改查、批量导入(Excel/PDF) - **电子发票解析**:自动从 PDF 文件中提取发票信息(发票号码、抬头、税号、金额、税额等) - **发票合并打印**:将多张发票合并为 A4 纸张进行打印,支持 2 合 1、4 合 1 - **用户管理**:支持普通用户和管理员角色 - **打印记录**:记录用户的打印历史 ## 技术栈 - ASP.NET Core 8.0 - Blazor Server - SQLSugar (ORM) - Bootstrap 5 - PdfSharp (PDF 处理) ## 快速开始 ### 环境要求 - .NET 10 SDK - 现代浏览器 (Chrome, Edge, Firefox 等) ### 运行项目 ```bash cd /data/skyline/skyline-repo-cache/9a/8e1e7ebf1104d60c0b8ebf9070c3df64522f67e02cb48b28bab1958a2e4289 dotnet restore dotnet run ``` 应用默认运行在 `http://localhost:5000`。 ### 默认账号 首次启动时会自动创建管理员账号: - 用户名:`admin` - 密码:`Admin123` ## 项目结构 ``` / ├── Components/ # Blazor 组件 │ ├── Layout/ # 布局组件 │ └── Pages/ # 页面组件 ├── Entities/ # 数据实体 ├── Models/ # 数据模型 ├── Options/ # 配置选项 ├── Repositories/ # 数据仓储 ├── Services/ # 业务服务 ├── wwwroot/ # 静态资源 │ ├── css/ # 样式文件 │ ├── js/ # JavaScript │ └── lib/ # 第三方库 └── Program.cs # 入口文件 ``` ## 配置说明 配置文件为 `appsettings.json`: ```json { "Database": { "Provider": "Sqlite", "ConnectionString": "Data Source=invoices.db" }, "PdfStorage": { "Root": "App_Data/invoice-pdfs" } } ``` - `Database.Provider`:数据库类型,支持 `Sqlite`、`MySql`、`SqlServer`、`PostgreSql` - `Database.ConnectionString`:数据库连接字符串 - `PdfStorage.Root`:PDF 文件存储目录 ## 使用指南 ### 发票管理 1. 登录系统 2. 进入「发票列表」页面 3. 可通过 Excel 或 PDF 导入发票 4. 支持按发票号码、发票类型、开票日期等条件搜索 ### 合并打印 1. 在发票列表中勾选要打印的发票 2. 点击「合并打印」按钮 3. 设置打印参数(每张 A4 放置的发票数量、是否显示虚线裁切线等) 4. 预览并打印 ### 用户管理(管理员) 1. 使用管理员账号登录 2. 进入「用户管理」页面 3. 可创建、编辑、删除用户账号 ## 许可证 根据 LICENSE 文件规定。