必要的步骤

1.导入require_once "tcpdf/tcpdf.php"; 工具源码在demo中

2.$pdf = new TCPDF("P", "mm", "A4", true, 'UTF-8', false);//实例化一个pdf对象 mm表示坐标的单位,'A4'表示纸张大小

3.定义一个字体 $yahei = TCPDF_FONTS::addTTFfont('fonts/Microsoft Yahei.ttf', 'TrueTypeUnicode', '', 96);//定义一个字体 字体文件存在项目fonts中

4.操作$pdf对象

(1)新增一页  $pdf->AddPage();

(2)添加内容

  文本:$pdf->Text($x, $y, "土豆刚");//(x坐标,y坐标,显示内容)

  图片:$pdf->Image("log.png", $x, $y);//图片路径,x坐标,y坐标

  条形码:$pdf->write1DBarcode(1234, 'C128', $x, $y, '', '', '','', 'N');//文本,‘c128’,x坐标,y坐标,宽度,高度,‘’,样式数组,‘’

5.定义一个pdf文档路径,将$pdf对象的内容与属性填写上去。

$fn = "x.pdf";//定义文档
$pdfcontent = $pdf->Output($fn, "S");//将内容与属性放进输出流
$fh = fopen($fn, "w");//打开输出流
fwrite($fh, $pdfcontent);//填写内容
fclose($fh);//关闭输出流

此时一个pdf创建完成。

demo源码 http://pan.baidu.com/s/1pL31nqb

技巧总结:

1.首先说一下,pdf文档默认的坐标系原点是 左上角,向下是Y轴的正级,向右是x轴的正极。如果你想直观的看到你可以这样:

    $pdf->SetFont($yahei, 'B', 5, '', true);
    for($x = 0;$x < 200;$x=$x+5)
    {
         $pdf->Text($x, 0, $x."-");
        
    }
    
    for($y = 0;$y < 260;$y=$y+5)
    {
        $pdf->Text(0, $y, $y);
    
    }

显示结果:

 


当!当!当!当!这样就直观了,然后需要把元素放到什么位置就那啥了撒。

2.然后难免你会想旋转一下 文字、图片什么滴。

这里很奇怪,我以为是就单纯的旋转指定的元素,结果呢,一旋转整个坐标系都旋转了。Rorate方法里面(“旋转角度”,‘X’,‘Y’)这里的XY应该是旋转之后的坐标系原点在原坐标系中的坐标,但是似乎不是很准确,感觉单位变了一样。

 

    $pdf->StartTransform();
    $pdf->Rotate(-30,0,60);//表示整个坐标系以原来的坐标0,60坐标(感觉又不是。。)顺时针旋转  在$pdf->StartTransform()与$pdf->StopTransform()之间就使用旋转后的坐标
    
    for($x = 0;$x < 200;$x=$x+5)
    {
        $pdf->Text($x, 0, $x.'-');
    
    }
    
    for($y = 0;$y < 260;$y=$y+5)
    {
        $pdf->Text(0, $y, $y);
    
    }
  $pdf->StopTransform();

显示结果:

 

然后具体举几个例子:

$pdf->write1DBarcode("哎木土豆刚", 'C128', 10, 10, '', '', '',array("text"=>true,"font"=>$yahei,"fontsize"=>10), 'N');

显示结果:

旋转:

    //旋转文字(应该叫旋转坐标系更准确)
    $pdf->StartTransform();
    $pdf->Rotate(-30,0,60);//表示整个坐标系以原来的坐标0,60坐标(感觉又不是。。)顺时针旋转  在$pdf->StartTransform()与$pdf->StopTransform()之间就使用旋转后的坐标
    
    for($x = 0;$x < 200;$x=$x+5)
    {
        $pdf->Text($x, 0, $x.'-');
    
    }
    
    for($y = 0;$y < 260;$y=$y+5)
    {
        $pdf->Text(0, $y, $y);
    
    }
    
    $pdf->write1DBarcode("旋转土豆刚", 'C128', 10, 10, '', '', '',array("text"=>true,"font"=>$yahei,"fontsize"=>10), 'N');

    $pdf->StopTransform();

<?php 
    
    require_once "tcpdf/tcpdf.php";
    $pdf = new TCPDF("P", "mm", "A4", true, 'UTF-8', false);
    $pdf->SetCreator("potatog");
    $pdf->SetAuthor('potatog');
    $pdf->SetTitle("potatog");
    $pdf->SetSubject("potatog");
    
    $pdf->setPrintHeader(false);
    $pdf->setPrintFooter(false);
    $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
    $pdf->setFontSubsetting(true);
    
    $yahei = TCPDF_FONTS::addTTFfont('fonts/Microsoft Yahei.ttf', 'TrueTypeUnicode', '', 96);
    
    $pdf->AddPage();
    
   
    $pdf->SetFont($yahei, 'B', 5, '', true);
    for($x = 0;$x < 200;$x=$x+5)
    {
         $pdf->Text($x, 0, $x."-");
        
    }
    
    for($y = 0;$y < 260;$y=$y+5)
    {
        $pdf->Text(0, $y, $y);
    
    }
    
//     $pdf->write1DBarcode("哎木土豆刚", 'C128', 10, 10, '', '', '',array("text"=>true,"font"=>$yahei,"fontsize"=>10), 'N');
    
    //旋转文字(应该叫旋转坐标系更准确)
    $pdf->StartTransform();
    $pdf->Rotate(-30,0,60);//表示整个坐标系以原来的坐标0,60坐标(感觉又不是。。)顺时针旋转  在$pdf->StartTransform()与$pdf->StopTransform()之间就使用旋转后的坐标
    
    for($x = 0;$x < 200;$x=$x+5)
    {
        $pdf->Text($x, 0, $x.'-');
    
    }
    
    for($y = 0;$y < 260;$y=$y+5)
    {
        $pdf->Text(0, $y, $y);
    
    }
    
    $pdf->write1DBarcode("旋转土豆刚", 'C128', 10, 10, '', '', '',array("text"=>true,"font"=>$yahei,"fontsize"=>10), 'N');

    $pdf->StopTransform();
    
    
//     $pdf->Image("log.png", $x+5, $y+50);
    
//     $pdf->write1DBarcode(1234, 'C39', $x, $y+20, '', '', '',array("text"=>true,"label"=>"1234","font"=>$yahei,"fontsize"=>10), 'N');//这个C39用浏览器扫描不出来  C128才可以
//     $pdf->write1DBarcode(1234, 'C128', $x, $y+20, '', '', '',array("text"=>true,"label"=>"1234","font"=>$yahei,"fontsize"=>5,'border'=>true), 'N');
//     $pdf->write1DBarcode(1234, 'C128', $x+50, $y+20, '', '', '',array("text"=>true,"font"=>$yahei,'stretchtext'=>0,"fontsize"=>5), 'N');
    
//     $pdf->write1DBarcode(12345, 'C128', '', '', '80', '30', '',array("text"=>true,"font"=>$yahei,"fontsize"=>10,'border'=>true,'stretchtext'=>0,'stretch'=>'x'), 'N');
    
    
    
    $fn = "x.pdf";
    $pdfcontent = $pdf->Output($fn, "S");
    $fh = fopen($fn, "w");
    fwrite($fh, $pdfcontent);
    fclose($fh);
    echo "<a href='".$fn."'>点我</a>"
?>
修改后的index.php

 

第一次写发现自己还不是很会表达,干脆源码给出来,直接用。

而且我也不是很懂,再接再厉。

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!