用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;
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;
解决方案 »
- 在进行大量数据处理时,如何加快处理速度?
- 100分:调用DLL种的MDI,在带包编译后出现的问题,大家看看
- 求一算法:在m个数中,求n个数的组合,若这n个数的和等于sum,则...
- fastreport奇怪的问题,在文本编辑器中输入的汉字显示乱码,如何解决?
- 怎样编写自己的VCL控件?怎样从已有的控件上继承?
- 这种计算日期的方法怎么做?
- 请教EDIT控件输入格式的确定?
- 请问Delphi编写的ActiveX控件中,如何获取WM_DEVICECHANGE消息。
- 怎样知道鼠标作了什么运动阿,比如画了一个园,写了一个什么字??
- 创建一个临时的checkbox字段。
- ★★★散分了,今天涨了5分信誉分,有问题要问,请大版主ARI进来一下★★★
- HELP!求一个答案!
[email protected]
谢谢大家的参与,特别是:ly_liuyang(Liu Yang)