Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Bezugsgrößen für die Schriftgröße bei powerdpf (https://www.delphipraxis.net/167808-bezugsgroessen-fuer-die-schriftgroesse-bei-powerdpf.html)

Bjoerk 19. Apr 2012 17:10

Bezugsgrößen für die Schriftgröße bei powerdpf
 
Ich versuche gerade, mit powerdpf pdf’s zu erstellen, allerdings nonvisuell. Jetzt ist mir aufgefallen, daß hierbei die Größe der Page das entscheidente Kriterium ist. Ist die Page z.B. 210 x 297 Pixel ist eine Schriftgröße 12 im pdf später riesig groß. Ist das Pdf hingegen z.B. 2100 x 2970 Pixel erscheint die Schrift eher winzig. Gibt es eine Möglichkeit, das irgendwie zu umgehen, da ja Report.Print immer eine Page druckt. Also, daß eine Schriftgröße 12 immer als 12 dargesellt wird, unabhängig von der Größe der Page, wie beim Drucker?

Klaus01 19. Apr 2012 17:14

AW: Bezugsgrößen für die Schriftgröße bei powerdpf
 
Hallo,

Schrifgröße 12 heißt doch das sie 12 Pixel hoch ist.
Das erscheint auf einer kleineren Fläche größer als auf einer großen Fläche,
Die Schriftgröße bleibt aber immer 12 (Pixel).

Wenn Du die Schrift gleich dargestellt haben willst,
solltest Du bei einer großen Fläche auch eine größere Schrift nehmen.

Zum Errechnen der Schriftgröße sollte eine einfacher Dreisatz ausreichen.

Grüße
Klaus

Bummi 19. Apr 2012 17:16

AW: Bezugsgrößen für die Schriftgröße bei powerdpf
 
Ich kenne powerpdf nicht, aber wenn ich die Seitegröße durch 10*10 teile, also den Text auf einem hundertstel der Fläche ausgebe schein es mit normal dass eine Schrift in Standardgröße Verhältnismäßig groß erscheint :?:

Bjoerk 19. Apr 2012 17:52

AW: Bezugsgrößen für die Schriftgröße bei powerdpf
 
Zitat:

Zitat von Klaus01 (Beitrag 1162704)
Zum Errechnen der Schriftgröße sollte eine einfacher Dreisatz ausreichen.

Und was sind bitteschön die Bezugsgrößen?

Klaus01 20. Apr 2012 07:35

AW: Bezugsgrößen für die Schriftgröße bei powerdpf
 
Zitat:

Zitat von Bjoerk (Beitrag 1162707)
Zitat:

Zitat von Klaus01 (Beitrag 1162704)
Zum Errechnen der Schriftgröße sollte eine einfacher Dreisatz ausreichen.

Und was sind bitteschön die Bezugsgrößen?

Du nimmst Dir eine "Blattgröße" auf dem die Schrift o.k. ausschaut.

Wenn Du nun eine kleiner Blattgröße nimmst, rechnest Du die Schriftgröße herunter.
Bei einer größeren Blattgröße rechnest Du die Schriftgröße herauf.

Optimal wäre es, wenn bei der Blattgrößenänderung die Seitenverhältnisse des Blattes gleich blieben.
Ansonsten wirst Du die Blattseiten getrennt betrachten müssen.

Grüße
Klaus

Bjoerk 20. Apr 2012 10:51

AW: Bezugsgrößen für die Schriftgröße bei powerdpf
 
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;


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz