procedure CreateHelloPDF(const AFileName: string);
var
oPDF: TsgcPDFDocument;
oPage: TsgcPDFPage;
begin
oPDF := TsgcPDFDocument.Create;
try
oPDF.Info.Title := 'Hello sgcPDF';
oPage := oPDF.AddPage(595, 842);
oPage.DrawTextColor('Hello sgcPDF', 50, 780, sfHelveticaBold, 24, 0, 0.2, 0.6);
oPage.DrawLine(50, 770, 545, 770, 1.5);
oPage.DrawText('A PDF written in pure Pascal.', 50, 740, sfHelvetica, 12);
oPDF.SaveToFile(AFileName);
finally
oPDF.Free;
end;
end;
procedure StampExistingPDF(const AInput, AOutput: string);
var
oEditor: TsgcPDFEditor;
oWatermark: TsgcPDFWatermarkOptions;
begin
oEditor := TsgcPDFEditor.Create;
try
oEditor.LoadFromFile(AInput);
oWatermark.Text := 'CONFIDENTIAL';
oWatermark.Font := sfHelveticaBold;
oWatermark.FontSize := 48;
oWatermark.Rotation := 45;
oWatermark.Opacity := 0.3;
oWatermark.R := 0.5;
oWatermark.G := 0.5;
oWatermark.B := 0.5;
oEditor.AddWatermarkAllPages(oWatermark);
oEditor.AddPageNumbers(sfHelvetica, 10, 'Page %d of %d');
oEditor.SaveToFile(AOutput);
finally
oEditor.Free;
end;
end;
procedure RenderPageToPNG(const APDFFile, APNGFile: string; ADPI: Integer);
var
oPDF: TsgcPDFDocument;
oRenderer: TsgcPDFRendererRaster;
oPage: TsgcPDFPage;
begin
oPDF := TsgcPDFDocument.Create;
try
oPDF.LoadFromFile(APDFFile);
oPage := oPDF.Pages[0];
oRenderer := TsgcPDFRendererRaster.Create;
try
oRenderer.RenderPageToPNG(oPDF.Parser, oPage.PageDict,
Round(oPage.Width * ADPI / 72), Round(oPage.Height * ADPI / 72),
APNGFile);
finally
oRenderer.Free;
end;
finally
oPDF.Free;
end;
end;