2012-10-19 4 views
3

Adobe Illustrator에서 만든 EMF 파일 (어떤 버전인지 모르겠지만 초기 스타일의 EMR 헤더 중 하나가 있음)은 A4 크기로되어 있으며 어떻게 될지 이해가되지 않습니다. 이 파일은 다음 EMR 기록이 있습니다이 EMF 이미지 A4 크기는 어떻게됩니까?

U_EMRHEADER     record: 0 type: 1 offset:  0 size:  116 
    rclBounds:  {255,-925,1377,-132} 
    rclFrame:  {7969,-28906,43031,-4125} **350.63 x 247.82 mm** 
    dSignature:  0x464D4520 
    nVersion:  0x00010000 
    nBytes:   1924 
    nRecords:  54 
    nHandles:  4 
    sReserved:  0 
    nDescription: 13 
    offDescription: 88 
     Desc. A: Adobe Systems 
     Desc. B: 
    nPalEntries: 0 
    szlDevice:  {1024,768} 
    szlMillimeters: {320,240} 
U_EMRSETMAPMODE    record: 1 type: 17 offset:  116 size:  12 
    iMode:   0x00000008  **MM_ANISOTROPIC** 
U_EMRSETWINDOWORGEX   record: 3 type: 10 offset:  140 size:  16 
    ptlOrigin:  {0,0} 
U_EMRSETVIEWPORTORGEX   record: 4 type: 12 offset:  156 size:  16 
    ptlOrigin:  {0,0} 
U_EMRSETWINDOWEXTEX   record: 5 type: 9 offset:  172 size:  16 
    szlExtent:  {10104,7143} 
U_EMRSETVIEWPORTEXTEX   record: 6 type: 11 offset:  188 size:  16 
    szlExtent:  {3368,2381} 

rclFrame 필드는 일반적으로 페이지 크기를 설정하지만, A4는 297 X 210mm,하지 350.63 X 247.82 mm이다. 그러나 350.63 x 247.82는 A4의 정확한 비율입니다. 나는이 숫자를 벗어난 A4 크기 변통 할 수있는 유일한 방법은 EMRSETWINDOWEXTEX/EMRSETVIEWPORTEXTEX에서이 방법 1/3 스케일 팩터를 사용하여 다음 MM_HIENGLISH로 rclFrame 값을 치료에 의해이었다

35.063" * 1/3 = 11.69" 
24.782" * 1/3 = 8.26" 

을하지만 그는 것을 의미 프로그램은 후자의 두 레코드를 볼 때까지 페이지의 크기를 결정할 수 없었습니다. 또한 이런 종류의 일이 계속된다고 말하는 어떤 문서도 찾을 수 없습니다.

아무에게도이 문제에 관해 밝힐 수 있습니까?

답변

4

EMF에 진단 덤프가 나타내는 것보다 많은 정보가 들어있을 수 있습니다. 이 분야의

public uint  cbPixelFormat; 
    public uint  offPixelFormat; 
    public uint  bOpenGL; 
    public SIZE  szlMicrometers; 

값은 제공된 진단 덤프에서 누락 : 제공된 EMR_HEADER 기록은 기록 aditionally이 szlMillimeters 후 시작이 필드를 포함하므로 n 버전이 0x00010000로 설정 있습니다. 여기에 내가 내 컴퓨터에 가지고 있던 XP EMF 파일의 머리에서 헥스 덤프입니다 :

0: 01 00 00 00 6c 00 00 00 58 07 00 00 03 02 00 00 | ....l...X....... | 
10: aa 0b 00 00 1f 04 00 00 95 1f 00 00 07 09 00 00 | ................ | 
20: 07 31 00 00 15 11 00 00 20 45 4d 46 00 00 01 00 | .1...... EMF.... | 
30: 44 07 00 00 2e 00 00 00 03 00 00 00 00 00 00 00 | D............... | 
40: 00 00 00 00 00 00 00 00 61 13 00 00 68 1b 00 00 | ........a...h... | 
50: d2 00 00 00 29 01 00 00 00 00 00 00 00 00 00 00 | ....)........... | 
60: 00 00 00 00 50 34 03 00 28 88 04 00    | ....P4..(...  | 

이 조각에서가의 szlMicrometers 필드는 DWORD에의 마지막 한 쌍이다. 이 값은 0x00033450, 0x00048828이며 1000 분의 1 밀리미터 단위로 십진수로 표시됩니다.이 값은 210000, 297000

입니다.