Heim  >  Artikel  >  PHP-Framework  >  Was tun, wenn thinkphp tcpdf verstümmelt ist?

Was tun, wenn thinkphp tcpdf verstümmelt ist?

藏色散人
藏色散人Original
2022-12-08 10:29:561595Durchsuche

Thinkphp tcpdf verstümmelte Lösung: 1. Laden Sie das Plug-in TCPDF herunter 2. Verwenden Sie TCPDF über „class Pdf erweitert appcommoncontrollerBase{...}“ 3. Ändern Sie die Schriftart in „$pdf->SetFont(‘cid0cs‘“ , '', 8)“ kann das Problem verstümmelter Zeichen lösen.

Was tun, wenn thinkphp tcpdf verstümmelt ist?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, ThinkPHP Version 6, Dell G3-Computer.

Was soll ich tun, wenn thinkphp tcpdf verstümmelt ist?

thinkphp6 generiert PDF

Laden Sie das Plug-in TCPDF

composer herunter und installieren Sie es

composer require tecnickcom/tcpdf

Offizielle Website

https://tcpdf.org/examples/

Auf der offiziellen Website gibt es viele Beispiele, die Sie nach Ihren eigenen Bedürfnissen auswählen können

Verwenden Sie TCPDF

<?php
namespace app\admin\logic;
use think\Db;
use TCPDF;
class Pdf extends \app\common\controller\Base
{
       public static function conrtact($data)
    {
        $sno = $data[&#39;sno&#39;];
        $kid_name = $data[&#39;c_name&#39;];
        $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, &#39;UTF-8&#39;, false);
        $pdf->SetCreator(PDF_CREATOR);
        $pdf->SetAuthor(&#39;Nicola Asuni&#39;);
        $pdf->SetTitle(&#39;TCPDF Example 001&#39;);
        $pdf->SetSubject(&#39;TCPDF Tutorial&#39;);
        $pdf->SetKeywords(&#39;TCPDF, PDF, example, test, guide&#39;);
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.&#39; 001&#39;, PDF_HEADER_STRING, array(0,64,255), array(0,64,128));
$pdf->setFooterData(array(0,64,0), array(0,64,128));
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, &#39;&#39;, PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, &#39;&#39;, PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).&#39;/lang/eng.php&#39;)) {
    require_once(dirname(__FILE__).&#39;/lang/eng.php&#39;);
    $pdf->setLanguageArray($l);
}
// ---------------------------------------------------------
// set default font subsetting mode
$pdf->setFontSubsetting(true);
// Set font
// dejavusans is a UTF-8 Unicode font, if you only need to
// print standard ASCII chars, you can use core fonts like
// helvetica or times to reduce file size.
$pdf->SetFont(&#39;dejavusans&#39;, &#39;&#39;, 14, &#39;&#39;, true);
// Add a page
// This method has several options, check the source code documentation for more information.
$pdf->AddPage();
// set text shadow effect
$pdf->setTextShadow(array(&#39;enabled&#39;=>true, &#39;depth_w&#39;=>0.2, &#39;depth_h&#39;=>0.2, &#39;color&#39;=>array(196,196,196), &#39;opacity&#39;=>1, &#39;blend_mode&#39;=>&#39;Normal&#39;));
// Set some content to print
$html = <<<EOD
<h1>Welcome to <a href="http://www.tcpdf.org" style="text-decoration:none;background-color:#CC0000;color:black;"> <span style="color:black;">$kid_name</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;
      // Print text using writeHTMLCell()
      $pdf->writeHTMLCell(0, 0, &#39;&#39;, &#39;&#39;, $html, 0, 1, 0, true, &#39;&#39;, true);
      // ---------------------------------------------------------
      // Close and output PDF document
      // This method has several options, check the source code documentation for more information.
      $pdf->Output(&#39;example_001.pdf&#39;, &#39;F&#39;);
      return  &#39;example_001.pdf&#39;;
    }
}

Hinweis:

  • 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.

  • Um das Problem verstümmelter chinesischer Schriftzeichen zu lösen, ändern Sie einfach die Schriftart in $pdf->SetFont('cid0cs', '', 8).

Front-End-Anzeige

 <object :data="example_001.pdf" type="application/pdf" style="width:100%;height:1200px;"></object>

Empfohlenes Lernen: „thinkPHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas tun, wenn thinkphp tcpdf verstümmelt ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn