Ausgabe von Ausweisen in einer Schleife

Diskussionen und Austausch über die von FPDF bereitgestellten Methoden, Problemen bei der Anwendung etc.
Thomas76
Benutzer
Beiträge: 1
Registriert: Di 7. Nov 2017, 13:55

Ausgabe von Ausweisen in einer Schleife

Beitragvon Thomas76 » Di 7. Nov 2017, 14:15

Hi zusammen,

für mein IHK Abschlussprojekt, eine Erfassung und Verwaltung hilfesuchender Personen, benötige ich eine Möglichkeit Ausweise zu drucken, mal sind es nur zwei, es können aber durchaus auch mal zwanzig oder mehr sein (Seite muss nach 8 Ausweisen gewechselt werden).

Meine Daten für die Ausweise hole ich mir per DB Query und lasse sie mir ein einem mehrdimensionalen Array hinterlegen. Eine einfache Ausgabe der Informationen ist soweit machbar, doch bekomme ich die Ausweise der einzelnen Personen überlagert dargestellt, nicht, wie es sein soll, neben- bzw. untereinander. Heißt, ich müsste per Schleife eine Anordnung der einzelnen Ausweise realisieren. Die Frage ist nur .... wie!?

Ich habe gesehen, dass es "Labels" als Plugin gibt. Ist auch ganz schön. Doch, sollte ich dies nutzen müssen, wie kann ich dort den einzelnen Elementen wie Name, Vorname, Strasse, Wohnort, Gültigkeit des Ausweises usw usw positionieren?

Und nun der Haken an der ganzen Geschichte. Die Ausgabe der Ausweise darf keinesfalls immer an der ersten Stelle der Seite begonnen werden. Klar, die Ausweise sind heraustrennbar, macht ja kein Sinn wenn ich von acht verfügbaren Auweisen nur drei verwende und den Rest des Bogens wegwerfe.
Also übergebe ich über das Auswahlformular auch die Startposition die ich .... wo genau einbaue? Wo kann ich sagen, an welcher Stelle die Erzeugung der Ausweise beginnen soll?

Ich hoffe, es ist soweit verständlich was ich vorhabe. Ich freue mich über jede Hilfe!

Hier der entsprechende Code:

Code: Alles auswählen

    public function collectAndPrint() {

        $startPosition = $_POST['sel1'][0];
        $collectedData = [];
        $i = 0;


        foreach( $_POST['personID'] as $key => $value) {
            $this->model->pdfprint($value);
            $collectedData[] = $this->model->pdfprint($value);
        }

        define('FPDF_INSTALLDIR', '/Applications/XAMPP/xamppfiles/htdocs/lichtblicke/public/fpdf');
        if(!defined('FPDF_FONTPATH')) define('FPDF_FONTPATH', FPDF_INSTALLDIR.'/font/');
        include(FPDF_INSTALLDIR.'/fpdf.php');


        $pdf = new FPDF('P', 'mm', 'A4');
        $pdf->AddPage();

        $pdf->SetMargins(0, 0, 0);
        $pdf->SetAutoPageBreak(true, 0);

        ob_start();
        while($i < count($collectedData)) {

            $personID = utf8_decode($collectedData[$i]['personID']);
            $firstName = utf8_decode($collectedData[$i]['first_name']);
            $lastName = utf8_decode($collectedData[$i]['last_name']);
            $street = utf8_decode($collectedData[$i]['street']);
            $housenumber = $collectedData[$i]['housenumber'];
            $postcode = $collectedData[$i]['post_code'];
            $city = utf8_decode($collectedData[$i]['city']);
            $expirationDate = $collectedData[$i]['expirationDate'];

            $pdf->SetFont('Arial','B',8);
            $pdf->text(17,17,"Überschrift");
            $pdf->SetFont('Arial','B',14);
            $pdf->text(40,25,"Ausweis Nr. $personID");
            $pdf->SetFont('Arial','',10);
            $pdf->text(20,45,"Name: $firstName $lastName");
            $pdf->text(20,50,"Strasse: $street $housenumber");
            $pdf->text(20,55,"Wohnort: $postcode $city");
            $pdf->text(60,62,iconv("UTF-8", "ISO-8859-1", "Gültig bis: $expirationDate"));
            $i++;

            ob_end_flush();
            }



        $pdf->Output();
    }
}


Danke und liebe Grüße,
Thomas

Zurück zu „Programmierung“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste