如何实现标签在一张纸上横竖排2*3来打印。有很大难度,高手请进。(200分)

  • 主题发起人 主题发起人 好好说
  • 开始时间 开始时间

好好说

Unregistered / Unconfirmed
GUEST, unregistred user!
如何实现多标签打印
(只需要设计好一个标签,如名片,
然后在一个2X3的标签纸上打印出6个相同内容,同样排版格式的标签来)
 
直接打印:
with Printerdo
begin
begin
Doc;
xxxxx
EndDoc;
 
能够解释的更清楚些吗?我完全不理解你的意思!
 
采用原始的方法,直接驱动打印机输出:
printer.Canvas.Font.Size:=12;//这二句在打印中可调节。
printer.Canvas.Font.Name:='宋体';
printer.begin
doc//开始打印
printer.canvas.textout(x,y,mystring);//x,y打印的坐标,mystring打印的内容。
printer.enddoc;
 
procedure TForm1.Button1Click(Sender: TObject);
const
x=2;
y=3;
dx=100;
dy=200;
var
i,j:Integer;
begin
printer.begin
doc;//开始打印
for i:=1 to xdo
begin
for j:=1 to ydo
begin
printer.canvas.textout(x*dx,y*dy,'我的标签');
end;
end;
printer.enddoc;
end;
 
那么,(首先多谢张兄的热情回复)
将要打印的文字和图形定义为一个函数,

将要打印的内容转换为一个图形,
哪种方式好呢?
另外,我的标签要求要有背景
(颜色或图案)。
用上面的方案实现有多大难度呀?
我看过一片关于身份证打印的标签方式,
其中没有讲背景问题?
 
转图形不好,不同的打印机分辨率不一样,打出的图形大小也不一样。
如果缩小图形还过得去,放大打印就惨了。
要打印背景图案,可以用CopyRect输出图象。
 
procedure TForm1.Button1Click(Sender: TObject);
var
Bmp: TBitmap;
begin
Bmp := TBitmap.Create;
try
Bmp.LoadFromFile('MyBitmap.bmp');
with Printerdo
begin
begin
Doc;
Canvas.Draw((PageWidth - Bmp.Width) div 2,
(PageHeight - Bmp.Height) div 2,
Bmp);
EndDoc;
end;
finally
Bmp.Free;
end;

end;
 
成功了吗?我也很关注此问题
 
接受答案了.
 
后退
顶部