<?php
declare (strict_types=1);
namespace App\Http\Controllers;
define ('K_PATH_IMAGES', ''); //文件目录定义
require_once(realpath(dirname(__FILE__) . '/../../../vendor/tecnickcom/tcpdf/tcpdf.php'));
use TCPDF;
use Illuminate\Http\Request;
class IndexController extends Controller
{
//html转pdf
function pdf(Request $request)
{
$stsongstdlight = 'stsongstdlight';//中文字体
global $l;
$l = Array();
// PAGE META DESCRIPTORS --------------------------------------
$l['a_meta_charset'] = 'UTF-8';
$l['a_meta_dir'] = 'ltr';
$l['a_meta_language'] = 'cn';
// TRANSLATIONS --------------------------------------
$l['w_page'] = '页面';
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// 设置文档信息
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('我是作者:山猫');
$pdf->SetTitle('我是标题');
$pdf->SetSubject('我是主题');
$pdf->SetKeywords('我是关键字');
// 是否显示页眉
//$pdf->setPrintHeader(false);
// 是否显示页脚
//$pdf->setPrintFooter(false);
// 默认页眉数据
// 文字,和分割线颜色RGB
// 本地图片
$pdf->SetHeaderData('logo.jpg', 30, '山猫001', "我们是山猫团队\nhttps://www.baidu.com", [0, 0,0], [0, 0,0]);
// 设置页眉和页脚字体array(family, style, size)
$pdf->setHeaderFont(Array($stsongstdlight, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array($stsongstdlight, '', PDF_FONT_SIZE_DATA));
// 设置默认等宽字体
$pdf->SetDefaultMonospacedFont($stsongstdlight);
// 页眉距离顶部的距离
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// 设置是否自动分页 距离底部多少距离时分页
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// 设置图像比例因子
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->setLanguageArray($l);
// 设置字体
$pdf->SetFont($stsongstdlight, '', 10);
$pdf->AddPage(); //首页
// writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='')
// writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=0, $reseth=true, $align='', $autopadding=true)
$html = <<<EOF
<p>111你家娃儿还在熬油点灯卷分数吗?近日发表的一项研究提醒,儿童缺乏睡眠会持续损害大脑健康及认知能力的发展,儿童缺乏睡眠会持续损害大脑健康及认知能力的发展</p>
<p>2222你家娃儿还在熬油点灯卷分数吗?近日发表的一项研究提醒,儿童缺乏睡眠会持续损害大脑健康及认知能力的发展,儿童缺乏睡眠会持续损害大脑健康及认知能力的发展</p>
<p>2222你家娃儿还在熬油点灯卷分数吗?近日发表的一项研究提醒,儿童缺乏睡眠会持续损害大脑健康及认知能力的发展,<a href="https://www.baidu.com"> 点击去百度 </a></p>
<p style="text-align: center"><img style="width: 150px;height: auto;" src="https://www.jyeyw.com/index/img/logo.jpg"/></p>
<p style="text-align: center">
<table style="border: 2px solid #0000ff">
<tr style="border: 2px solid #0000ff">
<th style="border: 2px solid #0000ff">tile</th>
<th style="border: 2px solid #0000ff">Address</th>
</tr>
<tr style="border: 2px solid #0000ff">
<td style="border: 2px solid #0000ff">tile</td>
<td style="border: 2px solid #0000ff">Address</td>
</tr>
</table>
</p>
<div>
<div style="float: left">左右<div>
<div style="float: right;">左右<div>
<div>
<div>
<div style="margin-left: 200px;">左右<div>
<div>
EOF;
$pdf->writeHTML($html);
$html = <<<EOF
<p style="text-align: center"><img style="width: 150px;height: auto;" src="https://www.jyeyw.com/index/img/logo.jpg"/></p>
<p style="text-align: center">
<table style="border: 2px solid #0000ff">
<tr style="border: 2px solid #0000ff">
<th style="border: 2px solid #0000ff">tile</th>
<th style="border: 2px solid #0000ff">Address</th>
</tr>
<tr style="border: 2px solid #0000ff">
<td style="border: 2px solid #0000ff">tile</td>
<td style="border: 2px solid #0000ff">Address</td>
</tr>
</table>
</p>
EOF;
$pdf->AddPage();//分页
$pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 0, true, 'L', true);
$pdf->lastPage();
$pdf->AddPage();//分页
$html = <<<EOF
<p>11你家娃儿还在熬油点灯卷分数吗?近日发表的一项研究提醒,儿童缺乏睡眠会持续损害大脑健康及认知能力的发展,儿童缺乏睡眠会持续损害大脑健康及认知能力的发展</p>
EOF;
//输出html
$pdf->writeHTML($html);
// reset pointer to the last page
$pdf->lastPage();
// reset pointer to the last page
//$pdf->lastPage();
//Output($name='doc.pdf', $dest='I')
//$dest I 发送到浏览器
//$dest D 发送到浏览器,直接下载
//$dest F 保存本地
//$dest E base64
//$pdf->Output('/ee/example_006.pdf', 'F');
$pdf->Output('下载名.pdf', 'I');
}
}
php生成PDF文件
于 2022-08-08 09:39:07 首次发布
该PHP代码实现了一个将HTML内容转换为PDF的控制器。它使用TCPDF库,设置了页面元数据、作者、标题、主题和关键词,并定义了页眉和页脚。HTML内容包括段落、链接、图片和表格,还展示了浮动元素和居中对齐的图像。代码支持自定义字体,可以添加多页并调整页边距和自动分页。
摘要由CSDN通过智能技术生成