Linuchs: Eingabefeld rechtsbündig mit TCPDF

Moin,

mit TCPDF erstelle ich ein ausfüllbares PDF-Dokument mit vorbelegten Werten. Hintergrundbild ist ein GEMA-Formular, deshalb muss genau positioniert werden.

Werte in Zahlenfeldern hätte ich gerne rechtsbündig, dieses ['alignment' => 'right'] funktioniert aber nicht:

$blatt_1 = [
// name, width, height, align (R)ight. left(mm), top(mm), Checkbox, Schriftgroesse in pt
...
,['veranstaltung_einnahme',  20, 6, 'R',  58,  224 ]
,['veranstaltung_besucher',  25, 6, 'R', 136,  224 ]
...
];
/* *************************************
 * Felder auf Bild Blatt 1 setzen
 * ************************************* */
for ( $i=0; $i < count($blatt_1); $i++ ) {
  // abweichende Schriftgrösze
  if ( $blatt_1[$i][7] )  $pdf->SetFontSize( $blatt_1[$i][7] . "pt");

  // Chackbox-Haken
  if ( $arr_form[ $blatt_1[$i][0] ] && $blatt_1[$i][6] ) {
    $pdf->TextField( $blatt_1[$i][0],  $blatt_1[$i][1]."mm",  $blatt_1[$i][2]."mm",  [], ['v' => 'X'], $blatt_1[$i][4]."mm",  $blatt_1[$i][5]."mm", FALSE );
  }
  // Wert rechtsbuendig (Value v 0 wird nicht eingetragen)
  else if ( $arr_form[ $blatt_1[$i][3] ] == 'R' ) {
//    $pdf->TextField( $blatt_1[$i][0],  $blatt_1[$i][1]."mm",  $blatt_1[$i][2]."mm",  ['alignment' => 'right'], ['v' => ''.$arr_form[ $blatt_1[$i][0] ]], $blatt_1[$i][4]."mm",  $blatt_1[$i][5]."mm", FALSE );
    $pdf->TextField( $blatt_1[$i][0],  $blatt_1[$i][1]."mm",  $blatt_1[$i][2]."mm",  ['alignment' => 'right'], ['v' => ''.$arr_form[ $blatt_1[$i][0] ]], $blatt_1[$i][4]."mm",  $blatt_1[$i][5]."mm", TRUE );
  // Daten linksbündig im Feld
  } else {
    $pdf->TextField( $blatt_1[$i][0],  $blatt_1[$i][1]."mm",  $blatt_1[$i][2]."mm",  [], ['v' => ''.$arr_form[ $blatt_1[$i][0] ]], $blatt_1[$i][4]."mm",  $blatt_1[$i][5]."mm", FALSE );
  }
  $pdf->SetFontSize( "10pt");
}

Woran liegt's?

Zusatzfrage: Wenn der Wert 0 ist (keine Einnahmen) wird die Ausgabe value 'v' ignoriert. Habe dem Wert ein ''. vorangestellt, um einen String zu erzwingen, nützt nichts.

Gruß, Linuchs

  1. Ich weiß es nicht wirklich, aber ich habe den Quellcode mal lesbar formatiert …

    $pdf->TextField( 
    	$blatt_1[$i][0],
    	$blatt_1[$i][1]."mm",
    	$blatt_1[$i][2]."mm",
    	[ 'alignment' => 'right' ],
    	[ 'v' => '' . $arr_form[ $blatt_1[$i][0] ],
    	$blatt_1[$i][4]."mm",
    	$blatt_1[$i][5]."mm",
    	FALSE
    );
    
    

    und das hier gefunden:

    $pdf->TextField(
    	'number_of_crews',
    	20,
    	5,
    	array(
    		'charLimit'=>3, 
    		'multiline'=>true, 
    		'lineWidth'=>0, 
    		'borderStyle'=>'none', 
    		'alignment'=>'right', 
    		'defaultStyle' => array(
    			'textFont'=>array(
    			'fontWeight'=>'bold'
    			)
    		)
    	),
    	array(
    		'v' => {number_of_crews}
    	)
    );
    

    Mir deucht, der Aufbau Deines Array ist anders als das Beispiel.