Arbeiten mit PDF in PHP

8

Kurz

Was ich tun möchte, ist, PHP-generierte Ergebnisse für den Druck mit starken Regeln vorzubereiten.

Versucht alle möglichen Wege mit CSS + HTML: Setze Dimensionen in px, mm, cm. Nichts half. Jeder Browser, auch jeder Drucker, druckte absolut unterschiedliche Papierresultate (probierte beides mit & amp; ohne Randdruck. Bekam auch kein Ergebnis). Nach langer Recherche, festgestellt, dass CSS ist nicht der beste Weg für diesen Zweck und bessere Möglichkeit - PDF-Erstellung Funktionalität mit PHP zu verwenden. Also, installierte TCPDF. Aber es funktioniert nicht mit dem logischen Teil, den ich für die HTML-Ausgabe erstellt habe.

Was ich bekommen möchte

  • Der Rand der ersten und letzten Zeilen der Tabelle muss von oberen und unteren Seiten des Papiers 11 mm sein
  • Rand zwischen den Zeilen '0 mm
  • Die Reihen der Tabelle müssen 4 mm von den linken und rechten Seiten des Papiers
  • entfernt sein
  • 2 mm zwischen jeder Spalte
  • 38 mm Breite x 21,2 mm Höhe jede Zelle
  • 13 x Zeilen, 5 x Spalten, 13x5 = 65 Zellen
  • Jede Tabelle in einer neuen Seite. Mit anderen Worten - nach jeder Tabelle Seitenwechsel
  • In jeder Zelle Code 39 Barcode (Wert muss $id sein)
  • Nur Tabellen im PDF-Ergebnis - keine Kopfzeile, keine Fußzeile, kein Titel ... usw.

Hier ist eine detailliertere Erklärung zum Bild:

Was ich bekomme

Nach dem Senden des Formulars dauert die Verarbeitung in der php-Seite zu lange - etwa Minuten und öffnet eine leere Seite anstelle des PDF-Ergebnisses.

Code:

(Code ist nicht so groß, Kommentare machen es so aussehen:)

%Vor%

Script funktioniert so:

  1. Der Benutzer wählt die Kontrollkästchen der Elemente
  2. aus
  3. Nach der Übergabe des Formulars erhält PHP die Werte der Checkboxen über Ajax
  4. In foreach-Schleife erhält PHP die Mengen jedes Elements aus der Datenbank.
  5. Generierte Tabelle
heron 12.02.2012, 11:46
quelle

3 Antworten

4

Hier ist eine html / css zu pdf Konverterbibliothek Ссылка

Dies hat einen eigenen html / css-Parser und liefert somit in allen Browsern das gleiche Ergebnis.

%Vor%     
redmoon7777 12.02.2012, 12:12
quelle
2

Ich denke, wenn Sie überhaupt kein Ergebnis erhalten, unterdrücken Sie Fehler wahrscheinlich so, dass Sie sie nicht mit Ihrem Skript bekommen. Auch Ihre Vorgehensweise mit HTML ist einfach nicht so wie es funktioniert; Sie können die Aufrufe von nativen TCPDF-Zellen nicht mit HTML verschachteln. Sie geben kein Markup aus. Sie mischen also zwei verschiedene, inkompatible Formate, die zu zwei verschiedenen Puffern gehen.

Allerdings sollte Code immer noch eine PDF erzeugen.

Beachten Sie die letzte Seite mit Ihrem Markup-generierten Inhalt.

Die einzigen Änderungen, die ich vorgenommen habe, waren die, wo ich es ohne Zugriff auf Ihre Daten ausführen konnte:

%Vor%

Ich bekomme ein PDF. Es sieht nicht wie das, was Sie in dem Bild haben, aber es erzeugt ein PDF. Ich sehe, dass Ihr Code zu diesem Beispiel auf der TDPDF-Site ungefähr 90% ähnelt:

Ссылка

Als ich hineinging und mein eigenes Beispiel machte, konnte ich eine PDF-Datei erhalten, die im Allgemeinen das nachahmte, was Sie auf dem Foto zeigen. Wie Sie im unten stehenden Code sehen werden, müssen Sie mit den nativen TCPDF-Zellmethoden arbeiten, damit die Barcode-Generierung funktioniert. Es ist nicht so schwer; brauchte ungefähr 30 Minuten um herauszufinden, wie man ein PDF erstellt.

Das Einzige, was ich nicht herausfinden konnte, war, woher die schwarze Linie auf der Oberseite kommt; Es ist irgendwie mit der Kopfzeile verbunden, aber ich konnte nicht finden, wo ich es abstellen soll. Der Code, der hinter der zweiten PDF steht:

%Vor%     
Jared Farrish 12.02.2012 14:21
quelle
0

Hier ist ein Link zu einer PDF, die genau wie Ihr Bild aussieht:

Link zur embrasse-moi.com Barcode-Etikettendatei

UND hier ist die Funktion, die es erstellt hat. Ich benutze tcpdf. Ich erstelle 3 Textzeilen, die ID, die Beschreibung, den Preis, den ich aus meiner Sub-ID suche, damit dieser Code ersetzt werden muss. Ich gebe auch den Zeilen- / Spalten-Offset zur Verwendung mit avery5167 ein, damit wir alle Aufkleber verwenden können.

%Vor%     
Iannazzi 18.02.2013 20:51
quelle

Tags und Links