Печать в Метафайлы

Тема в разделе "WASM.WIN32", создана пользователем Marik, 6 июл 2010.

  1. Marik

    Marik New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2006
    Сообщения:
    166
    Адрес:
    Russia
    Добрый день!
    Возникли затруднения при работе с метафайлами.
    Код (Text):
    1. local hdcEMF :DWORD
    2. local PixelsX:DWORD
    3. local PixelsY:DWORD
    4. local MMX:DWORD
    5. local MMY:DWORD
    6. local rect:RECT
    7.  
    8.     mov status, FALSE
    9.     invoke CreateDC, $CTA0("Microsoft XPS Document Writer"),$CTA0("Microsoft XPS Document Writer"),NULL,NULL
    10.     mov hDC, eax
    11.    
    12.     invoke RtlZeroMemory, addr rect, sizeof RECT
    13.     invoke GetDeviceCaps, hDC, HORZRES
    14.     mov PixelsX, eax
    15.     invoke GetDeviceCaps, hDC, VERTRES
    16.     mov PixelsY, eax
    17.     invoke RtlZeroMemory, addr rect, sizeof RECT
    18.     mov rect.left, FALSE
    19.     mov rect.top, FALSE
    20.     _mov rect.right, PixelsX
    21.     _mov rect.bottom, PixelsY
    22.     invoke CreateEnhMetaFile, hDC, $CTA0("C:\\output.emf"), addr rect, NULL
    23.     mov hdcEMF, eax
    24.    
    25.     invoke RtlZeroMemory, addr pDoc, sizeof DOCINFO
    26.     mov pDoc.cbSize, sizeof DOCINFO
    27.     mov pDoc.lpszDocName,  $CTA0("C:\\h.txt")
    28.     mov pDoc.lpszOutput,  $CTA0("C:\\output.xps")
    29.    
    30.     invoke StartDoc, hDC, addr pDoc
    31.    
    32.     invoke StartPage, hDC
    33.    
    34.     invoke StartDoc, hdcEMF, addr pDoc
    35.    
    36.     invoke StartPage, hdcEMF
    37.    
    38.     invoke TextOut, hDC, 1000,1000, $CTA0("Microsoft XPS Document Writer"),17
    39.    
    40.     invoke TextOut, hdcEMF, 1000,1000, $CTA0("Microsoft XPS Document Writer"),17
    41.    
    42.     invoke EndPage, hDC
    43.    
    44.     invoke EndPage, hdcEMF
    45.    
    46.     invoke EndDoc, hDC
    47.    
    48.     invoke EndDoc, hdcEMF
    49.    
    50.     invoke DeleteDC, hDC
    51.    
    52.     invoke CloseEnhMetaFile, hdcEMF
    53.     invoke DeleteEnhMetaFile, hdcEMF
    В моем понимании в результате в метафайл я должен получить в принципе тоже самое что и вышло у меня на принтер. (в данном случаи сохранилос в файл C:\output.xps)
    Но на практике получается совсем разные картинки.
    Подскажите, кто работал с метафайлами, как добиться полного сходства?!