SWFTools 是一套開源命令行工具集,專注於各類文件向 Flash SWF 格式轉換。雖然 Flash 已退出歷史舞台,但在舊系統遷移、電子檔案歸檔、離線文檔瀏覽等場景仍有價值。本文系統整理各工具用法、核心參數、中文 PDF 轉換方案及常見問題。
| 工具 | 功能 | 典型用法 |
|---|---|---|
pdf2swf | PDF → SWF (基於 xpdf,中文支持佳) | pdf2swf -o out.swf in.pdf |
jpeg2swf | 多張 JPEG → SWF 幻燈片 | jpeg2swf -o slide.swf 1.jpg 2.jpg |
png2swf | PNG 版幻燈片 | 同上 |
gif2swf | GIF → SWF (支持動畫) | gif2swf -o anim.swf anim.gif |
font2swf | 字體文件 → SWF (供 Flash 運行時嵌入) | font2swf -o font.swf simsun.ttf |
wav2swf | WAV → SWF (需 LAME MP3 編碼器) | wav2swf -o sound.swf audio.wav |
swfcombine | 合併 SWF (如注入導航欄模板) | swfcombine -o final.swf -T template.swf page.swf |
swfstrings | 提取 SWF 文本 (swf2text) | swfstrings doc.swf > text.txt |
swfbbox | 調整/顯示 SWF 邊界框 | swfbbox doc.swf |
pdf2swf 參數詳解-o, --output file.swf 指定輸出文件 (含 %d 可分頁輸出 page%d.swf)
-p, --pages range 頁碼範圍 (1-20, 1,4,6, 9-11)
-P, --password pwd PDF 打開密碼
-v, --verbose 詳細輸出 (可疊加 -vv)
-z, --zlib 啟用 Flash 6 zlib 壓縮 (減小體積)
-i, --ignore 允許改變繪製順序 (可能異於原 PDF)
-j, --jpegquality N 嵌入 JPEG 質量 0-100 (默認 85)
-s, --set param=value 設置 SWF 編碼器參數 (見下)
-w, --samewindow 超鏈接在同窗口打開
-t, --stop 每頁末尾插入 stop() 動作
-T, --flashversion N 設置 SWF 版本號 (如 9)
-F, --fontdir dir 追加字體搜索目錄
-b, --defaultviewer 內置標準查看器 (翻頁/縮放)
-l, --defaultloader 內置預加載器
-B, -L 指定自定義查看器/預加載器文件
-q, --quiet 抑制普通輸出 (-qq 抑制警告)
-S, --shapes 全部轉為形狀 (不嵌入字體)
-f, --fonts 嵌入完整字體 (不僅用到的字符)
-G, --flatten 合併剪輯層
-I, --info 僅顯示 PDF 頁面信息,不轉換
-Q, --maxtime N 超時中斷 (僅 Unix)
-s 關鍵設置| 參數 | 作用 |
|---|---|
zoom=72 | 渲染分辨率 DPI (默認 72,增大可提高清晰度) |
languagedir=path | 指定 xpdf 語言包目錄 (中文必需) |
font=file | 追加字體文件 |
pages=range | 同 -p |
poly2bitmap | 矢量圖形轉位圖 (減小體積、修復渲染異常) |
bitmap | 全部內容光柵化 (含字體) |
storeallcharacters | 嵌入字體全字符集 |
enablezlib | 啟用 zlib 壓縮 (同 -z) |
bboxvars | 導出邊界框變量供 AS 讀取 |
insertstop | 每幀插入 stop() (同 -t) |
protect | 添加 protect 標簽防反編譯 |
flashversion=9 | 設置最低播放器版本 |
framerate=12 | 設置幀率 |
jpegquality=85 | 同 -j |
splinequality=100 | 樣條曲線轉換質量 |
disablelinks | 禁用所有超鏈接 |
xpdf-chinese-simplified.tar.gz。simsun.ttc (宋體)、simhei.ttf (黑體) 等。D:\xpdf),將字體文件複製到 D:\xpdf\chinese-simplified\CMap\。D:\xpdf\xpdfrc 與 D:\xpdf\chinese-simplified\add-to-xpdfrc,將所有路徑改為本地絕對路徑 (如 cidToUnicode D:/xpdf/chinese-simplified/CMap/Adobe-GB1...)。pdf2swf -o output.swf -t input.pdf -s languagedir=D:\xpdf\chinese-simplified
關鍵點:-s languagedir 必須指向包含 CMap 目錄的 xpdf 語言包根目錄,且字體文件已放入 CMap。
-z (zlib) + -s enablezlib + -j 60 降低 JPEG 質量 + -s poly2bitmap 將複雜矢量光柵化。-F 或 -s fontdir 指向包含中文字體的目錄,或使用 -f 嵌入全字體 (體積增大)。-s internallinkfunction=myFunc 配合 AS 代碼處理;外部鏈接同理。-b 內置查看器,或 -B custom_viewer.swf 自定義導航欄。-q 靜默模式。Flash 已停止支持,新項目建議採用:
若必須維護 SWF 舊系統,本教程參數表可作為離線速查手冊;否則請規劃遷移至現代 Web 標準棧。