Извлечение ЭДС из EMF Spool?

Формат файлов спула Windows EMF хорошо известен и задокументирован, но я не могу понять, как извлечь информацию из файла спула. Прямо сейчас я пытаюсь извлечь EMF из файла SPL (как правило, он должен присутствовать). Я уже знаю, что файл спула определяется структурами, например так:

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 ответов

Другие вопросы по тегам