PODOFO生成水印,写入字体,如何计算文本在页面占的长度?

打砖人 2020-05-11 07:06:50
利用PODOFO做文字写入功能时,没有办法获取到一种字体
const PdfEncoding* pp = PdfEncodingFactory::GlobalIdentityEncodingInstance();
PdfFont* pFont = doc.CreateFont("SimHei", true, true, false, pp);
......
painter.DrawText(0.0, 0.0, (pdf_utf8*)strText);
//painter.DrawMultiLineText(0.0, 0.0, ??, size, (pdf_utf8*)"123456 \n \n", ePdfAlignment_Left, ePdfVerticalAlignment_Top);
painter.EndText();
painter.FinishPage();


在 .....之间的操作,我需要获取到传入的strText,在我设置的字体格式后,在页面所能展示的长度。
...全文
357 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
打砖人 2022-11-03
  • 打赏
  • 举报
回复 1

QFont font1= AlarmMessage::getAlarmFont(24, QFont::DemiBold);
QFontMetrics setFontMetrics(font1);
QRect unreadCountFontMetricsRect = setFontMetrics.boundingRect( text);
int recMetricsWidth = unreadCountFontMetricsRect.width() ; / /这个就获得了字符串所占的像素宽度

打砖人 2020-05-20
  • 打赏
  • 举报
回复
while (*waterMarkContents) { if (*waterMarkContents != '\n') { Fontlength += pFont->GetFontMetrics()->CharWidth(*waterMarkContents); waterlength++; } pszStart = (char *)(++waterMarkContents); } 每次的每个字符,都求长度 ,pFont是可以求出字符长度的

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧