Modul PDF: Unterschied zwischen den Versionen

Aus bafbal.de
Zur Navigation springen Zur Suche springen
Zeile 136: Zeile 136:
  
 
'''Parameter'''
 
'''Parameter'''
 +
 +
 +
 +
 +
  FY := FY - FindParamSingleReplaced('d', 0) * FZoom;
 +
  LRandUnten := FindParamSingleReplaced('mb', 20) * FZoom;
 +
  LName := FindParamStringReplaced('n', '');
 +
  LWidth := FindParamSingleReplaced('w', 0) * FZoom;
 +
  LHeight := FindParamSingleReplaced('h', 0) * FZoom;
 +
  LX := FindParamSingleReplaced('x', 0) * FZoom;
 +
  LY := FindParamSingleReplaced('y', -1) * FZoom;
 +
  if LY < 0 then begin
 +
    FY := FY - LHeight;
 +
    if FY < LRandUnten then begin
 +
      PdfAddPage;
 +
      FY := FY - LHeight;
 +
    end;
 +
    LY := FY;
 +
  end;
 +
  FPDF.Canvas.DrawXObject(LX, LY, LWidth, LHeight, LName);
 +
end;
  
 
'''Beispiel'''
 
'''Beispiel'''
 
  
 
==#pdf_newpage==
 
==#pdf_newpage==

Version vom 22. Dezember 2020, 18:56 Uhr

PDF

Im Modul PDF werden die Routinen zusammengefasst, die zur Erstellung von PDF-Dateien verwendet werden.

#pdf_start

Beginnt ein PDF-Dokument.

Derzeit wird nur das Format DIN A4 im Hoch- oder Querformat unterstützt.

Parameter

  • pal (PageLandscape) - Wenn Y, dann wird die Seite im Querformat erstellt; Default N; Funktionen werden ersetzt

Beispiel

#pdf_start
#pdf_text  c="Hello World"
#pdf_stop  fn=$DIR(doc)\test.pdf

#pdf_stop

Beendet das PDF-Dokument und speichert es.

Parameter

  • fn ("FileName") - dateiname, unter dem das Dokument gespeichert wird; Funktionen werden ersetzt. Ist der Parameter leer, so wird ein Dateiauswahldialog geöffnet.

Beispiel

#pdf_start
#pdf_text  c="Hello World"
#pdf_stop  fn=$DIR(doc)\test.pdf

#pdf_text

Fügt eine Textzeile ein.

Parameter

  • a ("align") - Ausrichtung des Textes
    • c ("center") - zentriert
    • d2 - rechtsbündig auf zwei Dezimalstellen
    • d4 - rechtsbündig auf vier Dezimalstellen
    • l - linksbündig
    • r - rechtsbündig
  • c ("caption") - Text, der ausgegeben werden soll; Funktionen werden ersetzt
  • grp ("group") - Gruppenwert; wenn dieser Wert vom vorherigen abweicht, dann wird eine neue Gruppe begonnen; Funktionen werden ersetzt
  • l - Linker Rand; Funktionen werden ersetzt; Default 18mm
  • mb ("margin bottom") - Wird nach dem Zeilenumbruch dieser untere Rand unterschritten, dann wird eine neue Spalte beziehungsweise neue Seite begonnen; Funktionen werden ersetzt; default 15 mm.
  • r - Rechter Rand; Funktionen werden ersetzt; Default 15mm


Beispiel

#pdf_text c="Dies ist ein Test"   l=30   r=100   a=c

#pdf_texto

Wie #pdf_text, mit dem Unterschied, dass kein Zeilenvorschub erfolgt.

Parameter

siehe #pdf_text

Beispiel

#pdf_texto   c="Eine Beispielzeile mit "
#pdf_font   b=Y
#pdf_text   l=53   c="einem Font-Wechsel "

#pdf_font

Setzt den Font für die Textaufgabe.

Parameter

  • b ("bold") - Wenn Y, dann wird der Font fett dargestellt.
  • cl ("color") - Farbe, als Hex-Wert oder als Farbkonstante
  • i ("italic") - Wenn Y, dann wird der Font kursiv dargestellt.
  • n ("name") - Name der Schriftart; Default ist Helvetica
  • s ("size") - Größe der Schriftart in typographischen Punkt; Funktionen werden ersetzt; Default 10. Die Zeilenhöhe ist 120% der Schriftgröße

Beispiel

#setfont   s=12   b=Y

#pdf_sety

Setzt die Y-Position.

Bei der Ausgabe mit #pdf_text haben wir einen automatischen Zeilenvorschub. Sollen jedoch Absätze eingefügt werden, dann muss die Y-Position entsprechend verändert werden.

Der 0-Punkt bei PDF liegt in der linken, unteren Ecke. Die obere Ecke bei einem stehenden DIN A4-Blatt liegt also bei 297 mm, die Y-Position reduziert sich also laufend, wenn das Blatt von oben nach unten beschrieben wird.

Parameter

  • d ("distance") - Reduziert den Y- Wert um den angegebenen Wert in mm; Funktionen werden ersetzt.
  • y - Setzt die Y-Position als absoluten Wert in mm; Funktionen werden ersetzt.

Beispiel

#pdf_text Zeile 1
#pdf_text Zeile 2
#pdf_sety   d=5
#pdf_text Neuer Absatz
#pdf_text weitere Zeile

#pdf_checknewline

Fügt eine neue Zeile ein. Liegt die Position dann unter dem unteren Rand, wird eine neue Spalte beziehungsweise eine neue Seite begonnen.

Parameter

  • mb ("margin bottom") - Unterer Rand in mm; wird dieser Wert unterschritten, dann wird eine neue Spalte beziehungsweise eine neue Seite begonnen. Funktionen werden ersetzt; default ist 20.

Beispiel

#pdf_checknewline   mb=15

#pdf_loadpic

Das Laden und das Einfügen von Bildern sind getrennte Anweisungen, da ein und dasselbe Bild nur einmal geladen wird (und dann nur einmal in der PDF-Datei ist), aber öfters eingefügt werden kann.

Parameter

  • fn ("FileName") - Dateiname der Datei, aus welcher das Bild geladen wird.
  • n - Name des Bildes. Muss um Dokument eindeutig sein.

Beispiel

#pdf_loadpic  n=logo  fn=i:\temp\logo_firma.BMP
#pdf_insertpic  n=logo   w=60   h=40   x=50  y=50

#pdf_insertpic

Parameter



 FY := FY - FindParamSingleReplaced('d', 0) * FZoom;
 LRandUnten := FindParamSingleReplaced('mb', 20) * FZoom;
 LName := FindParamStringReplaced('n', );
 LWidth := FindParamSingleReplaced('w', 0) * FZoom;
 LHeight := FindParamSingleReplaced('h', 0) * FZoom;
 LX := FindParamSingleReplaced('x', 0) * FZoom;
 LY := FindParamSingleReplaced('y', -1) * FZoom;
 if LY < 0 then begin
   FY := FY - LHeight;
   if FY < LRandUnten then begin
     PdfAddPage;
     FY := FY - LHeight;
   end;
   LY := FY;
 end;
 FPDF.Canvas.DrawXObject(LX, LY, LWidth, LHeight, LName);

end;

Beispiel

#pdf_newpage

Parameter

Beispiel


#pdf_newcol

Parameter

Beispiel


#pdf_execsub

Parameter

Beispiel


#pdf_multi

Parameter

Beispiel


#pdf_multibb

Parameter

Beispiel


#pdf_line

Parameter

Beispiel


#pdf_coldef

Parameter

Beispiel