精确打印的问题,在线~~~~~~print.canvas.textout(x,y ,edit.text);???(100分)

  • 主题发起人 主题发起人 tommy_linux
  • 开始时间 开始时间
T

tommy_linux

Unregistered / Unconfirmed
GUEST, unregistred user!
uses printers
ppix, ppiy: Integer;
procedure Getppi(DC: HDC);
begin
ppix := GetDeviceCaps(DC, logPixelsX);
ppiy := GetDeviceCaps(DC, logPixelsY);
end;

function CmToPixelX(cm: Real): Integer;
begin
Result := Trunc(Cm * ppix / 2.54);
end;

function CmToPixelY(cm: Real): integer;
begin
Result := Trunc(Cm * ppiy /2.54);
end;
有前辈说上面所述,但不知如何调用~~~~~
print.canvas.textout(CmToPixelx(10),CmToPixelY(12) ,edit.text);
这样对吗?
 
no bobay know???
 
根据分辩率横向厘米转化为像素
function CmToPixelX(cm: Real): Integer;
begin
Result := Trunc(Cm * ppix / 2.54);
end;

根据分辩率纵向厘米转化为像素
function CmToPixelY(cm: Real): integer;
begin
Result := Trunc(Cm * ppiy /2.54);
end;
有前辈说上面所述,但不知如何调用~~~~~
print.canvas.textout(CmToPixelx(10),CmToPixelY(12) ,edit.text);

-------------左边10 厘米处
顶部 12 ...
以上的调用应该可以。
但 canvas 的当前(默认)映射必须为像素。
 
接受答案了.
 
已经可以了~ Thank you~~~~~~
 
后退
顶部