2017-09-03 192 views
0

如何設置固定寬度(500)和高度(300)條碼尺寸? 我正在使用Zxing庫來生成條形碼圖像。固定寬度和高度條碼PDF417格式

private byte[] GenerateBarCodeZXing(string data) 
    { 
     var writer = new BarcodeWriter 
     { 
      Format = BarcodeFormat.PDF_417, 
      Options = new EncodingOptions { Width = 500, Height = 300, Margin=0 } 
     }; 
     var imgBitmap = writer.Write(data); 
     using (var stream = new MemoryStream()) 
     { 
      imgBitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png); 
      return stream.ToArray(); 
     } 
    } 

輸出圖像:

enter image description here

enter image description here

+0

你沒有提到你的代碼/結果有什麼問題。是不是500x300? – kennyzx

+0

^圖像尺寸是500x300,但我希望條形碼尺寸相同。如果您查看上述兩張圖像,則會更改第二個圖像高度/寬度。我正在使用條形碼pdf_417生成PDF的Web應用程序。所有數據都是動態的,因此我希望條形碼在所有PDF中的大小相同。 –

回答

1

不能設置固定的寬度和高度與ZXing.Net。該庫僅支持無抗鋸齒的縮放。結果大小首先取決於應該編碼的內容。更多的內容意味着更多的行和列。每個列和行的單個黑色(和白色)條都具有指定的大小。在大多數情況下,所有小節的總和不等於所需的大小。如果需要更多空間,則生成的PDF417代碼將大於請求的大小。如果少於那裏有更多的空白。渲染器僅支持整數比例因子。

最好的方法是請求1像素寬度和1像素高度的大小。條形碼書寫器生成最小所需大小的條形碼位圖。然後用你喜歡的圖像處理庫調整位圖大小。