ScriptCase 提供很多PDF匯出功能,使用了一些 Third Party 做的 pdf Class
而,Grid Export to PDF,則是使用 wkhtmltopdf 這個程式。wkhtmltopdf 不是一個 php class,而是一個可執行的 cmd 檔案,必須直接用 cmd 來下指令 將 html 產生 pdf
類似這樣:
> wkhtmltopdf source.html output.pdf
而 wkhtmltopdf 需要安裝在 產品主機上,才可以執行。
------------------------------------------------------------
Scriptcase 在自己Local開發環境下,Grip Application 可以順利的匯出 pdf 檔案。
可是,出版到產品環境時,卻無法匯出。
經過Google大神查詢結果,發現:
http://www.toughdev.com/content/2015/11/fixing-pdf-export-issues-when-using-a-scriptcase-grid-application/
1. 產品主機要安裝 JRE
2. SC使用 wkhtmltopdf ,所以
放在:/_lib/prod/third/wkhtmltopdf/os_.../
產生的檔案在
/_lib/tmp/
裡面有 grid 的 html 檔案。
還有一個執行 wkhtmltopdf 的 log 檔案
./wkhtmltopdf-amd64 --page-size A4 --orientation Portrait --header-right "[page]" https://malladmin.hongfumall88.com/_lib/tmp/sc_gamer_grid_link2_qrcode_pdf_html_hmsaloggbfeb16ekrisu8lbjb9.html /home/ddnews/domains/malladmin.hongfumall88.com/public_html/_lib/tmp/sc_pdf_20201210065017_905_gamer_grid_link2_qrcode_pdf.pdf
3. 需要打開 /_lib/prod/third/wkhtmltopdf/os_.../ 那個執行檔的權限為 "777",這樣就解決了權限的問題。
(直接用 SSH 在 Linxs cmd 下去執行 ./wkhtmltopdf-amd64 --page-size A4 --orientation Portrait --header-right "[page]" https://malladmin.hongfumall88.com/_lib/tmp/sc_gamer_grid_link2_qrcode_pdf_html_hmsaloggbfeb16ekrisu8lbjb9.html /home/ddnews/domains/malladmin.hongfumall88.com/public_html/_lib/tmp/sc_pdf_20201210065017_905_gamer_grid_link2_qrcode_pdf.pdf,結果出現 權限錯誤的問題,還有幾個 SC 產生的 html 裡面所指引的 .css 路徑錯誤 "/_lib/" 變成 "/_lib/_lib/....,這應該是 SC產生的 html碼 路徑錯誤!)
修改這幾個後,可以順利產生 pdf, 了,但是出來的中文卻是亂碼!
這個問題還要繼續解決!
======================
https://my.oschina.net/huqiji/blog/804899
終於在這個網頁找到答案了
中文亂碼或者空白解決方法
如果wkhtmltopdf中文顯示空白或者亂碼方框
打開windows c:\Windows\fonts\simsun.ttc拷貝到linux伺服器/usr/share/fonts/目錄下,再次生成pdf中文顯示正常
解決了!
=======================
2021/04/01今天愚人節!
SC的PDF又來搞怪了!
後來查一查,跟上面紀錄的一樣,就是那個執行檔案的權限,改為"777"就可以了!
可能是我前兩天有更新 deploy _lib檔案,而SC的預設權限為"666",
以後記得,如果重新 deploy lib檔案,這裡要來設定權限為"777"
/_lib/prod/third/wkhtmltopdf/linux-amd64/wkhtmltopdf-amd64.exe
沒有留言:
張貼留言