前言
在 將 datatable 的資料轉出成有浮水印的 PDF 檔 (2) 中,我們已可以將 datatable 的資料轉出有浮水印的 pdf 檔。 但客戶有個需求是, footer 可以在最後一頁才顯示嗎?
因為我們是透過 Excel 去轉成 PDF ,於是就研究看看 Excel 是否可在最後一頁才顯示,參考 Excel 有多頁列時,只希望列印最後一頁的頁尾,其他分頁都不會印出 似乎不容易 (啓動巨集呢!)
研究
Excel 無法操作,那就看看 PDF 是否可以加工,研究了一下,可以在不同的 Page 中加入 Header 及 Footer 。
所以在產生 PDF 後,在最後一頁加入我們要的 Footer 就可以了。
程式如下,
1 | public static MemoryStream AddFooterAndWatermark(MemoryStream pdfStream, WatermarkArg arg) |
所以使用時,如果有要 Footer 的話,就改 Call AddFooterAndWatermark 這個 Method。
1 | protected void btnFooter_Click(object sender, EventArgs e) |
產出的結果如下,
- 註:使用 TextState 時 (var defaultTextState = new TextState(“MingLiU”, 8);),不能直接輸入中文的字型名稱,要到機碼「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\fonts」去找出對應的名稱哦!
例如: MingLiU。不然會出現 FontNotFoundException,如下,
‘Aspose.Pdf.Text.FontRepository.FindFont(“新細明體”)’ 擲回 ‘Aspose.Pdf.FontNotFoundException’ 類型的例外狀況
而且機碼的名稱,目前是區分大小寫的哦!
1 | // 中文字型名稱 ,或是機碼中的名稱大小寫不對,都會錯誤 |