# PdfMdPreviewer **Repository Path**: fx_guo/pdf-md-previewer ## Basic Information - **Project Name**: PdfMdPreviewer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-12 - **Last Updated**: 2026-09-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PDF / XPS / Markdown / STL / STEP 查看器 一个基于 .NET 10 WinForms、Aspose.PDF、WPF XPS 组件、WebView2 和 WebGL 的 Windows 只读文件查看器,支持预览 PDF、XPS、Markdown 文档、STL 和 STEP 3D 模型。PDF 使用原生 WinForms 分页控件,不通过 WebView2 渲染。 仓库另含独立运行的 STEP 3D 查看器。主客户端只提供启动入口,STEP 解析与显示不集成到文档预览器进程。 当前版本:`V1.0.4` ![应用图标](Assets/app-icon.png) ## 功能特性 ### 独立 STEP 3D 查看器 - 支持打开 `.step`、`.stp`,显示常见 B-rep / POLYLINE STEP 模型的拓扑线框 - 左键旋转,右键或中键平移,滚轮缩放,并可一键适应窗口 - 独立项目位于 `StepViewer/`,生成独立的 `StepViewer.exe` - 构建桌面客户端时复制到输出目录的 `StepViewer/` 子目录,主客户端通过“文件 → STEP 3D 查看器...”调用 - 主应用支持直接打开并预览 `.pdf`、`.xps`、`.md`、`.markdown`、`.stl`、`.step`、`.stp` 文件 - STEP 使用 OpenCascade WebAssembly 精确三角化与 Three.js GPU 实体渲染,并提供结构树、标准视图、边线和网格切换 - STL 支持 ASCII / 二进制格式,以及旋转、缩放、平移和视角复位 - 工具菜单支持使用 Aspose.Words 23.7 将 Word 文档转换为 PDF(DOC、DOCX、DOCM、RTF) - 工具菜单支持使用 Aspose.Slides 23.7 将 PowerPoint 演示文稿转换为 PDF(PPT、PPTX、PPTM、PPS、PPSX、PPSM) - PDF 合并支持添加多个文件、页面缩略图预览、拖拽或按钮编排顺序,以及删除多余页面 - PDF 转图片支持逐页导出 PNG,或按页面顺序纵向合成为一张长图 - 图片转 PDF 支持批量添加 JPG、PNG、BMP、GIF 和 TIFF 图片,拖拽或按钮调整页面顺序,并可选择 A4 自动横竖版或图片原始尺寸 - Office 文件转换不要求用户安装 Microsoft Office、LibreOffice 或其他桌面办公软件 - 支持新建和编辑 Markdown,左侧编辑、右侧实时预览 - Markdown 编辑工具栏支持标题、粗体、斜体、引用、列表、代码和链接 - Markdown 预览支持文字颜色,例如 `[color=#e53935]红色文字[/color]`、`红色文字` 或 `红色文字` - Markdown 预览和编辑器实时预览支持 Mermaid 流程图、时序图等 `mermaid` / `mmd` 围栏代码块,使用随程序发布的本地 Mermaid 11.16.1 脚本,无需联网 - Markdown 预览自动根据一级至六级标题生成可折叠文档导航,支持点击定位、滚动章节高亮和窄窗口自适应 - 自动保存打开历史并按日期倒序分组显示,文件菜单提供独立的清空历史记录入口 - PDF 使用 Aspose.PDF 23.7 渲染到原生分页控件,不经过 WebView2,支持缩放、适合宽度、翻页和打印 - XPS 自动渲染为高清页面,无需安装系统 XPS Viewer - Markdown 自动渲染为 HTML 预览 - STL 使用离线 WebGL 交互式渲染,不依赖外部网络资源 - PDF 和 XPS 支持打印 - Markdown 打印时会先转换为临时 PDF,再进入打印流程 - 支持亮色 / 深色主题 - 默认跟随 Windows 系统主题 - 支持 Windows DPI 缩放,适配高分屏 - 程序启动后自动最大化 - 状态栏右侧显示当前程序版本号 - 自定义应用图标、PDF 文件图标、Markdown 文件图标 - 可通过菜单修复 PDF、XPS 系统默认打开方式 ## 运行环境 - Windows 10 / Windows 11 - .NET 10 Runtime 或 SDK - Microsoft Edge WebView2 Runtime - PDF 预览、PDF 合并、PDF 转图片、图片转 PDF 以及 Word / PPT 转 PDF 需要有效的 Aspose 授权 多数 Windows 10/11 环境已经安装 WebView2 Runtime。如果没有安装,请先安装 Microsoft Edge WebView2 Runtime。 ## 项目结构 ```text . ├─ app/ │ ├─ Program.cs │ └─ PdfMdPreviewer.App.csproj ├─ Assets/ │ ├─ app.ico │ ├─ app-icon.png │ ├─ pdf-file.ico │ ├─ markdown-file.ico │ └─ Mermaid/ ├─ scripts/ │ ├─ register.ps1 │ └─ unregister.ps1 ├─ MarkdownRenderer.cs ├─ MarkdownPreviewAssets.cs ├─ AsposePdfService.cs ├─ PdfMergeForm.cs ├─ PdfImageExportForm.cs ├─ ImageToPdfForm.cs ├─ PdfNativePreviewControl.cs ├─ OfficePdfConverter.cs ├─ PreviewSurface.cs ├─ RegistrationService.cs ├─ ThemeService.cs ├─ ViewerForm.cs └─ PdfMdPreviewer.csproj ``` ## 构建 在项目根目录执行: ```powershell dotnet publish .\PdfMdPreviewer.csproj -c Release -r win-x64 --self-contained false dotnet publish .\app\PdfMdPreviewer.App.csproj -c Release -r win-x64 --self-contained false ``` Aspose 授权支持以下配置方式: - 把 `Aspose.Total.NET.lic`、`Aspose.PDF.NET.lic`、`Aspose.Words.NET.lic` 或 `Aspose.Slides.NET.lic` 放在主程序目录;本地开发时可放在项目根目录,编译和发布会自动复制 - 设置 `PDF_MD_PREVIEWER_ASPOSE_LICENSE` 环境变量,值为授权文件的完整路径 - Metered 授权可设置 `PDF_MD_PREVIEWER_ASPOSE_PUBLIC_KEY` 和 `PDF_MD_PREVIEWER_ASPOSE_PRIVATE_KEY` 许可证文件已通过 `.gitignore` 排除,请勿提交到代码仓库。 发布后的主程序位置: ```text app\bin\Release\net10.0-windows\win-x64\publish\PdfMdPreviewer.App.exe ``` ## 使用方式 直接运行发布目录中的: ```text PdfMdPreviewer.App.exe ``` 也可以把文件路径作为启动参数传入: ```powershell .\PdfMdPreviewer.App.exe "D:\example.pdf" .\PdfMdPreviewer.App.exe "D:\document.xps" .\PdfMdPreviewer.App.exe "D:\notes.md" .\PdfMdPreviewer.App.exe "D:\model.stl" ``` ## 菜单说明 ### 文件 - 新建 Markdown:打开左右分栏的 Markdown 编辑器 - 打开:选择 PDF、XPS、Markdown、STL 或 STEP 文件 - 打印:打印当前打开的文件 - 历史记录:按日期查看并重新打开历史文件 - 清空历史记录:确认后删除全部历史记录文件 - 关闭:退出程序 ### 工具 - Word 转 PDF:选择 Word 文档和保存位置,通过 Aspose.Words 生成 PDF - PPT 转 PDF:选择 PowerPoint 文件和保存位置,通过 Aspose.Slides 生成 PDF - PDF 合并与页面编排:添加一个或多个 PDF,通过缩略图拖拽、上移、下移和删除页面,按当前顺序生成新 PDF - PDF 转图片:可将每一页分别导出为 PNG,也可把所有页面纵向合成为一张 PNG 长图 - 图片转 PDF:批量添加图片、调整页面顺序并生成 PDF,可选择 A4 自动横竖版或按图片原始尺寸分页 Markdown 编辑器支持 `Ctrl+N` 新建、`Ctrl+S` 保存、`Ctrl+Shift+S` 另存为, 以及 `Ctrl+B` 粗体、`Ctrl+I` 斜体。关闭未保存的编辑窗口时会提示保存。 历史文件保存在 `%LocalAppData%\PdfMdPreviewer\History`,名称格式为 `yyyy-MM-dd-原文件名.ext`;同一天遇到同名文件时会自动追加序号。 ### 设置 - 修复系统默认:把本程序注册为 PDF、XPS 默认应用候选,并打开 Windows 默认应用设置页面 - 设置主题: - 跟随 Windows - 亮色 - 深色 ## 设置为 PDF、XPS、STL、STEP 默认打开工具 程序内菜单: ```text 设置 > 修复系统默认 ``` 或者运行脚本: ```powershell .\scripts\register.ps1 -Build -SetDefaultViewer ``` 说明:Windows 10/11 对默认应用有 `UserChoice` 保护,普通程序不能静默强制修改最终默认应用。程序会完成默认应用候选注册,并打开 Windows 默认应用设置页面,你需要在系统页面中确认 `.pdf`、`.xps` 使用本程序打开。 ## 卸载默认应用注册 ```powershell .\scripts\unregister.ps1 ``` ## 文件图标 项目包含三个图标: - `Assets/app.ico`:应用程序图标 - `Assets/pdf-file.ico`:PDF 文件关联图标 - `Assets/markdown-file.ico`:MD / Markdown 文件关联图标 如果修改图标后资源管理器仍显示旧图标,可以重启 Explorer 或注销后重新登录,让 Windows 刷新图标缓存。 ## 备注 - 当前版本不包含 Windows Explorer 右侧预览窗格扩展。 - 当前版本是只读查看器,不提供 PDF 或 Markdown 编辑功能。 - Markdown 渲染器覆盖常用标题、段落、列表、代码块、链接等基础语法。