TCPDF 第三章 排版

<?php
//引入工具
require_once '../tcpdf/tcpdf.php';

//新建一个PDF文档
//L 横排   P竖排

$orientation='P';
$unit='mm';
$format='A4';
$unicode=true;
$encoding='UTF-8';
$diskcache=false;
$pdfa=false;
$pdf = new TCPDF($orientation, $unit, $format, $unicode, $encoding, $diskcache, $pdfa);

//文档整体的边距  页眉与页脚 在边距里面
$PDF_MARGIN_LEFT = 5;
$PDF_MARGIN_TOP = 5;
$PDF_MARGIN_RIGHT = 5;
$pdf->SetMargins($PDF_MARGIN_LEFT, $PDF_MARGIN_TOP, $PDF_MARGIN_RIGHT);
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);

$pdf->AddPage();

//坐标
$pdf->SetFont('stsongstdlight', '', 5, '', true);
for ($x = 5;$x < 205; $x += 5)
{
    $pdf->Text($x, 0,".".$x);
}
for ($y = 5;$y <= 270; $y += 5)
{
    $pdf->Text(0, $y,$y.".");
}

// //网格线
$pdf->SetFont('stsongstdlight', '', 5, '', true);
for ($x = 5;$x < 205; $x += 5)
{
    for ($y = 5;$y <= 270; $y += 5)
    {
        $pdf->Text($x, $y,".");
    }
}
$yahei = TCPDF_FONTS::addTTFfont(__DIR__.'/font/Microsoft Yahei.ttf', 'TrueTypeUnicode', '', 96);
$pdf->SetFont($yahei, '', 12, '', true);

$pdf->Text(10, 10,"以下cell将会以此内容坐标参考");

$pdf->Ln(10);//与上一个元素的Y坐标的距离(通常来设置那些不能设置 坐标的元素)

$w = 0;//单元格宽度,如果为0 则为100%宽度
$h = 30;//单元格的高度 如果为0 则为一行文本的高度
$txt = '这里有内这里有这里这里有内容这里有2里这里有内内4这里有内容';
$border =1;//0 无边框 1 有边框
$ln = 1;
$align = 'R';//单元格中的内容水平 对齐方式  对齐方式 L:左对齐  R:右对齐   C:居中垂直
$fill = false;
$link = '';
$stretch = 0;//0.如果字体超过单元格宽度,溢出。1.如果内容超过单元格宽度,则会缩小字体宽度,、2.将字体宽度缩放,以至于填满单元格宽度,3, 字体超过单元格宽度将字体重复填写在此行,4.是文本能填充慢一行,两边对齐
$ignore_min_height = false;
$calign = 'T';//单元格与上一个元素(或者坐标设定)的对齐方式 T:顶部对齐对方顶部, B:底部对齐对方底部 C中间对齐对方中间
$valign = 'B';//单元格中的内容垂直对齐方式  对齐方式 T:靠顶部  B:考底部   C:居中垂直
$pdf->Cell($w, $h, $txt, $border, $ln, $align, $fill, $link, $stretch, $ignore_min_height, $calign, $valign);

$pdf->Ln(10);//与上一个元素的Y坐标的距离(通常来设置那些不能设置 坐标的元素)
$pdf->Cell(0, 0, 'TEST CELL STRETCH: scaling', 1, 1, 'C', 0, '', 1);
$pdf->Cell(0, 0, 'TEST CELL STRETCH: scaling', 1, 1, 'C', 0, '', 1);

//直接输入到浏览器
$pdf->Output('demo.pdf', 'I');

二、可以使用html来排版,具体参考 七、使用html控制内容

全部评论

相关推荐

牛客41406533...:回答他在课上学,一辈子待在学校的老教授用三十年前的祖传PPT一字一句的讲解,使用谭浩强红皮书作为教材在devc++里面敲出a+++++a的瞬间爆出114514个编译错误来学这样才显得专业
点赞 评论 收藏
分享
想干测开的tomca...:让我来压力你!!!: 这份简历看着“技术词堆得满”,实则是“虚胖没干货”,槽点一抓一大把: 1. **项目描述是“技术名词报菜名”,没半分自己的实际价值** 不管是IntelliDoc还是人人探店,全是堆Redis、Elasticsearch、RAG这些时髦词,但你到底干了啥?“基于Redis Bitmap管理分片”是你写了核心逻辑还是只调用了API?“QPS提升至1500”是你独立压测优化的,还是团队成果你蹭着写?全程没“我负责XX模块”“解决了XX具体问题”,纯把技术文档里的术语扒下来凑字数,看着像“知道名词但没实际动手”的实习生抄的。 2. **短项目塞满超纲技术点,可信度直接***** IntelliDoc就干了5个月,又是RAG又是大模型流式响应又是RBAC权限,这堆活儿正经团队分工干都得小半年,你一个后端开发5个月能吃透这么多?明显是把能想到的技术全往里面塞,生怕别人知道你实际只做了个文件上传——这种“技术堆砌式造假”,面试官一眼就能看出水分。 3. **技能栏是“模糊词混子集合”,没半点硬核度** “熟悉HashMap底层”“了解JVM内存模型”——“熟悉”是能手写扩容逻辑?“了解”是能排查GC问题?全是模棱两可的词,既没对应项目里的实践,也没体现深度,等于白写;项目里用了Elasticsearch的KNN检索,技能栏里提都没提具体掌握程度,明显是“用过但不懂”的硬凑。 4. **教育背景和自我评价全是“无效信息垃圾”** GPA前10%这么好的牌,只列“Java程序设计”这种基础课,分布式、微服务这些后端核心课提都不提,白瞎了专业优势;自我评价那堆“积极认真、细心负责”,是从招聘网站抄的模板吧?没有任何和项目挂钩的具体事例,比如“解决过XX bug”“优化过XX性能”,纯废话,看完等于没看。 总结:这简历是“技术名词缝合怪+自我感动式凑数”,看着像“背了后端技术栈名词的应届生”,实则没干货、没重点、没可信度——面试官扫30秒就会丢一边,因为连“你能干嘛”都没说清楚。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务