thinkphp tcpdf乱码如何解决

来源:undefined 2025-01-02 02:51:42 1042

thinkphp tcpdf乱码的解决办法:1、下载插件TCPDF;2、通过“class Pdf extends ppcommoncontrollerBase{...}”方式使用TCPDF;3、将字体改为“$pdf->SetFont(cid0cs, , 8)”即可解决乱码问题。

thinkphp6 生成pdf

下载插件TCPDF

composer 安装

1

composer require tecnickcom/tcpdf

登录后复制

官网

1

https://tcpdf.org/examples/

登录后复制

官网中有许多的例子,可根据自身的需求选择

使用TCPDF

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

<?php namespace appdminlogic;

use thinkDb;

use TCPDF;

class Pdf extends ppcommoncontrollerBase

{

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-&gt;SetAuthor(Nicola Asuni);

$pdf-&gt;SetTitle(TCPDF Example 001);

$pdf-&gt;SetSubject(TCPDF Tutorial);

$pdf-&gt;SetKeywords(TCPDF, PDF, example, test, guide);

// set default header data

$pdf-&gt;SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE. 001, PDF_HEADER_STRING, array(0,64,255), array(0,64,128));

$pdf-&gt;setFooterData(array(0,64,0), array(0,64,128));

// set header and footer fonts

$pdf-&gt;setHeaderFont(Array(PDF_FONT_NAME_MAIN, , PDF_FONT_SIZE_MAIN));

$pdf-&gt;setFooterFont(Array(PDF_FONT_NAME_DATA, , PDF_FONT_SIZE_DATA));

// set default monospaced font

$pdf-&gt;SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

// set margins

$pdf-&gt;SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);

$pdf-&gt;SetHeaderMargin(PDF_MARGIN_HEADER);

$pdf-&gt;SetFooterMargin(PDF_MARGIN_FOOTER);

// set auto page breaks

$pdf-&gt;SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

// set image scale factor

$pdf-&gt;setImageScale(PDF_IMAGE_SCALE_RATIO);

// set some language-dependent strings (optional)

if (@file_exists(dirname(__FILE__)./lang/eng.php)) {

require_once(dirname(__FILE__)./lang/eng.php);

$pdf-&gt;setLanguageArray($l);

}

// ---------------------------------------------------------

// set default font subsetting mode

$pdf-&gt;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-&gt;SetFont(dejavusans, , 14, , true);

// Add a page

// This method has several options, check the source code documentation for more information.

$pdf-&gt;AddPage();

// set text shadow effect

$pdf-&gt;setTextShadow(array(enabled=&gt;true, depth_w=&gt;0.2, depth_h=&gt;0.2, color=&gt;array(196,196,196), opacity=&gt;1, blend_mode=&gt;Normal));

// Set some content to print

$html = Welcome to <a> <span>$kid_name</span><span>PDF</span> </a>!

<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>TO IMPROVE AND EXPAND TCPDF I NEED YOUR SUPPORT, PLEASE <a>MAKE A DONATION!</a></p>

EOD;

// Print text using writeHTMLCell()

$pdf-&gt;writeHTMLCell(0, 0, , , $html, 0, 1, 0, true, , true);

// ---------------------------------------------------------

// Close and output PDF document

// This method has several options, check the source code documentation for more information.

$pdf-&gt;Output(example_001.pdf, F);

return  example_001.pdf;

}

}

登录后复制

注意:

因为TCPDF使用定界符的方式输出html等内容,因此上述代码中的$html一直到EOD必须顶格。

中文乱码的问题,将字体改为$pdf->SetFont(cid0cs, , 8)即可。

前端显示

1

<object></object>

登录后复制

以上就是thinkphp tcpdf乱码如何解决的详细内容,更多请关注php中文网其它相关文章!

最新文章