急!急!急!急!RichEdit精确输出到打印机的问题!高手请进(170分)

  • 主题发起人 主题发起人 zhongtu
  • 开始时间 开始时间
Z

zhongtu

Unregistered / Unconfirmed
GUEST, unregistred user!
我在RichEdit中动态生成了如下内容,
──────────┬────┐
│ 最终部门 │员工编号│
├──────────┼────┤
│ 总厂 │ erffff │
└──────────┴────┘
可是,输出到打印机的结果确是:
──────────┬────┐
│ 最终部门 │员工编号│
├──────────┼────┤
│ 总厂 │ erffff │
└──────────┴────┘
然而,我在RichEdit中的结果确是正确的,字体为宋体,字号为9.
高手请进!



 
你将结果保存到一个文件中,打印文件试试。
 
是不是输出的空格有问题?
 
请贴出如何实现打印?以便分析。
 
检查里边的空格键中,半角空格Chr(20)以及全角空格Chr(32)的个数是否对称。
 
to:dopro
我用写字板打开,预览正常,但打印结果还是不正确!
 
夺工1:表格线假设为6(绝对是偶数(因其长度为2))
内容长度假设为3,则前补1格空格,后补2格空格,生成的结果为
______
123 |
在内容中全部是半角空格Chr(20),无全角空格Chr(32)
 
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;

最后,再用Printer.canvas.textout(x,y,'输出内容')既可
 
你是用richedit,可是打印的时候你是用字符方式打印?所以空格的宽度和屏幕看见的就不同了
 
你直接用 Richedit1.Print( 'abc' ) 打印出来的不行吗
 
直接打印 RichEdit.Canvas
 
用等宽字体试试看?
 
没用TAB吧?
 
netkk:
如何直接打印RichEdit.Canvas?
 
结果不满意.少爷的拐杖可行.但只有两种字号可以选择.且第二种字号太大.第一种字号
有点小.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部