Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#2

AW: SynPDF und "Bonrollen"

  Alt 12. Mai 2021, 12:04
Schau Dir in den Quellen von SynPdf mal diese Methode an:
Delphi-Quellcode:
procedure TPdfDocument.SetDefaultPaperSize(const Value: TPDFPaperSize);
const PAPERSIZE: array[TPDFPaperSize] of array[0..1] of integer =
  ( (595,842), (419,595), (842,1190), (1190,1683), (1683,2382), (2382,3369),
    (612,792), (612,1008), (0,0) );
begin // psA4, psA5, psA3, psA2, psA1, psA0, psLetter, psLegal, psUserDefined
  FDefaultPaperSize := Value;
  if Value<>psUserDefined then begin
    FDefaultPageWidth := PAPERSIZE[Value,0];
    FDefaultPageHeight := PAPERSIZE[Value,1];
  end;
end;
Anhand dieser Werte kannst Du dann das von Dir benötigte Format berechnen.
Code:
(595,842) entspricht DIN A4 mit 210 x 297 mm bzw. 21,0 cm x 29,7 cm

Kettensatz:
? = 80 mm
210 mm = 595

595 * 80 / 210 = 226,66666666666666666666666666667

DefaultPageWidth := 226;
Da Du ja "endloslange" drucken musst, musst Du die DefaultPageHeight (jeweils vom Inhalt abhängig) individuell berechnen.
  Mit Zitat antworten Zitat