TCPDF_TCP ACK

TCPDF_TCP ACK最近在做一个项目报表,用到了使用php来生成pdf文档,采用tcpdf插件,总结一下,欢迎交流。调用tcpdf文件require_once(‘tcpdf.php’);设置时区,否则会导致报错date_default_timezone_set(‘Asia/Shanghai’);实例化tcpdf页面方向(P=肖像,L=景观)、测量(mm)、页面格式$pdf=newTC

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

最近项目中使用报表,需要用到php来生成pdf文件,采用目前较流行的tcpdf插件,评论区有如何解决乱码的答案,如有问题,希望有机会评论交流。

调用tcpdf文件

require_once('tcpdf.php');

设置时区,否则会导致报错

date_default_timezone_set('Asia/Shanghai');

实例化tcpdf

页面方向(P =肖像,L =景观)、测量(mm)、页面格式

$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false); 

设置文档信息

$pdf->SetCreator('Helloweba');
$pdf->SetAuthor('yueguangguang');
$pdf->SetTitle('Welcome to helloweba.com!');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, PHP');

扩展,自定义页眉页脚

设置pdf背景图片

$image_file = K_PATH_IMAGES.'bkground.png';
$this->Image($image_file, 0, 0, 210, 15, '', '', '', false, 300, '', false, false, 0);

设置背景颜色(需要注意,只能设置一个)

$this->Rect(0,0,210,297,'F','',$fill_color = array(255, 255, 255));

设置字体(droidsansfallback该字体为导入字体,支持中文)

$this->SetFont('droidsansfallback', 'B', 13);

设置文本颜色

$this->SetTextColor(171,171,171);

设置表内内容距离边框的距离。分别左、上、右、下。

$this->setCellPaddings(15, 10, 5, 0);
$this->setCellMargins(0, 1, 0, 0);//
$this->Cell(180, 15, '测试', 0, true, 'L', 0, '', 0, true, 'M', 'M');
$this->SetFont('droidsansfallback', 'B', 8);

注意如想在不同位置设置文字,可多次使用setCellPaddings()不会产生冲突。

设置表内内容距离边框的距离。分别左、上、右、下。

$this->setCellPaddings(13, 10, 5, 2);

设置是否打印页眉页脚,即去掉默认横线

$pdf->setPrintHeader(true); //设置打印页眉
$pdf->setPrintFooter(false); //设置打印页脚

设置默认页眉页脚相关参数

$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 061', PDF_HEADER_STRING);
设置页眉页脚字体
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

设置PDF页面边距(margin)

$pdf->SetMargins(1, 15, 1);//左、右、上
$pdf->SetAutoPageBreak(TRUE, 15);//下

设置图片缩放比例

$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

添加一个页面包含结束符

$pdf->AddPage();
$pdf->lastPage();

设置行距

$pdf->Ln(4);

如何嵌套html的三种方式

此方法渲染html边框顶格

$pdf->writeHTML($html, true, false, true, false, '');
原型为 writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='')
第一个参数为html格式的字符串;第三个参数设置是否填充背景色,值为false(不填充)或true(填充);

此方法渲染html会产生一定间距

$pdf->writeHTMLCell(80, '', '', $y, $left_column, 1, 0, 1, true, 'J',  true);
原型:writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=false,  $reseth=true, $align='', $autopadding=true),
参数可对照MultiCell(),分别为宽度,高 度,x坐标,y坐标,内容,是否右边框,与下一个单元格的相对为位置,是否填充背景色,是否重置高度,文本对齐方式,是否自动… 

此方法渲染html会居中效果,注意将$ishtml设置为true

$pdf->MultiCell(0, 5, $html, $border=0, $align='C',$fill=false, $ln=1, $x='', $y='',  $reseth=true, $stretch=0,$ishtml=true,$autopadding=true);

设置获取xy坐标

$pdf->setY()/getY()

设置直线,注意第二个参数和第四个参数保持一致时才为水平直线

$linestyle = array('width' => 0.1, 'cap' => 'butt', 'join' => 'miter', 'dash' => '', 'phase' => 0, 'color' => array(143,195,226));
$pdf->Line(6, 32, 200, 32, $linestyle);

设置左边距、右边距

$pdf->SetLeftMargin(0);
$pdf->SetRightMargin(0);

输出pdf(I为在浏览器上输出,D为下载、F为保存)

$pdf->Output('report_new.pdf', 'I');

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195925.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android usb调试工具,USB调试怎么打开 各版本安卓手机打开USB调试模式方法[通俗易懂]

    android usb调试工具,USB调试怎么打开 各版本安卓手机打开USB调试模式方法[通俗易懂]手机与电脑通常是通过Adb方式连接,所以需要您在设备上打开USB调试模式,不同版本的安卓系统,打开USB调试模式也有所不同,以下我们根据安卓系统版本而不同,介绍下各版本安卓手机打开USB调试模式的方法,小白朋友值得学习一下哦。USB调试怎么打开各版本安卓手机打开USB调试模式方法一、安卓2.1~2.3.7系统打开USB调试模式方法1、点击手机Menu键(菜单键),在弹出的菜单中选择设置(…

    2022年9月13日
    1
  • Matlab画分段函数「建议收藏」

    Matlab画分段函数「建议收藏」确定你需要的分段函数是怎样一个表达式,比如下面我的这个例子。y=x,0    2,4   5-x/2,6   1,x>=8;打开MATLAB软件,粘贴以下代码:clc;clearallx=0:0.01:10;y=x.*(x>=0&x=4&x=6&x=8);plot(x,y,’r’,’li

    2022年4月26日
    62
  • jvm定义的类加载器_类加载器有哪些

    jvm定义的类加载器_类加载器有哪些0.为什么需要自定义类加载器网上的大部分自定义类加载器文章,几乎都是贴一段实现代码,然后分析一两句自定义ClassLoader的原理。但是我觉得首先得把为什么需要自定义加载器这个问题搞清楚,因为如果不明白它的作用的情况下,还要去学习它显然是很让人困惑的。首先介绍自定义类的应用场景:(1)加密:Java代码可以轻易的被反编译,如果你需要把自己的代码进行加密以防止反编译,可以先…

    2022年9月6日
    2
  • lammps教程:薄膜渗透模拟(3)–不同孔隙率对过滤效果的影响

    lammps教程:薄膜渗透模拟(3)–不同孔隙率对过滤效果的影响本文是薄膜渗透过滤的最后一篇文章:不同孔隙率薄膜建模。孔隙或空位缺陷的建模原理比较简单:删除一定数量的原子就可以。lammps自带delete_atoms可以随机删除一定比例的原子,如果对孔隙或空位的形状、尺寸等有特殊需求,需要用编程的方法删除原子。delete_atomsporosity命令可随时产生设定比例的原子,如删除50%的原子:delete_atomsporositymembrane0.5482793membrane为原子组0.5为删除原子的比例482793为随机数种子

    2022年9月3日
    1
  • FastAI 课程学习笔记 lesson 1:宠物图片分类

    FastAI 课程学习笔记 lesson 1:宠物图片分类文章目录代码解析神奇的”%”导入fastAI库下载解压数据集untar_data获取帮助文档help()???doc设置路径get_image_filesImageDataBunchfrom_name_regrep命令检验正则表达式pythonre检验正则表达式代码解析神奇的”%”%reload_extautoreload%autoreload2%matplotlibinli…

    2022年9月8日
    0
  • Android 获取开发版SHA1和发布版SHA1详细介绍「建议收藏」

    Android 获取开发版SHA1和发布版SHA1详细介绍「建议收藏」前言:项目需求接入百度定位,在创建应用时申请AK,需要用到SHA1,在这里把踩过的坑总结下来,并希望可以适当减少开发小伙伴们的头痛。说来就来上干货一、获取开发版SHA1:1、可以使用AndroidStudio提供的命令控制台,毕竟做Android开发几乎都是用AndroidStudio了。也可以使用黑窗口windows+R并键入cmd即可使用2、接着输入命令cdU…

    2022年8月10日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号