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 / CGITest.dpr next >
Encoding:
Text File  |  2000-08-24  |  2.0 KB  |  76 lines

  1. program CGITest;
  2.  
  3. uses
  4.   SysUtils, Windows, Classes, PDFMaker, PMFonts;
  5.  
  6. {$R *.RES}
  7.  
  8. const
  9.   ENV_ARRAY: array[0..16] of string = ('SERVER_SOFTWARE', 'SERVER_NAME',
  10.              'GATEWAY_INTERFACE', 'SERVER_PROTOCOL',
  11.              'SERVER_PORT', 'REQUEST_METHOD', 'PATH_INFO', 'PATH_TRANSLATED', 'SCRIPT_NAME',
  12.              'QUERY_STRING', 'REMOTE_HOST', 'REMOTE_ADDR', 'AUTH_TYPE', 'REMOTE_USER',
  13.              'REMOTE_IDENT', 'CONTENT_TYPE', 'CONTENT_LENGTH');
  14. var
  15.   FPDFMaker: TPDFMaker;
  16.   PdfFileName: string;
  17.   Buf: array[0..1024] of char;
  18.   FStream: TMemoryStream;
  19.   i: integer;
  20.   s, s1: string;
  21.   ret: integer;
  22.   len: integer;
  23. begin
  24.  
  25.   PdfFileName := 'test.pdf';
  26.  
  27.   // PDFMakerâIâuâWâFâNâgé≡ì∞ɼ
  28.   FStream := TMemoryStream.Create;
  29.   try
  30.     FPDFMaker := TPDFMaker.Create;
  31.     with FPDFMaker do
  32.     try
  33.       // PDFâtâ@âCâïé≡ì∞ɼ
  34.       BeginDoc(FStream);
  35.       Canvas.FontSize := 12;
  36.       Canvas.Font := fiGothic;
  37.       Canvas.Leading := 15;
  38.       S := 'Test PDF From CGI!!' + #13#10;
  39.  
  40.       // è┬ï½ò╧Éöé⌐éτÆlé≡ô╟é▌ì₧é±é┼ò\Īé╖éΘ
  41.       for i := 0 to 16 do
  42.       begin
  43.         ret := GetEnvironmentVariable(PChar(ENV_ARRAY[i]), Buf, 1024);
  44.         if ret > 0 then
  45.           S := S + ENV_ARRAY[i] + ' : ' + StrPas(Buf) + #13#10;
  46.       end;
  47.  
  48.       Canvas.TextOut(50, 700, s);
  49.  
  50.       // Streamé═ò┬é╢é╚éóüB
  51.       EndDoc(false);
  52.       len := FStream.Size;
  53.  
  54.       // âwâbâ_Åεò±üi"Content-Type: application/pdf"é═òKÉ{üB
  55.       // é▒éΩé¬û│éóé╞âuâëâEâUé¬âeâLâXâgâtâ@âCâïé╞é╡é─öFÄ»é╡é─é╡é▄éñüB
  56.       // Content-Lengthéαû│éóé╞éñé▄é¡éóé⌐é╚éóÄ₧é¬éáéΘüB
  57.       S1 := 'Content-Type: application/pdf' + #13#10 + 
  58.             'Content-Length: ' + IntToStr(len) + #13#10#13#10;
  59.  
  60.       SetLength(S, len);
  61.       FStream.Position := 0;
  62.  
  63.       // Streamé⌐éτò╢ÄÜù±é╔âfü[â^é≡âRâsü[é╡é─Åoù═
  64.       FStream.Read(S[1], len);
  65.       S1 := S1 + S + #13#10;
  66.  
  67.       // òWÅÇÅoù═é╔Åoù═
  68.       WriteLn(S1);
  69.     finally
  70.       FPDFMaker.Free;
  71.     end;
  72.   finally
  73.     FStream.Free;
  74.   end;
  75. end.
  76.