Skip to content

Repository files navigation

PDFEx

一套以 Python 開發的現代化桌面 PDF 處理工具。

PDFEx 是一款專為 Windows 設計的桌面 PDF 工具,提供 PDF 合併、分割、逐頁分割、圖片轉 PDF 及 Office 文件轉 PDF 等功能。

本專案除了著重於 PDF 處理功能外,也以分層式架構(Layered Architecture)設計,將 UI、流程控制、商業邏輯及基礎設施分離,以提升程式的可維護性、可擴充性與可讀性。

本專案同時作為個人軟體工程作品集,展示桌面應用程式開發、PDF 文件處理及軟體架構設計能力。


功能特色

PDF 處理

  • 合併多個 PDF
  • 自訂頁碼分割
  • 逐頁分割
  • 支援頁碼範圍解析
  • 自動頁碼格式轉換

文件轉換(使用Office API)

  • 圖片 → PDF
  • Word → PDF
  • Excel → PDF
  • PowerPoint → PDF

使用體驗

  • 現代化桌面介面(CustomTkinter)
  • PDF 縮圖預覽
  • 批次處理
  • 多種匯出模式
  • 自動偵測 Office 支援

系統架構

PDFEx 採用分層式架構(Layered Architecture),將不同職責拆分為 UI、Controller、Service、Domain 及 Infrastructure,各層僅負責自身工作,使程式具有良好的可維護性與擴充性。

                    UI Layer
┌──────────────────────────────────────────────┐
│ MainWindow                                   │
│ Toolbar │ Sidebar │ File List │ Preview      │
└──────────────────────────────────────────────┘
                     │
                     ▼
                Controller Layer
┌──────────────────────────────────────────────┐
│ ImportController                             │
│ PDFController                                │
│ ExportController                             │
│ FileListController                           │
└──────────────────────────────────────────────┘
                     │
                     ▼
                 Service Layer
┌──────────────────────────────────────────────┐
│ PDFService                                   │
│ OutputService                                │
│ ImportService                                │
│ PreviewService                               │
│ ConversionService                            │
└──────────────────────────────────────────────┘
                     │
                     ▼
        Domain / Infrastructure Layer
┌──────────────────────────────────────────────┐
│ DocumentItem                                 │
│ Page Parser                                  │
│ Poppler                                      │
│ Office Automation                            │
│ pypdf                                        │
└──────────────────────────────────────────────┘

專案架構

PDFEx
│
├── config/                  # 專案設定
│
├── core/
│   ├── controller/          # 流程控制
│   ├── domain/              # 領域模型與商業規則
│   ├── infrastructure/      # 外部工具整合
│   └── services/            # PDF 與文件處理邏輯
│
├── ui/
│   ├── components/          # UI 元件
│   ├── windows/             # 視窗
│   └── theme/               # 主題樣式
│
├── resources/               # 圖示、資源
├── licenses/                # 授權文件
└── utils/                   # 共用工具

技術棧

程式語言

  • Python

桌面介面

  • CustomTkinter
  • Tkinter

PDF 處理

  • pypdf
  • Pillow
  • Poppler

Office 自動化

  • pywin32

打包

  • PyInstaller
  • Inno Setup

設計亮點

  • 分層式架構(Layered Architecture)
  • Controller / Service 分工
  • 模組化 UI 設計
  • 可重複使用的 PDF 處理流程
  • 支援多種文件格式轉換
  • 易於維護與擴充

未來規劃

預計持續加入以下功能:

  • OCR 文字辨識
  • 更多 PDF 分割模式
  • PDF 預覽功能強化
  • AI 輔助文件處理
  • 更多文件格式支援
  • Docker跨平台
  • 字體大小調整

執行環境

  • Windows 10 / Windows 11
  • Microsoft Office(Office 轉 PDF 功能需安裝)
  • Poppler(已內建)

授權

詳細授權內容請參閱 licenses_twlicenses_en 等相關文件。

About

Installer for PDFEx

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors