Gut, wie groß das pdf ist hängt natürlich von der Seitengröße des pdfs ab. Vielleicht mal mit 96 dpi einnscannen oder mit StrechDraw arbeiten.
Ich zieh mir die Komponente auch nicht aufs Form sondern hab eine TList von gleich großen TPRPage Seiten. Wenn ich Bitmaps einbinde, dann sind deren Abmessungen exakt auf die Seitengröße des pdfs abgestimmt (immer ganze, hable oder Viertelgrößen dieser Bounds).
Die Seiten hab ich so aufgebaut:
Delphi-Quellcode:
const
CharFixedHeight = 28;
CharArialHeight = 24;
CharFixedWidth = 16.8; // PRLabel.GetTextWidth (FontSize: CharFixedHeight, fnFixedWidth)
PRPageWidth = 1680;
PRPageHeight = 2376;
PRLayoutPanelMarginsX = 168; // (PageWidth - 80 * FixedWidth) / 2
PRLayoutPanelMarginsY = 50;
procedure TPdfListPage.PRPageInit(const PageNr: integer);
begin
FPRPage.Left:= 0;
FPRPage.Top:= 0;
FPRPage.Width:= PRPageWidth;
FPRPage.Height:= PRPageHeight;
FPRPage.Name:= 'PRPage' + IntToStr(PageNr);
end;
procedure TPdfListPage.PRLayoutPanelInit(const PageNr, VX, VY: integer);
begin
FPRLayoutPanel.Parent:= FPRPage;
FPRLayoutPanel.Left:= PRLayoutPanelMarginsX + VX;
FPRLayoutPanel.Top:= PRLayoutPanelMarginsY + VY;
FPRLayoutPanel.Width:= FPRPage.Width - 2 * PRLayoutPanelMarginsX;
FPRLayoutPanel.Height:= FPRPage.Height - 2 * PRLayoutPanelMarginsY;
FPRLayoutPanel.Name:= 'PRLayoutPanel' + IntToStr(PageNr);
end;