加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 渲染元文件时,文本太大

发布时间:2020-12-15 09:28:02 所属栏目:大数据 来源:网络整理
导读:我在Delphi XE应用程序中遇到元文件渲染问题. 问题是,当我渲染元文件时,文本太大了. Irfanview和FastReports渲染如下: windows 7 Paint渲染得很好:(这是文本的样子) 是什么原因引起了这个? 谢谢! 解决方法 emf文件只是GDI命令的列表.实际上,系统可以使用
我在Delphi XE应用程序中遇到元文件渲染问题.

问题是,当我渲染元文件时,文本太大了. Irfanview和FastReports渲染如下:

windows 7 Paint渲染得很好:(这是文本的样子)

是什么原因引起了这个?

谢谢!

解决方法

emf文件只是GDI命令的列表.实际上,系统可以使用标准的 Windows GDI命令轻松地“回放”它们(在Delphi中,TMetaFile只是这些API的包装).

当IrfanView或FastReport呈现图元文件内容时,它们只使用Windows GDI相应的命令.当Windows 7 Paint呈现图元文件内容时,它使用GDI渲染器.我甚至认为它在内部将emf文件转换为emf格式,然后使用GDI进行反混淆.

因此,如果emf文件在IrfanView或FastReport中呈现不正确,我怀疑这是因为您的元文件格式不正确:您使用的第三方图形引擎正在生成非标准的emf.可能的问题是目标系统中缺少使用的字体,并且GDI不会像GDI那样替换字体.

另一种可能性是emf文件可能是双格式:它包含emf格式(未正确创建,因此使用GDI无法正确呈现)和emf格式(使用GDI按预期呈现).通常这种双emf / emf格式不应该存在:即使官方GDI库也不允许将其元文件内容保存在emf中.这是由您的第三方库创建的某种“怪物”格式.

我建议如下:

>使用EmfExplorer下载并检查您的emf文件;
>尝试使用GDI渲染元文件;
>尝试使用emf到emf转换器API.

要使用GDI,请查看开源SynGdiPlus unit:它将为您生成的位图添加GDI抗混淆.它能够将emf转换为emf.它将使用原生Vista / Seven API(就像Windows 7绘图)或Windows XP下的普通Delphi代码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读