从EMF Spool中提取EMF?

时间:2015-04-09 20:53:11

标签: windows metafile

Windows EMF假脱机文件格式众所周知并有文档记录,但我似乎无法理解如何从假脱机文件中提取信息。现在,我想要实现的是从SPL文件中提取EMF(作为一般规则,它应该存在)。 我已经知道假脱机文件是由结构定义的,如下所示:

Private Enum SpoolerRecordTypes
SRT_EOF = &H0 ' // int32 zero
SRT_RESERVED_1 = &H1 '* 1 */
SRT_FONTDATA = &H2 ' 2 Font Data */
SRT_DEVMODE = &H3 ' 3 DevMode */
SRT_FONT2 = &H4 '4 Font Data */
SRT_RESERVED_5 = &H5 ' 5 */
SRT_FONT_MM = &H6 ' 6 Font Data (Multiple Master) */
SRT_FONT_SUB1 = &H7 ' 7 Font Data (SubsetFont 1) */
SRT_FONT_SUB2 = &H8 ' 8 Font Data (SubsetFont 2)
SRT_RESERVED_9 = &H9
SRT_UNKNOWN = &H10 ' // int unknown...
SRT_RESERVED_A = &HA
SRT_RESERVED_B = &HB
SRT_PAGE = &HC ' 12 Enhanced Meta File (EMF) */
SRT_EOPAGE1 = &HD ' 13 EndOfPage */
SRT_EOPAGE2 = &HE ' 14 EndOfPage */
SRT_EXT_FONT = &HF ' 15 Ext Font Data */
SRT_EXT_FONT2 = &H10 ' 16 Ext Font Data */
SRT_EXT_FONT_MM = &H11 ' 17 Ext Font Data (Multiple Master)
SRT_EXT_FONT_SUB1 = &H12 ' 18 Ext Font Data (SubsetFont 1) */
SRT_EXT_FONT_SUB2 = &H13 '* 19 Ext Font Data (SubsetFont 2) */
SRT_EXT_PAGE = &H14 ' 20 Enhanced Meta File?
SRT_JOB_INFO = &H10000 ' // int length, wchar jobDescription
End Enum

此外,在每个结构之后,有一个无符号的32位数字来定义结构的大小。 有谁知道如何使用这些结构从假脱机文件中提取信息?

PS:我知道有一些程序显示EMF的实时预览,所以我知道这是可能的。不过,我必须能够以编程方式执行此操作。

感谢您的任何意见。

0 个答案:

没有答案