求教:获取当前打印作业的字体fonts?

kingmax54212008 2010-08-03 11:25:22
获取当前打印作业的信息可用EnumJobs获得JobInfo,包括文件名,页数,颜色,单双面,纸型等等。

但如何获取当前打印作业的字体呢?

(Windows API, EnumFonts是获得设备的字体的。不是想要的。)

大家有经验的请给与指教。

...全文
90 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxd_qd 2010-08-04
  • 打赏
  • 举报
回复
在一个打印作业里,我可以用N个不同字体写N个字符,请问哪个才是你要获得的字体?
sunlin7 2010-08-04
  • 打赏
  • 举报
回复
在windows上打印机被抽象成一个dc,跟在屏幕上面画图逻辑上没有任何区别。因此可以获得dc上面最后设置的字体信息。但这个信息一般来说是没有多大意义的。
m_tornado 2010-08-04
  • 打赏
  • 举报
回复
看错了,GetCurrentFont,返回Font结构体,里面有你说的属性
m_tornado 2010-08-04
  • 打赏
  • 举报
回复
HFONT CreateFont(
int nHeight, // height of font
int nWidth, // average character width
int nEscapement, // angle of escapement
int nOrientation, // base-line orientation angle
int fnWeight, // font weight
DWORD fdwItalic, // italic attribute option
DWORD fdwUnderline, // underline attribute option
DWORD fdwStrikeOut, // strikeout attribute option
DWORD fdwCharSet, // character set identifier
DWORD fdwOutputPrecision, // output precision
DWORD fdwClipPrecision, // clipping precision
DWORD fdwQuality, // output quality
DWORD fdwPitchAndFamily, // pitch and family
LPCTSTR lpszFace // typeface name
);
创建完了选入设备上下文CDC
kingmax54212008 2010-08-04
  • 打赏
  • 举报
回复
正在打印的打印作业中的, 该作业的所有fonts的具体信息包括: FaceName,Weight,Italic,Charset。

多谢!

kingmax54212008 2010-08-04
  • 打赏
  • 举报
回复
正在打印的打印作业中的,作业的font信息包括: FaceName,Weight,Italic,Charset。

多谢!
kingmax54212008 2010-08-04
  • 打赏
  • 举报
回复
to lisunlin0,

是想得到正在打印的打印池里的文件的fonts信息。

其结构体定义如下:
struct FontHeader {
WORD dfVersion;
DWORD dfSize;
char dfCopyright[60];
WORD dfType;
WORD dfPoints;
WORD dfVertRes;
WORD dfHorizRes;
WORD dfAscent;
WORD dfInternalLeading;
WORD dfExternalLeading;
BYTE dfItalic;
BYTE dfUnderline;
BYTE dfStrikeOut;
WORD dfWeight;
BYTE dfCharSet;
WORD dfPixWidth;
WORD dfPixHeight;
BYTE dfPitchAndFamily;
WORD dfAvgWidth;
WORD dfMaxWidth;
BYTE dfFirstChar;
BYTE dfLastChar;
BYTE dfDefaultChar;
BYTE dfBreakChar;
WORD dfWidthBytes;
DWORD dfDevice;
DWORD dfFace;
DWORD dfReserved;
char szDeviceName[];
char szFaceName[];
};
kingmax54212008 2010-08-03
  • 打赏
  • 举报
回复
获取当前打印作业的信息可用EnumJobs获得JobInfo,包括文件名,页数,颜色,单双面,纸型等等。

但如何获取当前打印作业的字体呢?FaceName,Weight,Italic,Charset...?

(Windows API, EnumFonts是获得设备的字体的。不是想要的。)

大家有经验的请给与指教。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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