Einzelnen Beitrag anzeigen

Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: mehrseitige PowerPDF-Datein mit Kompression

  Alt 16. Mär 2013, 08:20
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;
  Mit Zitat antworten Zitat