⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getoutlinetextmetricsu.pas

📁 DelphiWin32核心API参考光盘内容.是学习书籍中的源码,便于学习.
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      PAN_WEIGHT_HEAVY:      Add('     Weight: Heavy');
      PAN_WEIGHT_BLACK:      Add('     Weight: Black');
      PAN_WEIGHT_NORD:       Add('     Weight: Nord');
    end;

    {display the Panose proportion}
    case otmPanoseNumber.bProportion of
      PAN_ANY:                 Add('     Proportion: Any');
      PAN_NO_FIT:              Add('     Proportion: No fit');
      PAN_PROP_OLD_STYLE:      Add('     Proportion: Old style');
      PAN_PROP_MODERN:         Add('     Proportion: Modern');
      PAN_PROP_EVEN_WIDTH:     Add('     Proportion: Even width');
      PAN_PROP_EXPANDED:       Add('     Proportion: Expanded');
      PAN_PROP_CONDENSED:      Add('     Proportion: Condensed');
      PAN_PROP_VERY_EXPANDED:  Add('     Proportion: Very expanded');
      PAN_PROP_VERY_CONDENSED: Add('     Proportion: Very condensed');
      PAN_PROP_MONOSPACED:     Add('     Proportion: Monospaced');
    end;

    {display the Panose contrast}
    case otmPanoseNumber.bContrast of
      PAN_ANY:                  Add('     Contrast: Any');
      PAN_NO_FIT:               Add('     Contrast: No fit');
      PAN_CONTRAST_NONE:        Add('     Contrast: None');
      PAN_CONTRAST_VERY_LOW:    Add('     Contrast: Very low');
      PAN_CONTRAST_LOW:         Add('     Contrast: Low');
      PAN_CONTRAST_MEDIUM_LOW:  Add('     Contrast: Medium low');
      PAN_CONTRAST_MEDIUM:      Add('     Contrast: Medium');
      PAN_CONTRAST_MEDIUM_HIGH: Add('     Contrast: Medium high');
      PAN_CONTRAST_HIGH:        Add('     Contrast: High');
      PAN_CONTRAST_VERY_HIGH:   Add('     Contrast: Very high');
    end;

    {display the Panose stroke variation}
    case otmPanoseNumber.bStrokeVariation of
      PAN_ANY:                 Add('     Stroke variation: Any');
      PAN_NO_FIT:              Add('     Stroke variation: No fit');
      PAN_STROKE_GRADUAL_DIAG: Add('     Stroke variation: Gradual diagonal');
      PAN_STROKE_GRADUAL_TRAN: Add('     Stroke variation: Gradual transition');
      PAN_STROKE_GRADUAL_VERT: Add('     Stroke variation: Gradual vertical');
      PAN_STROKE_GRADUAL_HORZ: Add('     Stroke variation: Gradual horizontal');
      PAN_STROKE_RAPID_VERT:   Add('     Stroke variation: Rapid vertical');
      PAN_STROKE_RAPID_HORZ:   Add('     Stroke variation: Rapid horizontal');
      PAN_STROKE_INSTANT_VERT: Add('     Stroke variation: Instant vertical');
    end;

    {display the Panose arm style}
    case otmPanoseNumber.bArmStyle of
      PAN_ANY:                        Add('     Arm style: Any');
      PAN_NO_FIT:                     Add('     Arm style: No fit');
      PAN_STRAIGHT_ARMS_HORZ:         Add('     Arm style: Straight '+
                                          'horizontal');
      PAN_STRAIGHT_ARMS_WEDGE:        Add('     Arm style: Straight wedge');
      PAN_STRAIGHT_ARMS_VERT:         Add('     Arm style: Straight vertical');
      PAN_STRAIGHT_ARMS_SINGLE_SERIF: Add('     Arm style: Straight '+
                                          'single_serif');
      PAN_STRAIGHT_ARMS_DOUBLE_SERIF: Add('     Arm style: Straight '+
                                          'double-serif');
      PAN_BENT_ARMS_HORZ:             Add('     Arm style: Nonstraight '+
                                          'horizontal');
      PAN_BENT_ARMS_WEDGE:            Add('     Arm style: Nonstraight wedge');
      PAN_BENT_ARMS_VERT:             Add('     Arm style: Nonstraight '+
                                          'vertical');
      PAN_BENT_ARMS_SINGLE_SERIF:     Add('     Arm style: Nonstraight '+
                                          'single-serif');
      PAN_BENT_ARMS_DOUBLE_SERIF:     Add('     Arm style: Nonstraight '+
                                          'double-serif');
    end;

    {display the Panose letter form}
    case otmPanoseNumber.bLetterform of
      PAN_ANY:                     Add('     Letter form: Any');
      PAN_NO_FIT:                  Add('     Letter form: No fit');
      PAN_LETT_NORMAL_CONTACT:     Add('     Letter form: Normal contact');
      PAN_LETT_NORMAL_WEIGHTED:    Add('     Letter form: Normal weighted');
      PAN_LETT_NORMAL_BOXED:       Add('     Letter form: Normal boxed');
      PAN_LETT_NORMAL_FLATTENED:   Add('     Letter form: Normal flattened');
      PAN_LETT_NORMAL_ROUNDED:     Add('     Letter form: Normal rounded');
      PAN_LETT_NORMAL_OFF_CENTER:  Add('     Letter form: Normal off center');
      PAN_LETT_NORMAL_SQUARE:      Add('     Letter form: Normal square');
      PAN_LETT_OBLIQUE_CONTACT:    Add('     Letter form: Oblique contact');
      PAN_LETT_OBLIQUE_WEIGHTED:   Add('     Letter form: Oblique weighted');
      PAN_LETT_OBLIQUE_BOXED:      Add('     Letter form: Oblique boxed');
      PAN_LETT_OBLIQUE_FLATTENED:  Add('     Letter form: Oblique flattened');
      PAN_LETT_OBLIQUE_ROUNDED:    Add('     Letter form: Oblique rounded');
      PAN_LETT_OBLIQUE_OFF_CENTER: Add('     Letter form: Oblique off center');
      PAN_LETT_OBLIQUE_SQUARE:     Add('     Letter form: Oblique square');
    end;

    {display the Panose midline}
    case otmPanoseNumber.bMidline of
      PAN_ANY:                      Add('     Midline: Any');
      PAN_NO_FIT:                   Add('     Midline: No fit');
      PAN_MIDLINE_STANDARD_TRIMMED: Add('     Midline: Standard trimmed');
      PAN_MIDLINE_STANDARD_POINTED: Add('     Midline: Standard pointed');
      PAN_MIDLINE_STANDARD_SERIFED: Add('     Midline: Standard serifed');
      PAN_MIDLINE_HIGH_TRIMMED:     Add('     Midline: High trimmed');
      PAN_MIDLINE_HIGH_POINTED:     Add('     Midline: High pointed');
      PAN_MIDLINE_HIGH_SERIFED:     Add('     Midline: High serifed');
      PAN_MIDLINE_CONSTANT_TRIMMED: Add('     Midline: Constant trimmed');
      PAN_MIDLINE_CONSTANT_POINTED: Add('     Midline: Constant pointed');
      PAN_MIDLINE_CONSTANT_SERIFED: Add('     Midline: Constant serifed');
      PAN_MIDLINE_LOW_TRIMMED:      Add('     Midline: Low trimmed');
      PAN_MIDLINE_LOW_POINTED:      Add('     Midline: Low pointed');
      PAN_MIDLINE_LOW_SERIFED:      Add('     Midline: Low serifed');
    end;

    {display the Panose xheight}
    case otmPanoseNumber.bXHeight of
      PAN_ANY:                    Add('     XHeight: Any');
      PAN_NO_FIT:                 Add('     XHeight: No fit');
      PAN_XHEIGHT_CONSTANT_SMALL: Add('     XHeight: Constant small');
      PAN_XHEIGHT_CONSTANT_STD:   Add('     XHeight: Constant standard');
      PAN_XHEIGHT_CONSTANT_LARGE: Add('     XHeight: Constant large');
      PAN_XHEIGHT_DUCKING_SMALL:  Add('     XHeight: Ducking small');
      PAN_XHEIGHT_DUCKING_STD:    Add('     XHeight: Ducking standard');
      PAN_XHEIGHT_DUCKING_LARGE:  Add('     XHeight: Ducking large');
    end;

    {display the inherent font attributes}
    Add('Selection: ');
    if (otmfsSelection and $01)>0 then
      Add('     Italic');
    if (otmfsSelection and $02)>0 then
      Add('     Underscore');
    if (otmfsSelection and $04)>0 then
      Add('     Negative');
    if (otmfsSelection and $08)>0 then
      Add('     Outline');
    if (otmfsSelection and $10)>0 then
      Add('     Strikeout');
    if (otmfsSelection and $20)>0 then
      Add('     Bold');

    {display font embedding information}
    Add('Type:');
    if (otmfsType and $02)>0 then
      Add('     Embedding Forbidden');
    if (otmfsType and $02)<1 then
      Add('     Embedding Allowed');
    if (otmfsType and $04)>0 then
      Add('     Embedding Read-Only');

    {display italics attributes}
    Add('Slope Rise: '+IntToStr(otmsCharSlopeRise));
    Add('Slope Run: '+IntToStr(otmsCharSlopeRun));
    Add('Italic Angle: '+IntToStr(otmItalicAngle));

    {display important physical attributes}
    Add('EM Square: '+IntToStr(otmEMSquare));
    Add('Typographic Ascent: '+IntToStr(otmAscent));
    Add('Typographic Descent: '+IntToStr(otmDescent));
    Add('Typographic Line Gap: '+IntToStr(otmLineGap));

    {display the bounding box coordinates}
    Add('Font Bounding Box: ');
    Add('     Left: '+IntToStr(otmrcFontBox.Left));
    Add('     Top: '+IntToStr(otmrcFontBox.Top));
    Add('     Right: '+IntToStr(otmrcFontBox.Right));
    Add('     Bottom: '+IntToStr(otmrcFontBox.Bottom));

    {display the Macintosh attributes}
    Add('Mac Ascent: '+IntToStr(otmMacAscent));
    Add('MacDescent: '+IntToStr(otmMacDescent));
    Add('Mac Line Gap: '+IntToStr(otmMacLineGap));

    {display the minimum size}
    Add('Minimum Size: '+IntToStr(otmusMinimumPPEM));

    {display subscript suggestions}
    Add('Subscript Size: ');
    Add('     Horizontal: '+IntToStr(otmptSubscriptSize.X));
    Add('     Vertical: '+IntToStr(otmptSubscriptSize.Y));
    Add('Subscript Offset: ');
    Add('     Horizontal: '+IntToStr(otmptSubscriptOffset.X));
    Add('     Vertical: '+IntToStr(otmptSubscriptOffset.Y));

    {display superscript suggestions}
    Add('Superscript Size: ');
    Add('     Horizontal: '+IntToStr(otmptSuperscriptSize.X));
    Add('     Vertical: '+IntToStr(otmptSuperscriptSize.Y));
    Add('Superscript Offset: ');
    Add('     Horizontal: '+IntToStr(otmptSuperscriptOffset.X));
    Add('     Vertical: '+IntToStr(otmptSuperscriptOffset.Y));

    {display line sizes and positions}
    Add('Strikeout Size: '+IntToStr(otmsStrikeoutSize));
    Add('Strikeout Position: '+IntToStr(otmsStrikeoutPosition));
    Add('Underscore Size: '+IntToStr(otmsUnderscoreSize));
    Add('Underscore Position: '+IntToStr(otmsUnderscorePosition));

    {display font family, face, and name strings}
    Add('Family Name: '+PChar(Longint(FontInfo)+FontInfo^.otmpFamilyName));
    Add('Face Name: '+PChar(Longint(FontInfo)+FontInfo^.otmpFaceName));
    Add('Style Name: '+PChar(Longint(FontInfo)+FontInfo^.otmpStyleName));
  end;

  {display the full font name}
  Label17.Caption := PChar(Longint(FontInfo)+FontInfo^.otmpFullName);

  {free the allocated text metric buffer}
  FreeMem(FontInfo, TheSize);
end;



end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -