前言
因為環境有中文「自造字」,所以透過有些報表元件來產生 PDF 檔案時,那些 自造字 就無法在 PDF 檔案中呈現。
例如 Crystal Report 轉出 PDF 時,自造字就會是空的。 Excel 如果使用者沒有登入時,另存的 PDF 那些自造字也有可能變成空白。
解法
所以的解法就是透過列印的方式來產生 PDF 檔。
而使用的正是透過 Adobe PDF 印表機,它可以設定一個輸出的 Port 對應到某個目錄,
而我們的程式呼叫報表元件印到印表機後,再到 Adobe PDF 印表機的輸出目錄檢查檔 PDF 是否產生完成。
後來在 Github 上發現 PdfScribe 也可以達到相似的功能。
試了一下,產生報表的速度也還不錯,是 Adobe PDF 印表機的另一個選擇。
因為我還需要讓它自動依原本檔案名來產生對應的檔名,而不是問使用者或是固定的檔案名稱,
所以就修改了程式,在 Config 中多加一個 UsePrintTitleAsOutputFileName 的設定值。
有需要的朋友可以參考看看 PdfScribe - UsePrintTitleAsOutputFileName
參考資源
PdfScribe
PdfScribe 安裝檔
PdfScribe - UsePrintTitleAsOutputFileName
PdfScribe - UsePrintTitleAsOutputFileName 安裝檔