您在這裡

Print Friendly Pages

charlesc's 的頭像
charlesc 在 2006-08-22 (二) 22:07 發表
模組介紹: 

提供「友善列印」的功能,友善列印頁面不僅可以設定專屬的logo和css,還可以把內容裡面的網址直接印出來。

模組分類:

模組版本:

回應

看起來是因為這模組只把 node body 印出來,其他 CCK 欄位就沒印到了:

<?php print $node->body; ?>

怎改呢...不太瞭解...

另一個 printable 模組則可以全部印出,不過其預設的列印版型不大好看...

新版本現在稱為 Printer, e-mail and PDF versions
提供友善列印 e-mail傳送及直接將node轉成pdf
轉pdf部分 可用 dompdf和 TCPDF兩個工具
不過好像都不支援中文

將PDF檔案內容以中文字輸出方式

1. 下載 tcpdf_php5 http://sourceforge.net/project/showfiles.php?group_id=128076
2. 將檔案解開,裡頭的 utils目錄有 ttf2ufm.exe 檔必須在WINDOWS下動作
3. 下載免費的中文字型檔 .TTF形式的
4. 把字型放到utils當中,執行 ttf2ufm.exe -a -F 你所下載的字型檔檔名.ttf
5. 跑完之後將所有產生的檔案上傳到/sites/all/modules/print/tcpdf/fonts/utils目錄中(產生的檔案應該有 .afm .t1a .ufm 這三個)包含你所下載的字型檔.ttf
6. 在utils目錄下執行php -q makefont.php 你所下載的字型檔檔名.ttf 你所下載的字型檔檔名.ufm
執行完應該會產生 .php .z ctg.z 這三個檔案
7.將這3個檔案移到上一層也就是fonts目錄中
8.到管理區設定PDF資料,Font Family欄位請輸入你所轉換的字型檔檔名,然後看成果

以上的資料我參考這裡 http://www.mamu.com.tw/blog/2008/06/05/vtigercrm-part-two-chinese/ 這篇的TCPDF版本稍有差異,不曉得是哪個版本的?
目錄裡並無 makefontuni.php 檔,死馬當活馬醫把東西弄出來了,請各位參考囉,如果所使用的字型並非大眾化時才將字型內嵌,字數太多的文章不建議內嵌字形,輸出檔案會相當肥,太多人同時索取會讓伺服器超載

補充:
不內嵌字型的方法:
1.在makefont 時加入參數
MakeFont (string $fontfile, string $fmfile [, boolean $embedded [, $enc="cp1252" [, $patch=array()]]])
$fontfile : .ttf or .pfb 的檔案路徑.
$fmfile : Path to the .afm file for Type1 and TrueType or .ufm for TrueTypeUnicode.
$embedded : Set to false to not embed the font, true otherwise (default).
$enc : Name of the encoding table to use. Default value: cp1252.
2.修改產生的.php檔案
更改字體類型為 $type='cidfont0';
增加一行設置默認字體寬度 $dw=1000;
移除 $enc, $file and $ctg 的變數定義

依據你的語系新增下列的文字區塊到文件的最後
// Chinese Traditional / /繁體字型
$enc='UniCNS-UTF16-H';
$cidinfo=array('Registry'=>'Adobe', 'Ordering'=>'CNS1','Supplement'=>0);
include(dirname(__FILE__).'/uni2cid_ac15.php');

// 簡體字型
$enc='UniGB-UTF16-H';
$cidinfo=array('Registry'=>'Adobe', 'Ordering'=>'GB1','Supplement'=>2);
include(dirname(__FILE__).'/uni2cid_ag15.php');

還不懂怎麼改請參考arialunicid0.php檔案裡的配置,或是參考官網說明
http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf_fonts

展示請看這裡 http://www.dionysian.idv.tw/node/13

詢問大家~
>w<若使用安了此模組但是使用pdf時,中文字都會跑亂碼要如何解決呢? 謝謝

人人把心中的愛發揮出來,就能凝聚善的福業,形成善的循環。 (靜思語錄)

請問有人有安裝6.x的版本嗎?
TCPDF ERROR: Missing or incorrect image file: D:\....\sites\all\modules\print\print_pdf\tcpdf\cache\jpg276.tmp
使用時有出現這樣的錯誤訊息,請問該如何解決才能轉換PDF呢?

我也是6版的但沒遇到上面的問題~
只遇到pdf轉出來是亂碼的問題>w<

人人把心中的愛發揮出來,就能凝聚善的福業,形成善的循環。 (靜思語錄)

昨天輪到我遇上這個問題了: 就是如何將 UTF8 的中文頁面 印製成 pdf 檔 ?

從昨天折騰到今天, 最後得到一個最簡單的結論是: 將字體設定為 hysmyeongjostdmedium 就對了~

不過時空環境可能不太一樣, 因為 google 到很多舊資料, 似乎跟目前我處的環境有點差異, 不太合用, 因此折騰了很久. 以下我簡單描述我的處理過程:
1 安裝 print 模組: http://drupal.org/project/print , 正常的下載安裝程序, 為了省事, 在 http://[website_base_url]/admin/build/modules/list 下, 把 [Printer, e-mail and PDF versions] 下的所有項目全勾了. 不過要使這模組能運作, 還得再裝 3rd-party tools(從 wkhtmltopdf / TCPDF / dompdf 任選其一, 詳細請見 print 模組 的 專案說明)才行. 我個人選擇採用 TCPDF, 接著是:

2 安裝 TCPDF. 先自 http://sourceforge.net/projects/tcpdf/files/ 下載最新版本(目前我所見得的是: tcpdf_5_9_141.zip ), 再解壓到 sites/all/libraries/tcpdf

3 以上安裝 print 模組, 安裝 TCPDF 沒問題後. 接著就是設定 print 模組: http://[website_base_url]/admin/settings/print/pdf 它的設定項目這裏不一一贅述. 主要是設定字體:
3.1 設定 Font Family: 為 hysmyeongjostdmedium , 然後儲存. (也就是把預設項目 helvetica 改掉)

4 測試看看效果如何?
4.1 隨便開啟一個page, 正常的話, 應該長得像這樣:
4.2 產生的 pdf 檔裏, 果然 如實地 把中文也列印出來, 而非 問號 或是 方塊.

其它說明事項:

1 在上述的 print 模組設定當中, 我試著找出能夠秀出中文的字體, 但試了4, 5個都試不出來. 關鍵在於根本不知道哪種字體有支援中文.
1.1 想想這樣亂試也不是辦法, 上網找資料可能還比較快.

2 很多網頁教學都很詳細, 也會講到: 如何把 droidsansfallback.ttf 這個 TRUETYPE 轉為 TCPDF 可用的字體, 接著掛載到 tcpdf/fonts 目錄下. 但我個人遭遇的困難是:
2.1 我在 win7家用進階版(小筆電搭載的)裏, 居然找不到這個字體檔.
2.2 就算從網路找到這個字體檔, 另外還要有轉檔工具 makefont.php 才行. 想不到我下載的 tcpdf 工具包裏 居然沒有 makefont.php .

3 等等...現在是什麼狀況? 我該一步步排障? 還是另外找看有沒有其它辦法? 或是直接問比較快?
3.1 但我想一想: 就算問別人, 得到的答案也不會比在 google 上找到的更清楚了. 更何況這是[冷門]考題, 這中間又卡了很多技術細節, 熟悉的人恐怕也不多.
3.2 難不成我還要再安裝 dompdf 來 try ? 時間都浪費在 try try try 上面, 真是不甘心啊~

4 後來我沒安裝 dompdf, 就胡try 亂try 居然 try 出 msungstdlight 這個字體可用(因為它有關鍵字: ms, ung, 我聯想到跟 微軟字體以及 unicode 有關).

5 好了, 接著就上來 po 文了. 相信日後可能還用得著. 謝謝收看.

後續追蹤:

1 還是發現一些問題: 日文 / 簡中 / 繁中 皆可秀出, 但是 韓文 不行. 看來 msungstdlight 目前也只能將就用.

2 後來又 try 出好幾種皆可, 列舉如下:
2.1 hysmyeongjostdmedium <- 這個 (繁|簡)中 / 日 / 韓 都可秀出. 但是簡中及日文當中某些漢字會缺字, 慘矣!
2.2 msungstdlight <- 韓 不行.
2.3 stsongstdlight <- 韓 不行.
2.4 kozminproregular <- 韓 不行.
2.5 kozgopromedium <- 韓 不行.

時間都浪費在 try try try 上面, 真是不甘心啊~

不停的嘗試、找到小眾但關鍵解決之道的喜悅,又可以把心路歷程分享給有同樣難題的人,這就是開源碼社群吸引人的地方!

tky

這種 try try try 的經驗太多其實未必是好事, 因為真的很花時間. 而時間就是金錢.

而且有時候 try 出一條路徑了, 回溯過程將之文件化又要再花一段時間, 這些從遭遇問題,
找尋文件, 文件探討, 釐清頭緒, 實際去try*3, 修正磨合, 總結歷程, 文件記錄...整個流程的
時間加總起來, 是很驚人的.

有在接專案的朋友應該知道, 為什麼時程經常delay? 因為事先都估不準. 除非專案過程中的
技術都是自己已經操練到熟到不能再熟了, 不然只要專案過程中, 哪怕是任何一個小小的的技術問題,
背後可能都潛藏著如此這般驚人的時間風險.

我了解專案開發或解決問題需要花時間,尤其在有時間壓力的情況下,那有多折磨人。
就是因為如此,我欣賞那些還願意花時間把自己在解決問題時的心路歷程拿出來分享的人(而不是僅僅提出問題而已的人)。
有沒有解決問題倒是其次,重點是讓其他人能夠明確了解問題所在、合理的可能作法、刺激大家想出新的想法或解法。

tky