이식 가능한 문서에 대한 메트릭

다음 표에서는 이식 가능한 문서가 필요한 애플리케이션의 가장 중요한 글꼴 메트릭과 애플리케이션에서 검색할 수 있는 함수를 지정합니다.

함수 메트릭 Windows Server Update Services와 함께
EnumFontFamilies ntmSizeEM 디자인 메트릭 검색; 디바이스 메트릭으로 변환합니다.
GetCharABCWidths ABCWidths 여백, 그림 경계 및 기타 텍스트 나누기의 시작과 끝에 문자를 정확하게 배치합니다.
GetCharWidth32 AdvanceWidths 줄에 문자 배치
GetOutlineTextMetrics otmfsType 글꼴 포함 비트
otmsCharSlopeRise 기울임꼴 글꼴에 대한 커서 기울기의 Y 구성 요소입니다.
otmsCharSlopeRun 기울임꼴 글꼴에 대한 커서 기울기의 X 구성 요소입니다.
otmAscent 줄 간격.
otmDescent 줄 간격.
otmLineGap 줄 간격.
otmpFamilyName 글꼴 식별.
otmpStyleName 글꼴 식별.
otmpFullName 글꼴 식별(일반적으로 패밀리 및 스타일 이름).

 

OUTLINETEXTMETRIC 구조의 otmsCharSlopeRise, otmsCharSlopeRun, otmAscent, otmDescentotmLineGap 멤버는 현재 디바이스 모드 및 물리적 높이(NEWTEXTMETRIC 구조의 tmHeight 멤버에 지정된 대로)에 맞게 크기가 조정되거나 변환됩니다.

예를 들어 문서를 다시 열거나 다른 운영 체제로 이동할 때와 같이 애플리케이션에서 동일한 글꼴을 선택해야 하는 경우 글꼴 식별이 중요합니다. 애플리케이션에서 전체 이름으로 글꼴을 요청할 때 글꼴 매퍼는 항상 올바른 글꼴을 선택합니다. 패밀리 및 스타일 이름은 표준 글꼴 대화 상자에 입력을 제공하여 선택 막대가 제대로 배치되도록 합니다.

otmsCharSlopeRiseotmsCharSlopeRun 값은 글꼴의 기본 기울임꼴 각도의 근사치를 생성하는 데 사용됩니다. 일반적인 로마 글꼴의 경우 otmsCharSlopeRise 는 1이고 otmsCharSlopeRun 은 0입니다. 기울임꼴 글꼴의 경우 값은 글꼴의 기본 기울임꼴 각도의 사인과 코사인을 근사화하려고 시도합니다(세로를 반시계 방향으로 역방향으로 표시). 직립 글꼴의 기울임꼴 각도는 0입니다. 이러한 값은 디자인 단위로 표현되지 않으므로 디바이스 단위로 변환해서는 안 됩니다.

문자 배치 및 줄 간격 메트릭을 사용하면 애플리케이션이 화면, 프린터, 유형세터 및 플랫폼에서 이식 가능한 디바이스 독립적 줄 바꿈을 계산할 수 있습니다.

디바이스 독립적 페이지 레이아웃을 수행하려면

  1. 모든 디자인 메트릭을 일반적인 UHR(초고해상도) 값(예: 65,536 DPI)으로 정규화합니다. 이렇게 하면 라운드오프 오류가 방지됩니다.
  2. UHR 메트릭 및 실제 페이지 너비에 따라 줄 바꿈 계산; 그러면 텍스트 스트림 내 선의 시작점과 끝점이 생성됩니다.
  3. 디바이스 단위(예: 픽셀)로 디바이스 페이지 너비를 계산합니다.
  4. 2단계에서 계산된 줄 바꿈을 사용하여 각 텍스트 줄을 디바이스 페이지 너비에 맞습니다.
  5. UHR 메트릭 및 실제 페이지 길이를 사용하여 페이지 나누기를 계산합니다. 그러면 페이지당 줄 수가 생성됩니다.
  6. 디바이스 단위로 선 높이를 계산합니다.
  7. 5단계의 페이지당 줄과 6단계의 줄 높이를 사용하여 텍스트 줄을 페이지에 맞습니다.

모든 애플리케이션이 이러한 기술을 채택하는 경우 개발자는 한 애플리케이션에서 다른 애플리케이션으로 이동된 문서가 원래 모양과 형식을 유지하도록 사실상 보장할 수 있습니다.