gpt4 book ai didi

c++ - 有没有Mac OSX版的windows GetFontData功能?

转载 作者:太空狗 更新时间:2023-10-29 23:19:56 26 4
gpt4 key购买 nike

我们有一个应用程序,允许我们的用户使用客户通过在线电子商务网站输入的可变数据(姓名、职务、电话号码等)生成可打印的 PDF 文档。为了方便可变数据,我们必须嵌入字体的整个字符映射。在 Windows 上,我们一直在使用 Windows API 函数 GetFontData(...),如下所示:

#ifdef Q_WS_WIN
//this is windows specific code
HDC DC = CreateCompatibleDC(NULL);
HFONT hFont = font.handle();
HFONT oFont=(HFONT)SelectObject(DC,hFont);

DWORD fontLength = ::GetFontData(DC, 0, 0, 0, 0);

if(fontLength != GDI_ERROR)
{
fontData.GrowAllocation(fontLength);

if(::GetFontData(DC, 0, 0, fontData.GetBuffer(), fontLength) == GDI_ERROR)
{
fontData.Clear();
}
else
{
fontData.SetLength(fontLength);
returnVal = true;
}
}

SelectObject(DC,oFont);
DeleteDC(DC);
//End of windows specific code
#elif defined(Q_WS_MAC)



#endif

这项技术在我们的 windows 特定版本上非常成功;但是,我们正在将应用程序移植到 Qt 以针对 Mac OSX 平台。

我的第一个问题:是否有一种 Qt 方法可以从 QFont、QFontDatabase 等访问我们可以用来嵌入 pdf 的原始字体数据?我们一直找不到办法。注意上面代码中的#ifdef 包装器。请注意,变量 fontData 是一个独立的内存缓冲区,它管理自己的内存,请忽略。

我的第二个问题:如果没有以操作系统不可知的方式访问字体数据的 Qt 方式,那么 OSX 与 Windows GetFontData 等价的是什么?

谢谢

最佳答案

我只浏览了 GetFontData 的文档,我对 Qt 了解不多(尽管听起来 Qt 解决方案更可取),但您可能想看看字体的 ObjC 类,NSFont .

关于c++ - 有没有Mac OSX版的windows GetFontData功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5871803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com