發表文章

目前顯示的是 8月, 2016的文章

C# 列印純黑白圖像要點

給自己備註的 如果使用的是條碼印表機列印圖像,由於條碼印表機沒有所謂顏色深淺的特性 其不是黑(Black)就是白(non-Black),如果要列印圖像(像是標籤上的LOGO), 圖片若是彩色的情況就會出現像是毛邊的點。 解決的方式就是要將圖片做灰階的二階化(threshold) 下面這個方法可以先產生一個二階化圖像的ImageAttributes:         static ImageAttributes BWThreshold(Image sourceImage, float ThresholdLevel)         {             var gray_matrix = new float[][] {                 new float[] { 0.299f, 0.299f, 0.299f, 0, 0 },                 new float[] { 0.587f, 0.587f, 0.587f, 0, 0 },                 new float[] { 0.114f, 0.114f, 0.114f, 0, 0 },                 new float[] { 0,      0,      0,      1, 0 },                 new float[] { 0,      0,      0,      0, 1 }             };             var ia = new System.Drawing.Imaging.ImageAttributes();             using (Graphics gr = Graphics.FromImage(sourceImage))             {                 ia.SetColorMatrix(new System.Drawing.Imaging.ColorMatrix(gray_matrix));                 ia.SetThreshold(ThresholdLevel); // Change this threshold as needed             }

統一發票列印小程式

圖片
1、請注意本版留言過多, 您的留言可能不在這一頁,請到以下留言樓層看看再回應喔~  2、如果您有填寫表單,卻沒有收到我的郵件,有可能您填寫的電子郵件有錯誤,麻煩您查看一下留言是否有我給您的信息喔。因為我沒辦法直接連繫到您。 1 ~200 則,請按這裡   200+ 以上請按這裡 因為公司會在一堆系統上都有可能要印發票(真不懂要怎麼搞?) 希望可以有個小工具可以列印電子發票, 原本發票列印程式要使用條碼機專用語言(ZPL、EPL),但容易被某種機型綁定。 當然可以考慮使用ESC/POS指令的方式,但也是要印表機支援這種指令列印模式(當然多數表機都有支援),不過要列印QR碼,就有點不是那麼容易了,除了要自己編碼外還要注意中文問題。 後來我想改用Windows Printer Driver來列印,雖然不如指令式快速,但可以方便各類型程式應用,因此考慮了以下的條件: 使用C#開發、.Net 2.0平台、Console呼叫 本來想用RDLC來做,但是很不幸的,失敗了,原因就在於條碼, 國稅局訂定的Code39條碼內要放入21個字元(19+2)長度, 如果使用RDLC的話,解析度只有100DPI,密度不夠,條碼線條沾黏嚴重。 一般的條碼機至少都有200DPI得等級,這RDLC也太彆腳了吧, 網路上找盡RDLC條整解析度的方式都沒有比較好的效果。 因此,改用直接C#繪製的方式來做, 當然中間為了條碼圖像清晰度的問題花了不少心力解決。 下載點: PrintInvoice