So sieht's vom Layout her ganz gut aus:
Delphi-Quellcode:
// PowerPdf Seitenaufbau DIN A4 aus 80 Spalten CharFixedWidth und MaxLinesCount Zeilen
// Labes müssen PRLayoutPanel.Parent sein, PReport.Print will aber eine Page zum Drucken
// Page muß DIN A4 sein, Panel nicht
// Note: Methode TPRCustomLabel.SetFontSize macht Font.Size := Round(Value*0.75);
const
CharFixedHeight = 12;
CharFixedWidth = 7.2; // PRLabel.GetTextWidth für 1 Zeichen FontSize 12 fnFixedWidth
PRPageWidth = 700;
PRPageHeight = 990;
MaxLinesCount = 70;
PRLayoutPanelMarginsX = 62; // (PageWidth - 80 * FixedWidth)/2
PRLayoutPanelMarginsY = 20;
LinesDistance = 13.57143; // (PageHeight - 2 * LayoutPanelMarginsY) / MaxLinesCount
procedure TPdfPage.PRPageInit(const PageNr: integer);
begin
FPRPage.Left:= 0;
FPRPage.Top:= 0;
FPRPage.Width:= PRPageWidth;
FPRPage.Height:= PRPageHeight;
FPRPage.Name:= 'PRPage' + IntToStr(PageNr);
end;
procedure TPdfPage.PRLayoutPanelInit(const PageNr: integer);
begin
FPRLayoutPanel.Parent:= FPRPage;
FPRLayoutPanel.Left:= PRLayoutPanelMarginsX;
FPRLayoutPanel.Top:= PRLayoutPanelMarginsY;
FPRLayoutPanel.Width:= FPRPage.Width - 2 * PRLayoutPanelMarginsX;
FPRLayoutPanel.Height:= FPRPage.Height - 2 * PRLayoutPanelMarginsY;
FPRLayoutPanel.Name:= 'PRLayoutPanel' + IntToStr(PageNr);
end;