用office自带的OCX实现一条形码打印程序,设计思想如下:
BarCodeCtrl由于不带打印功能,所以我先把需要打印的内容摆在一个窗体里面,然后抓取需要打印的内容,存成bmp图,最后由QuickRpt来打印抓取的图片。
存在问题:打印出来的条码识别率不够高,这是为什么呢,是不是图片被压缩了或者其他的原因?条码控件属性如下:
BarCode.Style=2
BarCode.Width=135。
核心代码如下://抓图
procedure TFmPrintStuffBarCode.CathBarCodeToImage();
var
  BarCodeBitmap: TBitmap;
  BarCodeCanvas: TCanvas;
begin  BarCodeCanvas := TCanvas.Create;
  BarCodeCanvas.Handle := Self.Canvas.Handle;  BarCodeBitmap := TBitmap.Create;
  BarCodeBitmap.Width := 232;
  BarCodeBitmap.Height := 110;
  BarCodeBitmap.Canvas.CopyRect(Rect(0,0,232,110),
                                BarCodeCanvas,
                                Rect(0,0,225,110));
  BarCodeCanvas.Free;
  BarCodeBitmap.SaveToFile('BarCode.bmp');
  BarCodeBitmap.Free;end;抓取的图片采用QuickRept打印。
QRImage的一些属性如下:
Autosize:=TRUE;
Stretch:=FALSE;

解决方案 »

  1.   

    使用FastReport,它本身带条码打印。
      

  2.   

    如果不使用 FastReport 直接用Office的Ocx该如何实现呢?
      

  3.   

    Rave都可以的需要独立的,就选择BarCode2组件了
      

  4.   

    谁有这方面代码,可否发点参考,不胜感激!
    [email protected]
      

  5.   

    现在还是用Rave实现。微软的Word自带的条码控件可以随意拉伸,结果打出来的条码识别不了。好不容易调解到免强可以识别的宽度,可惜识别率太差。
    谢谢大家的参与,特别是:ly_liuyang(Liu Yang)