2022年1月15日 星期六

在 Centos 上安裝 Ghostscript ,這是 使用 PDF要用到的。

GhostScript:

https://www.ghostscript.com/index.html

下載:

https://www.ghostscript.com/releases/gsdnld.html

安裝:

在SSH終端上:

cd /usr/src

wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9550/ghostscript-9.55.0.tar.gz

tar -xzvf ghostscript-9.55.0.tar.gz

cd ghostscript-9.55.0

./configure 

make

make install


在 使用 Imagick,使用 PDF 轉換 JPG,一直發生 Internal Error 500

經查了很久,才知道,Server必須安裝 PHP Imagick 以外,還有 GhostScript,這是一個 PDF 要用的免費程式。

我的主機上沒有,所以必須安裝起來。





在 PDF Report 裡面的  PDF Layout Code下面增加產生  PDF,轉 JPG 的程式

因為,我們不知道 SC產生的 PDF 檔案名稱,只好自己用自訂的PDF檔名來產生

然後,再由自己產生的 PDF 產生 JPG

$t_pdf_file = $_SERVER['DOCUMENT_ROOT']."/_lib/tmp/id_".{pay_form_id}."_pay_form.pdf";

$t_jpg_file = $_SERVER['DOCUMENT_ROOT']."/_lib/tmp/id_".{pay_form_id}."_pay_form.jpg";

$pdf->output($t_pdf_file,"F");

$im = new Imagick();

$im->setResolution(150, 150);

$im->readImage( $t_pdf_file );

$im->writeImages( $t_jpg_file, false );




** 還有 /domains/<websitename>.com/public_html/_lib/prod/third/wkhtmltopdf/linux-amd64/wkhtmltopdf-amd64 權限要設成 "777"




2022年1月11日 星期二

ScriptCase PDF 字型

 Scriptcase 的 PDF,如果使用預設字型,也就是在 PDF Application 的設定裡font 沒有設定字型,那麼,產生出來的結果,我的情形是在電腦上可以出現中文字型,但是在手機上,就沒有中文字型!

後來,試了很久,在 PDF Application 的設定裡字型改為其他字型,結果是中文字亂碼,試了幾個,以下是中文可以出現的:

  • kozminproregular
  • cid0jp
  • cid0ct
  • cid0kr
  • kozgopromedium
PDF的字型,是抓取機器上的字型,如果有特殊字型,需內嵌在PDF檔案裏面。
猜想,前面沒有設定字型,可能就是因為預設的字型,在手機上沒有,所以出現空白。
設定好字型以後,可能就內嵌在PDF檔案裡面了,可以正常顯示。

PDF手機字型顯示問題解決了!



2022年1月9日 星期日

ScriptCase 的 Application Field Type 是 Label / Text 使用

 ScriptCase 裡面的 Field Type

如果是設定為 Label,在 程式中,無法參照到值

必須設定為 Text,而底下的屬性設為 Label Field - Cannot be changed. 這樣程式才可以參照到值。


例如:一個 Control Application

兩個欄位:

{user}、{id}

如果 {id} 為  Label,則在程式中,{id}出來的是null

必須設 {id} 為 TEXT,底下的屬性設為 Label Field,這樣在程式中,{id}就可以抓到值了。

如何判斷現在FORM是在 insert mode? 還是 update mode?

只要用  if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。