home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 March / Chip_2002-03_cd1.bin / zkuste / delphi / kompon / d5 / cak / CAKINST.ZIP / pdfmaker.lzh / PDFMaker / UFontDemo.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2000-02-08  |  11.5 KB  |  468 lines

  1. unit UFontDemo;
  2. {*
  3.  *  FontList.dpr âtâHâôâgé¿éµé╤ò╢ÄÜù±è╓ÿAé╠âfâé
  4.  *
  5.  *  Copyright(c) 2000 Takezou
  6.  *
  7.  *}
  8.  
  9. interface
  10.  
  11. uses
  12.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  13.   StdCtrls,
  14.   {*
  15.    * uses é╔PDFMakeré╞PWFontsé≡Æ╟ë┴é▒é╠âfâéé═âvâìâVü[âWââé╠ê°Éöé╞é╡é─
  16.    * TPDFMakeré╠Canvasé≡éφé╜é╡é─éóéΘé╜é▀üAé▒é▒é╠usesé╔Æ╟ë┴é╖éΘüB
  17.    *
  18.    *}
  19.   PDFMaker, PMFonts;
  20.  
  21. type
  22.   TForm1 = class(TForm)
  23.     Button1: TButton;
  24.     procedure Button1Click(Sender: TObject);
  25.   private
  26.     FPDFMaker: TPDFMaker;
  27.     procedure MakeFontList(X, Y: Single; ACanvas: TPDFContents);
  28.     procedure MakeFontSizeList(X, Y: Single; ACanvas: TPDFContents);
  29.     procedure MakeCharSpaceList(X, Y: Single; ACanvas: TPDFContents);
  30.     procedure MakeWordSpaceList(X, Y: Single; ACanvas: TPDFContents);
  31.     procedure MakeAlignmentList(X, Y: Single; ACanvas: TPDFContents);
  32.     procedure MakeWordwrapList(X, Y: Single; ACanvas: TPDFContents);
  33.   public
  34.     { Public ÉΘî╛ }
  35.   end;
  36.  
  37. var
  38.   Form1: TForm1;
  39.  
  40. implementation
  41.  
  42. {$R *.DFM}
  43.  
  44. procedure TForm1.MakeFontList(X, Y: Single; ACanvas: TPDFContents);
  45. begin
  46. {*
  47.  *  MakeFontList
  48.  *
  49.  *  èeÄφâtâHâôâgé╠âTâôâvâïé≡ACanvasé╔Åoù═é╖éΘüB
  50.  *  âtâHâôâgé═î╗ì▌8Äφù▐é╠é▌Ägùpë┬ö\üBÅçăÆ╟ë┴é╡é─éóé¡ù\ÆΦ
  51.  *
  52.  *}
  53.  
  54.   // î⌐Åoé╡
  55.   ACanvas.Font := fiMincyo;
  56.   ACanvas.FontSize := 12;
  57.   ACanvas.TextOut(X, Y, 'Font');
  58.   ACanvas.LineWidth := 0.75;
  59.   ACanvas.DrawRect(X, Y - 5, X + 220, Y - 290, false);
  60.  
  61.   X := X + 10;
  62.  
  63.   // CenturyâtâHâôâg
  64.   Y := Y - 20;
  65.   ACanvas.Font := fiCentury;
  66.   ACanvas.FontSize := 8;
  67.   ACanvas.TextOut(X-5, Y, 'Century');
  68.   ACanvas.FontSize := 12;
  69.   Y := Y - 15;
  70.   ACanvas.TextOut(X, Y, 'ABCDFEGabcdefg123456$%&?');
  71.  
  72.   // CenturyâtâHâôâg(Bold)
  73.   Y := Y - 20;
  74.   ACanvas.Font := fiCenturyBold;
  75.   ACanvas.FontSize := 8;
  76.   ACanvas.TextOut(X-5, Y, 'Century Bold');
  77.   ACanvas.FontSize := 12;
  78.   Y := Y - 15;
  79.   ACanvas.TextOut(X, Y, 'ABCDFEGabcdefg123456$%&?');
  80.  
  81.   // ArialâtâHâôâg
  82.   Y := Y - 20;
  83.   ACanvas.Font := fiArial;
  84.   ACanvas.FontSize := 8;
  85.   ACanvas.TextOut(X-5, Y, 'Arial');
  86.   ACanvas.FontSize := 12;
  87.   Y := Y - 15;
  88.   ACanvas.TextOut(X, Y, 'ABCDFEGabcdefg123456$%&?');
  89.  
  90.   // ArialâtâHâôâg(Bold)
  91.   Y := Y - 20;
  92.   ACanvas.Font := fiArialBold;
  93.   ACanvas.FontSize := 8;
  94.   ACanvas.TextOut(X-5, Y, 'Arial Bold');
  95.   ACanvas.FontSize := 12;
  96.   Y := Y - 15;
  97.   ACanvas.TextOut(X, Y, 'ABCDFEGabcdefg123456$%&?');
  98.  
  99.   // CourierâtâHâôâg
  100.   Y := Y - 20;
  101.   ACanvas.Font := fiCourier;
  102.   ACanvas.FontSize := 8;
  103.   ACanvas.TextOut(X-5, Y, 'Courier');
  104.   ACanvas.FontSize := 12;
  105.   Y := Y - 15;
  106.   ACanvas.TextOut(X, Y, 'ABCDFEGabcdefg123456$%&?');
  107.  
  108.   // CourierâtâHâôâg(Bold)
  109.   Y := Y - 20;
  110.   ACanvas.Font := fiCourierBold;
  111.   ACanvas.FontSize := 8;
  112.   ACanvas.TextOut(X-5, Y, 'Courier Bold');
  113.   ACanvas.FontSize := 12;
  114.   Y := Y - 15;
  115.   ACanvas.TextOut(X, Y, 'ABCDFEGabcdefg123456$%&?');
  116.  
  117.   // û╛Æ⌐âtâHâôâg
  118.   Y := Y - 20;
  119.   ACanvas.Font := fiMincyo;
  120.   ACanvas.FontSize := 8;
  121.   ACanvas.TextOut(X-5, Y, 'û╛Æ⌐');
  122.   ACanvas.FontSize := 12;
  123.   Y := Y - 15;
  124.   ACanvas.TextOut(X, Y, 'éáéóéñéªé¿âAâCâEâGâIABCabc123$%&?');
  125.  
  126.   // û╛Æ⌐âtâHâôâg
  127.   Y := Y - 20;
  128.   ACanvas.Font := fiGothic;
  129.   ACanvas.FontSize := 8;
  130.   ACanvas.TextOut(X-5, Y, 'âSâVâbâN');
  131.   ACanvas.FontSize := 12;
  132.   Y := Y - 15;
  133.   ACanvas.TextOut(X, Y, 'éáéóéñéªé¿âAâCâEâGâIABCabc123$%&?');
  134. end;
  135.  
  136. procedure TForm1.MakeFontSizeList(X, Y: Single; ACanvas: TPDFContents);
  137. begin
  138. {*
  139.  *  MakeFontSizeList
  140.  *
  141.  *  âtâHâôâgâTâCâXé≡ò╧ìXé╡é╜é╞é½é╠é╠âTâôâvâïé≡ACanvasé╔Åoù═é╖éΘüB
  142.  *  âtâHâôâgâTâCâXé═1/100âhâbâhÆPê╩é┼ÄwÆΦë┬ö\
  143.  *
  144.  *}
  145.  
  146.   // ÿgÉⁿé╞î⌐Åoé╡é╠Åoù═
  147.   ACanvas.Font := fiMincyo;
  148.   ACanvas.FontSize := 12;
  149.   ACanvas.TextOut(X, Y, 'FontSize');
  150.   ACanvas.LineWidth := 0.75;
  151.   ACanvas.DrawRect(X, Y - 5, X + 220, Y - 290, false);
  152.  
  153.   X := X + 10;
  154.  
  155.   Y := Y - 20;
  156.  
  157.   // FonrSize = 6
  158.   ACanvas.FontSize := 8;
  159.   ACanvas.TextOut(X-5, Y, 'FonrSize = 6');
  160.   ACanvas.FontSize := 6;
  161.   Y := Y - ACanvas.FontSize - 3;
  162.   ACanvas.TextOut(X, Y, 'éáéóéñâAâCâEABCabc123$%&?');
  163.   Y := Y - 18;
  164.  
  165.   // FonrSize = 8
  166.   ACanvas.FontSize := 8;
  167.   ACanvas.TextOut(X-5, Y, 'FonrSize = 8');
  168.   ACanvas.FontSize := 8;
  169.   Y := Y - ACanvas.FontSize - 3;
  170.   ACanvas.TextOut(X, Y, 'éáéóéñâAâCâEABCabc123$%&?');
  171.   Y := Y - 18;
  172.  
  173.   // FonrSize = 10
  174.   ACanvas.FontSize := 8;
  175.   ACanvas.TextOut(X-5, Y, 'FonrSize = 10');
  176.   ACanvas.FontSize := 10;
  177.   Y := Y - ACanvas.FontSize - 3;
  178.   ACanvas.TextOut(X, Y, 'éáéóéñâAâCâEABCabc123$%&?');
  179.   Y := Y - 18;
  180.  
  181.   // FonrSize = 14
  182.   ACanvas.FontSize := 8;
  183.   ACanvas.TextOut(X-5, Y, 'FonrSize = 14');
  184.   ACanvas.FontSize := 14;
  185.   Y := Y - ACanvas.FontSize - 2;
  186.   ACanvas.TextOut(X, Y, 'éáéóéñâAâCâEABCabc123$%&?');
  187.   Y := Y - 18;
  188.  
  189.   // FonrSize = 20
  190.   ACanvas.FontSize := 8;
  191.   ACanvas.TextOut(X-5, Y, 'FonrSize = 20');
  192.   ACanvas.FontSize := 20;
  193.   Y := Y - ACanvas.FontSize - 1;
  194.   ACanvas.TextOut(X, Y, 'éáéóâAâCABab123$%&?');
  195.   Y := Y - 18;
  196.  
  197.   // FonrSize = 32
  198.   ACanvas.FontSize := 8;
  199.   ACanvas.TextOut(X-5, Y, 'FonrSize = 32');
  200.   ACanvas.FontSize := 32;
  201.   Y := Y - ACanvas.FontSize;
  202.   ACanvas.TextOut(X, Y, 'éáâAABab123$');
  203.   Y := Y - 18;
  204.  
  205.   // FonrSize = 48
  206.   ACanvas.FontSize := 8;
  207.   ACanvas.TextOut(X-5, Y, 'FonrSize = 48');
  208.   ACanvas.FontSize := 48;
  209.   Y := Y - ACanvas.FontSize;
  210.   ACanvas.TextOut(X, Y, 'éáâAAa1$');
  211.  
  212. end;
  213.  
  214. procedure TForm1.MakeCharSpaceList(X, Y: Single; ACanvas: TPDFContents);
  215. begin
  216. {*
  217.  *  MakeCharWidthList
  218.  *
  219.  *  CharWidth(ò╢ÄÜè╘èu)é≡ò╧ìXé╡é╜é╞é½é╠é╠âTâôâvâïé≡ACanvasé╔Åoù═é╖éΘüB
  220.  *  ò╢ÄÜè╘èué═1/100âhâbâhÆPê╩é┼ÄwÆΦë┬ö\
  221.  *
  222.  *}
  223.   ACanvas.Font := fiMincyo;
  224.   ACanvas.FontSize := 12;
  225.   ACanvas.TextOut(X, Y, 'CharSpace');
  226.   ACanvas.LineWidth := 0.75;
  227.   ACanvas.DrawRect(X, Y - 5, X + 220, Y - 140, false);
  228.  
  229.   X := X + 10;
  230.  
  231.   Y := Y - 20;
  232.  
  233.   ACanvas.FontSize := 8;
  234.   ACanvas.CharSpace := 0;
  235.   ACanvas.TextOut(X-5, Y, 'CharSpace = -0.5');
  236.   ACanvas.FontSize := 12;
  237.   ACanvas.CharSpace := -0.5;
  238.   Y := Y - ACanvas.FontSize - 3;
  239.   ACanvas.TextOut(X, Y, 'éáéóéñâAâCâEABCabc123$%&?');
  240.   Y := Y - 18;
  241.  
  242.   ACanvas.FontSize := 8;
  243.   ACanvas.CharSpace := 0;
  244.   ACanvas.TextOut(X-5, Y, 'CharSpace = 0 (Default)');
  245.   ACanvas.FontSize := 12;
  246.   ACanvas.CharSpace := 0;
  247.   Y := Y - ACanvas.FontSize - 3;
  248.   ACanvas.TextOut(X, Y, 'éáéóéñâAâCâEABCabc123$%&?');
  249.   Y := Y - 18;
  250.  
  251.   ACanvas.FontSize := 8;
  252.   ACanvas.CharSpace := 0;
  253.   ACanvas.TextOut(X-5, Y, 'CharSpace = 1');
  254.   ACanvas.FontSize := 12;
  255.   ACanvas.CharSpace := 1;
  256.   Y := Y - ACanvas.FontSize - 3;
  257.   ACanvas.TextOut(X, Y, 'éáéóéñâAâCâEABCabc123$%&?');
  258.   Y := Y - 18;
  259.  
  260.   ACanvas.FontSize := 8;
  261.   ACanvas.CharSpace := 0;
  262.   ACanvas.TextOut(X-5, Y, 'CharSpace = 2');
  263.   ACanvas.FontSize := 12;
  264.   ACanvas.CharSpace := 2;
  265.   Y := Y - ACanvas.FontSize - 3;
  266.   ACanvas.TextOut(X, Y, 'éáéóéñâAâCâEABCabc123$%&?');
  267.  
  268.   ACanvas.CharSpace := 0;
  269. end;
  270.  
  271. procedure TForm1.MakeWordSpaceList(X, Y: Single; ACanvas: TPDFContents);
  272. begin
  273. {*
  274.  *  MakeWordSpaceList
  275.  *
  276.  *  WordSpace(ÆPîΩè╘èu)é≡ò╧ìXé╡é╜é╞é½é╠é╠âTâôâvâïé≡ACanvasé╔Åoù═é╖éΘüB
  277.  *  ÆPîΩè╘èué═1/100âhâbâhÆPê╩é┼ÄwÆΦë┬ö\
  278.  *
  279.  *}
  280.   ACanvas.Font := fiMincyo;
  281.   ACanvas.FontSize := 12;
  282.   ACanvas.TextOut(X, Y, 'WordSpace');
  283.   ACanvas.LineWidth := 0.75;
  284.   ACanvas.DrawRect(X, Y - 5, X + 220, Y - 140, false);
  285.  
  286.   X := X + 10;
  287.  
  288.   Y := Y - 20;
  289.  
  290.   ACanvas.FontSize := 8;
  291.   ACanvas.WordSpace := 0;
  292.   ACanvas.TextOut(X-5, Y, 'WordSpace = -2');
  293.   ACanvas.FontSize := 12;
  294.   ACanvas.WordSpace := -2;
  295.   Y := Y - ACanvas.FontSize - 3;
  296.   ACanvas.TextOut(X, Y, 'Hello World é▒é±é╔é┐é═ÉóèE');
  297.   Y := Y - 18;
  298.  
  299.   ACanvas.FontSize := 8;
  300.   ACanvas.WordSpace := 0;
  301.   ACanvas.TextOut(X-5, Y, 'WordSpace = 0 (Default)');
  302.   ACanvas.FontSize := 12;
  303.   ACanvas.WordSpace := 0;
  304.   Y := Y - ACanvas.FontSize - 3;
  305.   ACanvas.TextOut(X, Y, 'Hello World é▒é±é╔é┐é═ÉóèE');
  306.   Y := Y - 18;
  307.  
  308.   ACanvas.FontSize := 8;
  309.   ACanvas.WordSpace := 0;
  310.   ACanvas.TextOut(X-5, Y, 'WordSpace = 4');
  311.   ACanvas.FontSize := 12;
  312.   ACanvas.WordSpace := 4;
  313.   Y := Y - ACanvas.FontSize - 3;
  314.   ACanvas.TextOut(X, Y, 'Hello World é▒é±é╔é┐é═ÉóèE');
  315.   Y := Y - 18;
  316.  
  317.   ACanvas.FontSize := 8;
  318.   ACanvas.WordSpace := 0;
  319.   ACanvas.TextOut(X-5, Y, 'WordSpace = 10');
  320.   ACanvas.FontSize := 12;
  321.   ACanvas.WordSpace := 10;
  322.   Y := Y - ACanvas.FontSize - 3;
  323.   ACanvas.TextOut(X, Y, 'Hello World é▒é±é╔é┐é═ÉóèE');
  324.  
  325.   ACanvas.WordSpace := 0;
  326. end;
  327.  
  328. procedure TForm1.Button1Click(Sender: TObject);
  329. var
  330.   X, Y: Single;
  331. begin
  332.   {*
  333.    * ôKôûé╚ê╩Æué╔èeÄφâTâôâvâïé≡Åoù═é╖éΘüB
  334.    *
  335.    *}
  336.   FPDFMaker := TPDFMaker.Create;
  337.   with FPDFMaker do
  338.   begin
  339.     X := 80;
  340.     Y := 750;
  341.     BeginDoc(TFileStream.Create('FontDemo.pdf', fmCreate));
  342.  
  343.     MakeFontList(X, Y, Canvas);
  344.  
  345.     X := 310;
  346.     MakeFontSizeList(X, Y, Canvas);
  347.  
  348.     X := 80;
  349.     Y := 420;
  350.     MakeCharSpaceList(X, Y, Canvas);
  351.  
  352.     X := 310;
  353.     MakeWordSpaceList(X, Y, Canvas);
  354.  
  355.     X := 80;
  356.     Y := 240;
  357.     MakeAlignmentList(X, Y, Canvas);
  358.  
  359.     X := 310;
  360.     Y := 240;
  361.     MakeWordwrapList(X, Y, Canvas);
  362.  
  363.     EndDoc(true);
  364.     Free;
  365.   end;
  366.   ShowMessage('FontDemo.pdfé≡ì∞ɼé╡é▄é╡é╜üB');
  367.   Close;
  368. end;
  369.  
  370. procedure TForm1.MakeAlignmentList(X, Y: Single; ACanvas: TPDFContents);
  371. var
  372.   S: string;
  373.   SW, X2: Single;
  374. begin
  375. {*
  376.  *  MakeAlignmentList
  377.  *
  378.  *  ëEè±é╣üAì╢è±é╣üAâZâôâ^âèâôâOé╠âTâôâvâïé≡ACanvasé╔Åoù═é╖éΘüB
  379.  *  ëEè±é╣üAâZâôâ^âèâôâOé═TextWidthè╓Éöé┼ò╢ÄÜù±é╠Æ╖é│é≡îvÄZé╡é┼Æ▓É«é╖éΘüB
  380.  *
  381.  *}
  382.   // î⌐Åoé╡é╞ÿgÉⁿé≡Åoù═
  383.   ACanvas.Font := fiMincyo;
  384.   ACanvas.FontSize := 12;
  385.   ACanvas.TextOut(X, Y, 'Alignment');
  386.   ACanvas.LineWidth := 0.75;
  387.   ACanvas.DrawRect(X, Y - 5, X + 220, Y - 100, false);
  388.  
  389.   X := X + 10;
  390.   X2 := X + 200;
  391.  
  392.   Y := Y - 20;
  393.  
  394.   S := 'Hello World é▒é±é╔é┐é═ÉóèE';
  395.  
  396.   ACanvas.FontSize := 8;
  397.   ACanvas.TextOut(X-5, Y, 'ì╢è±é╣');
  398.   Y := Y - 12;
  399.   ACanvas.FontSize := 12;
  400.   ACanvas.TextOut(X, Y, S);
  401.   Y := Y - 18;
  402.  
  403.   ACanvas.FontSize := 8;
  404.   ACanvas.WordSpace := 0;
  405.   ACanvas.TextOut(X-5, Y, 'ëEè±é╣');
  406.   Y := Y - 12;
  407.   ACanvas.FontSize := 12;
  408.   {*
  409.    * ò╢ÄÜù±é╠ò¥é≡îvéΘüiò¥é═Font,FontSize,CharSpace,WordSpaceé╔éµé┴é─ò╧éφé┴é─é¡éΘ
  410.    * é╜é▀èeÄφÉ▌ÆΦé¬ÅIéφé┴é─é⌐éτîvéΘüB
  411.    *}
  412.   SW := ACanvas.TextWidth(S);
  413.   // X2é╠ê╩Æué≡èεÅÇé╔é╡é─ëEè±é╣é┼ò╢ÄÜù±é≡Åoù═
  414.   ACanvas.TextOut(X2 - SW, Y, S);
  415.   Y := Y - 18;
  416.  
  417.   ACanvas.FontSize := 8;
  418.   ACanvas.TextOut(X-5, Y, 'âZâôâ^âèâôâO');
  419.   Y := Y - 12;
  420.   ACanvas.FontSize := 12;
  421.   {*
  422.    * æOë±TextWidthé┼îvæ¬é╡é╜é╞é½é╞ô»é╢ò╢ÄÜù±üEÉ▌ÆΦé╠é╜é▀üASWé╠Ælé≡é╗é╠é▄é▄ÄgùpüB
  423.    * Xü`X2é╠è╘é╔âZâôâ^âèâôâOé╡é─Åoù═é╖éΘüB
  424.    *}
  425.   ACanvas.TextOut(X + (X2 - X - SW) / 2, Y, S);
  426.  
  427. end;
  428.  
  429. procedure TForm1.MakeWordwrapList(X, Y: Single; ACanvas: TPDFContents);
  430. var
  431.   S: string;
  432.   S2: string;
  433. begin
  434. {*
  435.  *  MakeWordwrapList
  436.  *
  437.  *  Æ╖éóò╢ÄÜù±é≡âÅü[âhâëâbâvé╡é─ò\Īé╖éΘâTâôâvâïüB
  438.  *  LeadingâvâìâpâeâBé┼ìsè╘èué≡ÄwÆΦé╖éΘüB
  439.  *
  440.  *}
  441.   // î⌐Åoé╡é╞ÿgÉⁿé≡Åoù═
  442.   ACanvas.Font := fiMincyo;
  443.   ACanvas.FontSize := 10.5;
  444.   ACanvas.TextOut(X, Y, 'Wordwrap');
  445.   ACanvas.LineWidth := 0.75;
  446.   ACanvas.DrawRect(X, Y - 5, X + 220, Y - 110, false);
  447.  
  448.   X := X + 10;
  449.   Y := Y - 20;
  450.  
  451.   S := 'PDFMakeré┼é═ArrengeTextâvâìâVü[âVââé≡Ägùpé╖éΘé▒é╞é┼' +
  452.        'è╚ÆPé╔âÅü[âhâëâbâvÅêù¥é¬ìséªé▄é╖üB' +
  453.        'é▄é╜üALeadingâvâìâpâeâBé╔éµé┴é─è╚ÆPé╔ìsè╘èué≡ò╧ìXé┼é½é▄é╖üB' +
  454.        'âÅü[âhâëâbâvÅêù¥é═éPâoâCâgò╢ÄÜé╠ÅΩìçé═ÆPîΩÆPê╩üAéQâoâCâgò╢ÄÜé╠ÅΩìçé═' +
  455.        'ò╢ÄÜÆPê╩é┼ïµÉ╪éτéΩéΘé╠é┼üASunday Monday Tuesday Wednesday Thursday Friday ' +
  456.        'Saturday é╠éµéñé╚ëpò╢ÄÜéαôKÉ╪é╔ïµÉ╪éτéΩé▄é╖üB';
  457.  
  458.   // ò╢ÄÜù±Sé≡200âhâbâhò¥é╔É«î`é╖éΘüB
  459.   ACanvas.ArrangeText(S, S2, 200);
  460.   // ëⁿìsè╘èué≡âtâHâôâgâTâCâYé╞ô»é╢é╔É▌ÆΦ
  461.   ACanvas.Leading := ACanvas.FontSize;
  462.  
  463.   ACanvas.TextOut(X, Y, S2);
  464.  
  465. end;
  466.  
  467. end.
  468.