2014年9月22日 星期一

iText in .NET PdfPCell文字置中

iText是我在剛出社會時

因為iReport拉到快吐血

每一條線都要放大400倍來畫還不一定能對齊

只好用iText來寫報表

雖然程式碼多了很多行,而且看起來也不直覺

但開發速度比直接拉快多了

從此我也很痛恨程式碼自動產生的工具,醜醜的


所以當我從java轉.net

要畫PDF報表時我就放棄pdfsharp,直接用iTextSharp

除了有用過感到很親切之外

最重要的是,他的表格支援度比pdfsharp好多了


今天在畫報表時,順利畫完後開始做微調

要把一些文字置中真是搞死我

因為我已經寫了很多行類似下面的程式

tableBase.AddCell(new PdfPCell("我是內容"));


要改成置中的話還要全部抽出來變成下列這樣

PdfPCell aa = new PdfPCell("我是內容");
aa.VerticalAlignment = PdfPCell.ALIGN_CENTER;
aa.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
tableBase.AddCell(aa);


喔天啊!! 我有幾十個PdfCell耶!!

轉個型好了,另外定義一個新的PdfCell,而且預設是置中

public class PdfPCellCenter : PdfPCell {
     public PdfPCellCenter(Paragraph phrase):base(phrase) {
          this.VerticalAlignment = PdfPCell.ALIGN_CENTER;
          this.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
     }
}


之後把
tableBase.AddCell(new PdfPCell("我是內容"));

全部改成
tableBase.AddCell(new PdfPCellCenter("我是內容"));



搞定!!

沒有留言:

張貼留言