home *** CD-ROM | disk | FTP | other *** search
- program CGITest;
-
- uses
- SysUtils, Windows, Classes, PDFMaker, PMFonts;
-
- {$R *.RES}
-
- const
- ENV_ARRAY: array[0..16] of string = ('SERVER_SOFTWARE', 'SERVER_NAME',
- 'GATEWAY_INTERFACE', 'SERVER_PROTOCOL',
- 'SERVER_PORT', 'REQUEST_METHOD', 'PATH_INFO', 'PATH_TRANSLATED', 'SCRIPT_NAME',
- 'QUERY_STRING', 'REMOTE_HOST', 'REMOTE_ADDR', 'AUTH_TYPE', 'REMOTE_USER',
- 'REMOTE_IDENT', 'CONTENT_TYPE', 'CONTENT_LENGTH');
- var
- FPDFMaker: TPDFMaker;
- PdfFileName: string;
- Buf: array[0..1024] of char;
- FStream: TMemoryStream;
- i: integer;
- s, s1: string;
- ret: integer;
- len: integer;
- begin
-
- PdfFileName := 'test.pdf';
-
- // PDFMakerâIâuâWâFâNâgé≡ì∞ɼ
- FStream := TMemoryStream.Create;
- try
- FPDFMaker := TPDFMaker.Create;
- with FPDFMaker do
- try
- // PDFâtâ@âCâïé≡ì∞ɼ
- BeginDoc(FStream);
- Canvas.FontSize := 12;
- Canvas.Font := fiGothic;
- Canvas.Leading := 15;
- S := 'Test PDF From CGI!!' + #13#10;
-
- // è┬ï½ò╧Éöé⌐éτÆlé≡ô╟é▌ì₧é±é┼ò\Īé╖éΘ
- for i := 0 to 16 do
- begin
- ret := GetEnvironmentVariable(PChar(ENV_ARRAY[i]), Buf, 1024);
- if ret > 0 then
- S := S + ENV_ARRAY[i] + ' : ' + StrPas(Buf) + #13#10;
- end;
-
- Canvas.TextOut(50, 700, s);
-
- // Streamé═ò┬é╢é╚éóüB
- EndDoc(false);
- len := FStream.Size;
-
- // âwâbâ_Åεò±üi"Content-Type: application/pdf"é═òKÉ{üB
- // é▒éΩé¬û│éóé╞âuâëâEâUé¬âeâLâXâgâtâ@âCâïé╞é╡é─öFÄ»é╡é─é╡é▄éñüB
- // Content-Lengthéαû│éóé╞éñé▄é¡éóé⌐é╚éóÄ₧é¬éáéΘüB
- S1 := 'Content-Type: application/pdf' + #13#10 +
- 'Content-Length: ' + IntToStr(len) + #13#10#13#10;
-
- SetLength(S, len);
- FStream.Position := 0;
-
- // Streamé⌐éτò╢ÄÜù±é╔âfü[â^é≡âRâsü[é╡é─Åoù═
- FStream.Read(S[1], len);
- S1 := S1 + S + #13#10;
-
- // òWÅÇÅoù═é╔Åoù═
- WriteLn(S1);
- finally
- FPDFMaker.Free;
- end;
- finally
- FStream.Free;
- end;
- end.
-