我使用简单的GDI
DrawText
示例中使用的字体是
微软雅黑效果
. 但你可以用
或者其他人。没关系。
大文本块的算法很简单。
函数说明
被称为
DT_CALCRECT
函数说明
被称为没有
DT\u CALCRECT公司
以给定的矩形坐标。
结果真的很奇怪,可以从中看出
sample PDF
.
如何避开这个问题?用过的打印机有问题吗?DrawText有问题吗?
在某些情况下,单词中某些字符之间的距离似乎是随机的。有的间距宽,有的窄。字母组合看起来很奇怪,不可读,也很难看。
我尝试了不同的字体和打印机,但问题是不同的,但它总是存在。
我知道
ExTextOut
以及定义所有字符之间的距离/字距的能力,但坦率地说,我不想关心这个问题。我只想那样
函数说明
-
新增时间:2018-08-23 08:49 GMT+2*
到代码(它是一个复杂的打印引擎)。
1.打印字体是用CFont::CreatePointFont创建的,因此LOGFONT结构被清除为零,除了point和face之外,不使用其他标志。
2.映射模式为MM_各向异性。为了缩放屏幕上显示的内容和要打印的内容,我只需使用打印机上komparable对象(textblock)的大小和屏幕上相同的大小。打印到Microsoft PDF打印机的示例的实际值如下所示,我不感兴趣的实际计算方法:
m_pDC->SetMapMode(MM_ANISOTROPIC);
m_pDC->SetViewportExt(2363,100);
m_pDC->SetWindowExt(355,13);
结果表明,LPs中的a行高度为13,平均字符宽度为6。。。