2015-05-22 42 views
5

Ich muss viele 1D- und 2D-Barcodes drucken und in einem HTML-formatierten Dokument speichern. Als ich mich umsah, stellte ich fest, dass dies mit TCPDF-Methoden möglich ist. In der Tat gibt das Beispiel Nr. 49 die Lösung.Wie platziere ich TCPDF-Barcodes in einer HTML-Tabelle mit Beispiel 49 und serializeTCPDFtagParameters anstelle von write1DBarcode?

$params = $pdf->serializeTCPDFtagParameters(array('CODE 128', 'C128', '', '', 80, 30, 0.4, array('position'=>'S', 'border'=>true, 'padding'=>4, 'fgcolor'=>array(0,0,0), 'bgcolor'=>array(255,255,255), 'text'=>true, 'font'=>'helvetica', 'fontsize'=>8, 'stretchtext'=>4), 'N')); 
$html .= '<tcpdf method="write1DBarcode" params="'.$params.'" />'; 

Bei der Implementierung auf meinem eigenen PHP-Skript wird jedoch kein Barcode gerendert. Ich habe eine test.php-Datei erstellt, wo ich einfach den ganzen PHP-Code ausschneiden und einfügen konnte, und wieder nur den $ html-Inhalt, aber nichts, was mit $ params definiert wurde.
Aber noch einmal, ich diesen

$pdf->write1DBarcode(...) 

platziert und arbeitet perfekt, macht den Barcode als erwartet, aber wie Sie vielleicht wissen, ist dies nicht der richtige Weg Barcodes innerhalb viele HTML-Tabellen zu platzieren.

Irgendeine Idee ?, Ich arbeite an PHP 5.6 auf einem Debian 7-Server, TCPDF neueste Version. Auch konnte ich die tcpdf_include.php nicht importieren, weil es innerhalb des Beispielordners kommt, stattdessen die tcpdf.php verwendet hat und alles funktioniert ok.

erneut und zu klären, kann ich 1D- und 2D-Barcodes erzeugen, um den write2DBarcode() verwenden Verfahren, kann aber nicht Barcodes erzeugen, unter Verwendung des generateserializeTCPDFtagParameters() Methode, die die eine empfohlen Barcodes innerhalb von HTML zu platzieren, wie in Beispiel 49.

Auf Anfrage von @taxicali, ist dies eine Beispielausgabe, arbeitet für eine lokale Paketfirma, die genaue Barcodes benötigt, um von den Scannern schnell gelesen zu werden.

+0

Wie gesagt ich nur das 49 Beispiel kopiert und erstellt eine Testdatei, einfach die Ausgabe zu testen, keiner meines Code beteiligt ist , nur das Beispiel wird nicht auf meinem Server gerendert. Wenn ich jedoch Barcodes mit der Methode write1DBarcode einfüge, rendert es den Barcode wie erwartet, aber beim Rendern mit serializeTCPDFtagParameters() wird kein Barcode generiert. – datelligence

Antwort

0

Ohne Ihren vollständigen Code, kann es ziemlich schwierig sein, dies zu beheben, ich habe mit PDF und Barcodes vor einer Weile gearbeitet und hatte eine Menge Probleme, viele Kopfschmerzen, bis ich es geschafft habe. Ich denke, ich muss fragen, ist Ihr TCPDF mit einer Font-Datei? Ich denke, dass Sie vielleicht die Schriftartendatei nicht einschließen, so dass Sie den Strichcode nicht so wiedergeben können, wie er gerendert werden sollte. Eine andere gute Sache wäre, dass Sie uns die Ausgabe zeigen, die Sie nach dem Rendern erhalten.

+0

Ich freue mich zu hören, dass es dir nützlich ist. Ja in der Tat theth TCPDF-Bibliothek enthält einen Font-Ordner es hat einen Schriftarten-Ordner mit mindestens 100 Schriftarten und es verwendet es als eine Abhängigkeit, so dass es auf dem Server unter Beibehaltung es; s URL-Pfad., Die Sie als – datelligence

3

Sample of a barcodes sheet generated by TCPDF

Ich löste nur das was übrigens ein häufiges Problem sein kann: ich die tcpdf_config.php Datei nur kopiert, die sich hier befindet:

/tcpdf/ 
     examples/ 
       config/ 

und klebte hier:

/tcpdf/ 
     config/ 

Nicht mehr, es war nur ein Problem der Abhängigkeiten.

+1

Die Konfigurationsdatei gefunden werden muss im Beispielordner heißt eigentlich 'tcpdf_config_alt.php'. Sie müssen es in 'tcpdf_config.php' umbenennen und die Datei' tcpdf_config.php' im Ordner '/ tcpdf/config /' überschreiben. –

2

Um das HTML-Tag tcpdf verwenden zu können, müssen Sie in tcpdf_config die Konstante 'K_TCPDF_CALLS_IN_HTML' auf 'TRUE' setzen.PHP-Datei, wie das Beispiel an der Spitze sagt in rot

https://tcpdf.org/examples/example_049/

/** 
* If true allows to call TCPDF methods using HTML syntax 
* IMPORTANT: For security reason, disable this feature if you are printing user HTML content. 
*/ 
define('K_TCPDF_CALLS_IN_HTML', true); 
+0

das funktioniert !!!! – wahmal