Heim  >  Artikel  >  Backend-Entwicklung  >  Das TP-Framework führt Schritte und Lösungen des tcpdf-Plug-ins für verstümmelte chinesische TCPD-Zeichen ein

Das TP-Framework führt Schritte und Lösungen des tcpdf-Plug-ins für verstümmelte chinesische TCPD-Zeichen ein

little bottle
little bottlenach vorne
2019-04-26 17:31:244724Durchsuche

In diesem Artikel geht es hauptsächlich um die Schritte zur Einführung des tcpdf-Plugins in das TP-Framework und die Lösung für verstümmelte TCPD-Zeichen. Freunde in Not können einen Blick darauf werfen .

Bei Projekten habe ich HTML zum Generieren von PDFs verwendet und festgestellt, dass die TCPDF-Plugin-Funktion besser geeignet ist. Daher habe ich mich für dieses Plug-In entschieden. Der spezifische Prozess ist wie folgt:

1. Laden Sie die neueste Version von TCPDF über Composer herunter und wechseln Sie zum Programm im Stammverzeichnis (DOS-Befehlsumschaltung unter Windows):

composer require tecnickcom/tcpdf

Danach Nachdem der Befehl erfolgreich ausgeführt wurde, wird TCPDF in den Herstellerordner im Stammverzeichnis des Programms heruntergeladen, z. B. Bild:

Es gibt mehr als 60 typische Beispiele in den Beispielen. Sie können einfach nachsehen Sehen Sie sich die Beispiele an, welche Funktionen Sie benötigen. Die entsprechende Beispielliste finden Sie auf der offiziellen Website von TCPDF: https://tcpdf.org/examples/

2. Rufen Sie TCPDF auf.

verwenden Sie TCPDF;

3. Fügen Sie den Code im offiziellen Beispiel direkt in die Methode ein und führen Sie ihn erfolgreich aus.

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 001');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128));
$pdf->setFooterData(array(0,64,0), array(0,64,128));
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
    require_once(dirname(__FILE__).'/lang/eng.php');
    $pdf->setLanguageArray($l);
}
$pdf->setFontSubsetting(true);
$pdf->SetFont('dejavusans', '', 14, '', true);
$pdf->AddPage();
$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));
$html = <<<EOD
<h1>Welcome to <a href="http://www.tcpdf.org" style="text-decoration:none;background-color:#CC0000;color:black;"> <span style="color:black;">TC</span><span style="color:white;">PDF</span> </a>!</h1>
<i>This is the first example of TCPDF library.</i>
<p>This text is printed using the <i>writeHTMLCell()</i> method but you can also use: <i>Multicell(), writeHTML(), Write(), Cell() and Text()</i>.</p>
<p>Please check the source code documentation and other examples for further information.</p>
<p style="color:#CC0000;">TO IMPROVE AND EXPAND TCPDF I NEED YOUR SUPPORT, PLEASE <a href="http://sourceforge.net/donate/index.php?group_id=128076">MAKE A DONATION!</a></p>
EOD;
$pdf->writeHTMLCell(0, 0, &#39;&#39;, &#39;&#39;, $html, 0, 1, 0, true, &#39;&#39;, true);
$pdf->Output(&#39;example_001.pdf&#39;, &#39;I&#39;);

Hinweise:

1. Da TCPDF Trennzeichen für die Ausgabe von HTML und anderen Inhalten verwendet, muss $html im obigen Code bis zum EOD im gleichen Format vorliegen.

2. ThinkPHP muss den Debugging-Modus deaktivieren, sonst wird die Ausgabe verstümmelt.

Lösung für verstümmelte chinesische TCPD-Zeichen
Die neueste Version von TCPDF unterstützt bereits Chinesisch. Geben Sie einfach die chinesische Kodierung in der Methode zum Generieren von PDF an.

$pdf->SetFont(&#39;stsongstdlight&#39;, &#39;&#39;, 12);

Lösung für das Problem, dass TCPDF keine chinesischen Dateinamen speichern kann

Wenn PHP TCPDF zum Generieren von PDF-Dateien verwendet und der Dateiname chinesisch ist, wird er gefiltert Das Folgende ist TCPDF Lösung für die Unfähigkeit, chinesische Dateinamen zu speichern:

Öffnen Sie die Datei tcpdf.php und suchen Sie die Ausgabefunktion, die sich auf Zeile 7554 bezieht.

1. Kommentieren Sie den folgenden Code, ungefähr in den Zeilen 7565-7568:

if ($dest[0] != &#39;F&#39;) {
    $name = preg_replace(&#39;/[\s]+/&#39;, &#39;_&#39;, $name);
    $name = preg_replace(&#39;/[^a-zA-Z0-9_\.-]/&#39;, &#39;&#39;, $name);
}

2. Suchen Sie nach dem Methodencode und ersetzen Sie den folgenden Code, ungefähr in den Zeilen 7639, 7670, 7693 und 7718 bzw.

header(&#39;Content-Disposition: attachment; filename="&#39;.basename($name).&#39;"&#39;);

wird durch

header(&#39;Content-Disposition: attachment; filename="&#39;.$name.&#39;"&#39;);

ersetzt. Die oben genannten Codes gelten jeweils für den Fall „I“: (PDF drucken), den Fall „D“: (PDF herunterladen) und den Fall „FD“: (speichern). ) dieser Methode zur lokalen Datei)-Anweisung.

Wenn PHP TCPDF zum Generieren von PDF-Dateien verwendet, kann es auf diese Weise als chinesischer Name gespeichert werden.

Verwandte Tutorials: thinkPHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonDas TP-Framework führt Schritte und Lösungen des tcpdf-Plug-ins für verstümmelte chinesische TCPD-Zeichen ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen