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

📄 pdffonts.pas

📁 作者:Takeshi Kanno. PowerPdf是一款制作PDF文档的VCL控件。使用上和QuickReport类似。
💻 PAS
📖 第 1 页 / 共 3 页
字号:
{*
 * << P o w e r P d f >> -- PdfFonts.pas
 *
 * << Standerd font set for WinAnsiEncoding Charactors >>
 *
 * Copyright (c) 1999-2001 Takezou. <takeshi_kanno@est.hi-ho.ne.jp>
 *
 * This library is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Library General Public License as published
 * by the Free Software Foundation; either version 2 of the License, or any
 * later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
 * details.
 *
 * You should have received a copy of the GNU Library General Public License
 * along with this library.
 *
 * Create 2000.09.14
 *
 *}
unit PdfFonts;

interface

uses
  SysUtils, Classes, PdfDoc, PdfTypes;

const
  TYPE1_FONT_STR_TABLE: array[0..2] of TPDF_STR_TBL =(
                         (KEY: 'Type'; VAL: 'Font'),
                         (KEY: 'Subtype'; VAL: 'Type1'),
                         (KEY: 'Encoding'; VAL: 'WinAnsiEncoding')
                         );

  // FixedWidth defination
  FIXED_WIDTH_W_ARRAY: array[32..255] of Integer = (
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600);

  FIXED_WIDTH_INT_TABLE: array[0..1] of TPDF_INT_TBL =(
                       (KEY: 'FirstChar'; VAL: 32),
                       (KEY: 'LastChar'; VAL: 255)
                         );

  FIXED_WIDTH_DISC_STR_TABLE: array[0..2] of TPDF_STR_TBL =(
                         (KEY: 'Type'; VAL: 'FontDescriptor'),
                         (KEY: 'FontName'; VAL: 'Type1'),
                         (KEY: 'Encoding'; VAL: 'WinAnsiEncoding')
                         );

  FIXED_WIDTH_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
                         (KEY: 'Ascent'; VAL: 833),
                         (KEY: 'CapHeight'; VAL: 833),
                         (KEY: 'Descent'; VAL: -300),
                         (KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET + PDF_FONT_FIXED_WIDTH),
                         (KEY: 'ItalicAngle'; VAL: -15),
                         (KEY: 'StemV'; VAL: 78),
                         (KEY: 'MissingWidth'; VAL: 600));

  FIXED_WIDTH_BBOX: array[0..3] of Integer = (-103,-300,836,833);

  // FixedWidth-Bold defination

  FIXED_WIDTH_BOLD_W_ARRAY: array[32..255] of Integer = (
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600);

  FIXED_WIDTH_BOLD_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
                         (KEY: 'Ascent'; VAL: 833),
                         (KEY: 'CapHeight'; VAL: 833),
                         (KEY: 'Descent'; VAL: -300),
                         (KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET +
                           PDF_FONT_FOURCE_BOLD + PDF_FONT_FIXED_WIDTH),
                         (KEY: 'ItalicAngle'; VAL: 0),
                         (KEY: 'StemV'; VAL: 156),
                         (KEY: 'MissingWidth'; VAL: 600));

  FIXED_WIDTH_BOLD_BBOX: array[0..3] of Integer = (-46,-300,702,833);

  // FixedWidth-Italic defination

  FIXED_WIDTH_ITALIC_W_ARRAY: array[32..255] of Integer = (
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600);

  FIXED_WIDTH_ITALIC_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
                         (KEY: 'Ascent'; VAL: 833),
                         (KEY: 'CapHeight'; VAL: 833),
                         (KEY: 'Descent'; VAL: -300),
                         (KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET +
                           PDF_FONT_FIXED_WIDTH),
                         (KEY: 'ItalicAngle'; VAL: -15),
                         (KEY: 'StemV'; VAL: 78),
                         (KEY: 'MissingWidth'; VAL: 600));

  FIXED_WIDTH_ITALIC_BBOX: array[0..3] of Integer = (-67,-300,800,833);

  // FixedWidth-BoldItalic defination

  FIXED_WIDTH_BOLDITALIC_W_ARRAY: array[32..255] of Integer = (
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
    600,600);

  FIXED_WIDTH_BOLDITALIC_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
                         (KEY: 'Ascent'; VAL: 833),
                         (KEY: 'CapHeight'; VAL: 833),
                         (KEY: 'Descent'; VAL: -300),
                         (KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET +
                             PDF_FONT_FIXED_WIDTH + PDF_FONT_FOURCE_BOLD),
                         (KEY: 'ItalicAngle'; VAL: -15),
                         (KEY: 'StemV'; VAL: 156),
                         (KEY: 'MissingWidth'; VAL: 600));

  FIXED_WIDTH_BOLDITALIC_BBOX: array[0..3] of Integer = (-103,-300,836,833);

  // Arial definition

  ARIAL_W_ARRAY: array[32..255] of Integer = (
    278,278,355,556,556,889,667,191,333,333,389,584,278,333,
    278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,
    584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,
    722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,
    469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,
    556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,
    584,0,556,0,222,556,333,1000,556,556,333,1000,667,333,1000,0,
    611,0,0,222,222,333,333,350,556,1000,333,1000,500,333,944,0,
    500,667,0,333,556,556,556,556,260,556,333,737,370,556,584,0,
    737,333,400,584,333,333,333,556,537,278,333,333,365,556,834,834,
    834,611,667,667,667,667,667,667,1000,722,667,667,667,667,278,278,
    278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,
    667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,
    278,278,556,556,556,556,556,556,556,584,611,556,556,556,556,500,
    556,500);


  ARIAL_INT_TABLE: array[0..1] of TPDF_INT_TBL = (
                       (KEY: 'FirstChar'; VAL: 32),
                       (KEY: 'LastChar'; VAL: 255)
                       );

  ARIAL_DISC_STR_TABLE: array[0..2] of TPDF_STR_TBL = (
                         (KEY: 'Type'; VAL: 'FontDescriptor'),
                         (KEY: 'FontName'; VAL: 'Type1'),
                         (KEY: 'Encoding'; VAL: 'WinAnsiEncoding')
                         );

  ARIAL_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL = (
                         (KEY: 'Ascent'; VAL: 905),
                         (KEY: 'CapHeight'; VAL: 905),
                         (KEY: 'Descent'; VAL: -212),
                         (KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET),
                         (KEY: 'ItalicAngle'; VAL: 0),
                         (KEY: 'StemV'; VAL: 78),
                         (KEY: 'MissingWidth'; VAL: 750)
                         );

  ARIAL_BBOX: array[0..3] of Integer = (-166,-225,1000,931);

  // Arial-Bold definition

  ARIAL_BOLD_W_ARRAY: array[32..255] of Integer = (
    278,333,474,556,556,889,722,238,333,333,389,584,278,333,
    278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,
    584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,
    722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,
    584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,
    611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,
    584,0,556,0,278,556,500,1000,556,556,333,1000,667,333,1000,0,
    611,0,0,278,278,500,500,350,556,1000,333,1000,556,333,944,0,
    500,667,0,333,556,556,556,556,280,556,333,737,370,556,584,0,
    737,333,400,584,333,333,333,611,556,278,333,333,365,556,834,834,
    834,611,722,722,722,722,722,722,1000,722,667,667,667,667,278,278,
    278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,
    667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,
    278,278,611,611,611,611,611,611,611,584,611,611,611,611,611,556,
    611,556);

  ARIAL_BOLD_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
                         (KEY: 'Ascent'; VAL: 905),
                         (KEY: 'CapHeight'; VAL: 905),
                         (KEY: 'Descent'; VAL: -212),
                         (KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET +
                           PDF_FONT_FOURCE_BOLD),
                         (KEY: 'ItalicAngle'; VAL: 0),
                         (KEY: 'StemV'; VAL: 156),
                         (KEY: 'MissingWidth'; VAL: 750)
                         );

  ARIAL_BOLD_BBOX: array[0..3] of Integer = (-170,-228,1003,962);

  // Arial-Italic definition

  ARIAL_ITALIC_W_ARRAY: array[32..255] of Integer = (
    278,278,355,556,556,889,667,191,333,333,389,584,278,333,
    278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,
    584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,
    722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,
    469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,
    556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,
    584,0,556,0,222,556,333,1000,556,556,333,1000,667,333,1000,0,
    611,0,0,222,222,333,333,350,556,1000,333,1000,500,333,944,0,
    500,667,0,333,556,556,556,556,260,556,333,737,370,556,584,0,
    737,333,400,584,333,333,333,556,537,278,333,333,365,556,834,834,
    834,611,667,667,667,667,667,667,1000,722,667,667,667,667,278,278,
    278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,
    667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,
    278,278,556,556,556,556,556,556,556,584,611,556,556,556,556,500,
    556,500);

  ARIAL_ITALIC_DISC_STR_TABLE: array[0..2] of TPDF_STR_TBL =(
                         (KEY: 'Type'; VAL: 'FontDescriptor'),
                         (KEY: 'FontName'; VAL: 'Type1'),
                         (KEY: 'Encoding'; VAL: 'WinAnsiEncoding')
                         );

  ARIAL_ITALIC_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
                         (KEY: 'Ascent'; VAL: 905),
                         (KEY: 'CapHeight'; VAL: 905),
                         (KEY: 'Descent'; VAL: -212),
                         (KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET),
                         (KEY: 'ItalicAngle'; VAL: -15),
                         (KEY: 'StemV'; VAL: 78),
                         (KEY: 'MissingWidth'; VAL: 750)
                         );

  ARIAL_ITALIC_BBOX: array[0..3] of Integer = (-170,-225,1116,931);

  // Arial-BoldItalic definition

  ARIAL_BOLDITALIC_W_ARRAY: array[32..255] of Integer = (
    278,333,474,556,556,889,722,238,333,333,389,584,278,333,
    278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,
    584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,
    722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,
    584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,
    611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,
    584,0,556,0,278,556,500,1000,556,556,333,1000,667,333,1000,0,
    611,0,0,278,278,500,500,350,556,1000,333,1000,556,333,944,0,
    500,667,0,333,556,556,556,556,280,556,333,737,370,556,584,0,
    737,333,400,584,333,333,333,611,556,278,333,333,365,556,834,834,
    834,611,722,722,722,722,722,722,1000,722,667,667,667,667,278,278,
    278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,
    667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,
    278,278,611,611,611,611,611,611,611,584,611,611,611,611,611,556,
    611,556);

  ARIAL_BOLDITALIC_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
                         (KEY: 'Ascent'; VAL: 905),

⌨️ 快捷键说明

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