# iText 使用盤點

此文件僅供技術盤點，不構成法律意見，也不代表已完成 AGPL 合規。

## 套件

- 套件名稱：`itext7`
- 版本：7.2.4
- 引用專案：`PhotoTkutimes.csproj`
- 額外 iText 模組：未直接引用 pdfHTML、OCR、typography 等額外套件；`itext7` 套件本身帶入 commons、kernel、layout、io、forms、sign、pdfa、barcodes、styledxmlparser、svg 組件。
- iText 原始碼修改：repository 中未發現 iText 原始碼或本機 DLL，因此未發現修改證據。

## 使用位置

| 檔案 | 類別或方法 | 用途 |
|---|---|---|
| `Controllers/PdfController.cs` | `PdfController.Get(int no)` | 使用 `PdfWriter`、`PdfDocument`、Layout `Document`、字型及圖片產生 PDF |

## 執行流程

使用者呼叫 `GET /fpdf/{no}.pdf`
→ `PdfController`
→ `DtlPageData.getDtlPageData` 查詢 SQL Server
→ iText Layout 組版
→ 寫入 `wwwroot/pdf/{no}_{timestamp}.pdf`
→ ASP.NET Core 回傳 PDF 檔案

此流程是 API 即時觸發、在伺服器預先落盤後回傳；repository 內未發現 WebJob、排程或 NGINX 設定。靜態檔中介軟體會使 `wwwroot/pdf` 檔案可被網站提供，但實際反向代理架構仍待部署人員確認。

## 專案與共用關係

- solution 內僅發現一個 `.csproj`。
- 未發現 `ProjectReference`、非 NuGet DLL 或私有 NuGet feed 設定。
- PDF 邏輯直接位於 Web 專案 Controller，未拆成獨立 Service。

## 可能的公開邊界

- 必須評估公開：`PhotoTkutimes.csproj`、`Controllers/PdfController.cs`、其直接使用的 Models、Program、Views、設定範例與建置文件。
- 可能為獨立系統：未在此 repository 發現其他 solution/project 可證明為獨立系統。
- 尚待法務確認：整體結合作品邊界、著作權歸屬、委外程式碼、歷史使用、商業授權狀態。

## 第三方元件風險

| 元件 | 授權 | 是否可隨 AGPL 專案發布 | 待確認 |
|---|---|---|---|
| iText 7.2.4 | AGPLv3 或商業授權 | 需依選定授權條款處理 | 是否曾購買商業授權、對應原始碼範圍 |
| `edukai-4.0.ttf` | 創用 CC「姓名標示-禁止改作」3.0 臺灣版 | 可（教育部國字標準字體） | 無 |
| 新聞圖片與文字 | 未知 | 未確認 | 著作權、個資與公開授權 |
| `wwwroot/assets` 舊前端元件 | 部分檔頭標示 MIT/GPL | 未完整確認 | 版本、完整授權與素材來源 |
