使用 wkhtmltopdf 相對 TCPDF 來說可大幅簡化 PDF 的轉換工作
—
CentOS 6 安裝
1 2 3 |
# wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos6.x86_64.rpm # yum install -y libXext libXrender fontconfig xorg-x11-fonts-75dpi xorg-x11-fonts-Type1 # rpm -Uvh wkhtmltox-0.12.5-1.centos6.x86_64.rpm |
—
CentOS 7 安裝
1 2 3 |
# wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm # yum install -y fontconfig xorg-x11-fonts-75dpi xorg-x11-fonts-Type1 # rpm -Uvh wkhtmltox-0.12.5-1.centos7.x86_64.rpm |
—
安裝中文字型及顯示
Hoyo 發生的情況是因為要產生 PDF 的 HTML,所以沒有給完整的結構,因此就少了編碼宣告才發生亂碼
1 |
<meta http-equiv="content-type" content="text/html;charset=utf-8"> |
如果是系統沒有中文字型請參考以下步驟
1 2 3 4 5 |
# mkdir /usr/share/fonts/simsun # cp simsun.ttc /usr/share/fonts/simsun/ # fc-cache -fv # fc-list SimSun,宋体:style=Regular |
—
開始使用
1 |
# wkhtmltopdf a.html a.pdf |
以下是一個實際案例,此為從 Word 設計後轉貼到網頁編輯器 TinyMCE 上,然後再經過 PHP 套版最後的結果
原來使用 TCPDF 的結果,因為 TCPDF 有中文避頭尾功能,所以整體編排結果和網頁顯示不一,如果花時間調整應該也可以得到滿意的結果,不過 Hoyo 就先放棄了
—
設定其他字型 (楷體、黑體)
安裝完字型後,使用 fc-list 指令列出安裝完成字型
1 2 3 4 5 6 7 8 |
# fc-list :lang=zh 楷体,KaiTi:style=Normal,obyčejné,Standard,Κανονικά,Regular,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta 微软雅黑,Microsoft YaHei:style=Normal,obyčejné,Standard,Κανονικά,Regular,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta 文泉驛正黑,WenQuanYi Zen Hei,文泉驿正黑:style=Regular Microsoft YaHei Mono:style=Regular 教育部標準楷書,TW\-MOE\-Std\-Kai:style=Regular 文泉驛等寬正黑,WenQuanYi Zen Hei Mono,文泉驿等宽正黑:style=Regular 文泉驛點陣正黑,WenQuanYi Zen Hei Sharp,文泉驿点阵正黑:style=Regular |
將列出的首個關鍵字設定為 HTML 的字型名稱,例如楷體必須設定為「楷体」,不是網路上說的 KaiTi 也不是楷體,更不是標楷體
HTML
1 2 3 4 5 6 7 8 9 10 |
<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <style> *{ font-family: "楷体", 'Microsoft YaHei', serif; } </style> </head> <body> |
—
頁首、頁尾及大綱
—
紙本版面排版問題
1 2 3 4 5 6 7 8 9 |
<style> *{ font-family: "Microsoft YaHei Mono", serif; font-size: 18px; letter-spacing: 0; white-space: pre; word-wrap: break-word; } </style> |
—
2,701 total views, 4 views today