【第三方库】PHP实现创建PDF文件和编辑PDF文件
目录
引入Setasign/fpdf、Setasign/fpdi
解决写入中文时乱码问题
1.下载并放置中文语言包(他人封装):https://github.com/DCgithub21/cd_FPDF
2.编写并运行生成字体文件的程序文件(addFont.php)
中文字体举例(其他字体同样操作)
3.修改部分文件内容
实现功能-创建PDF文件
实现功能-编辑PDF文件
感谢阅读,欢迎讨论(本文仅记录项目集成的功能)
引入Setasign/fpdf、Setasign/fpdi
composer require setasign/fpdf ^1.8
composer require setasign/fpdi ^2.3
fpdi官网:FPDI free PDF document importer ▷ setasign.com
fpdf官网:FPDF
fpdf中文使用手册
解决写入中文时乱码问题
1.下载并放置中文语言包(他人封装):GitHub - DCgithub21/cd_FPDF: 使用FPDF输出中文
ttf2pt1.zip:字体转换工具程序
解压文件夹并修改名称:fpdf_chinese;
将文件夹放置到vendor/setasign目录下,与setasign/fpdf、setasign/fpdi同等级 ;
2.编写并运行生成字体文件的程序文件(addFont.php)
<?php
// 引入fPdf中文语言包
require '../vendor/setasign/fpdf/makefont/makefont.php';
// 设置中文字体文件的路径
$fontFilePath = './simhei.ttf';
// 执行方法,转换字体文件
MakeFont($fontFilePath);
# 执行脚本文件
php addFont.php simhei.ttf
中文字体举例(其他字体同样操作)
引入中文字体:微软雅黑、下载中文字体:微软雅黑
下载地址:http://m.diyiziti.com/Download/537/
3.修改部分文件内容
vendor/setasign/fpdi/src/FpdfTpl.php
vendor/setasign/fpdf_chinese/chinese.php
vendor/setasign/fpdf_chinese/fpdf.php
实现功能-创建PDF文件
class Setasign extends Pdf
{/* todo 边框的参数值 */const Border = 1; // todo 设置边框const NoBorder = 0; // todo 设置无边框const BorderL = 'L'; // todo 设置左边边框const BorderR = 'R'; // todo 设置右边边框const BorderT = 'T'; // todo 设置顶部边框const BorderB = 'B'; // todo 设置底部边框/* todo 文字的对齐方向 */const AlignJ = 'J'; // todo 自动调整const AlignL = 'L'; // todo 左边对齐const AlignC = 'C'; // todo 居中对齐const AlignR = 'R'; // todo 右边对齐/* todo 内容的换行方向 */const LnRight = 0; // todo 向右移动const LnNextStart = 1; // todo 向下一行开始const LnDown = 2; // todo 向下面移动/* todo 背景是否填满 */const FillBgTransparent = 0; // todo 透明背景const FillBg = 1; // todo 填满背景/* 创建pdf文件 */public static function createPdf(){// 引入中文的fpdf库require root_path('vendor\\setasign\\fpdf_chinese') . 'chinese.php';$pdf = new \PDF_Chinese();$pdf->SetAutoPageBreak(true);$pdf->AddPage();$pdf->AddGBFont('simhei',iconv("UTF-8","gbk",'黑体'));$pdf->SetFont('simhei');$width = $pdf->GetPageWidth(); // 页面的宽度$height = $pdf->GetPageHeight(); // 页面的高度$pdf->SetTitle(iconv("UTF-8", "gbk", "test-pdf"));$str = "自动换行,自动换行,自动换行,自动换行,自动换行,自动换行自动换行,自动换行,自动换行,自动换行,自动换行,自动换行";$pdf->MultiCell($width - 20, 8, iconv("utf-8", "gbk", $str));for ($i = 1;$i < 100;$i++) {$str = "这是第{$i}行的文字";$pdf->MultiCell($width - 20, 8, iconv("utf-8", "gbk", $str), null, Setasign::AlignC);}$pdf->Output(root_path('app\\controller').'/result.pdf',"F");}
}
实现功能-编辑PDF文件
<?php
namespace Pdf;use setasign\Fpdi\Fpdi;
class Setasign extends Pdf
{/* todo 边框的参数值 */const Border = 1; // todo 设置边框const NoBorder = 0; // todo 设置无边框const BorderL = 'L'; // todo 设置左边边框const BorderR = 'R'; // todo 设置右边边框const BorderT = 'T'; // todo 设置顶部边框const BorderB = 'B'; // todo 设置底部边框/* todo 文字的对齐方向 */const AlignJ = 'J'; // todo 自动调整const AlignL = 'L'; // todo 左边对齐const AlignC = 'C'; // todo 居中对齐const AlignR = 'R'; // todo 右边对齐/* todo 内容的换行方向 */const LnRight = 0; // todo 向右移动const LnNextStart = 1; // todo 向下一行开始const LnDown = 2; // todo 向下面移动/* todo 背景是否填满 */const FillBgTransparent = 0; // todo 透明背景const FillBg = 1; // todo 填满背景public static function editPdf(){$pdf = new Fpdi();// 获取pdf的页数$pageCount = $pdf->setSourceFile(root_path('app\\controller').'/result.pdf');// 设置全局字体、字体大小、字体颜色、每一个都需要单独字体则再设置覆盖$pdf->AddGBFont('mryh', iconv("utf-8", "gbk", "微软雅黑"));$pdf->SetFont("mryh", '', 20);$pdf->SetTextColor(0,0,0);$width = $pdf->GetPageWidth(); // 页面的宽度// 加载第一页$pdf->AddPage();$tpl = $pdf->importPage(1);$pdf->useTemplate($tpl, 0, 0);$pdf->SetXY(10, 170);$str = "第一页设置的内容";$pdf->MultiCell($width - 20, 8,iconv("utf-8", "gbk", $str),null, Setasign::AlignC);// 加载第二页$pdf->AddPage();$tpl = $pdf->importPage(2);$pdf->useTemplate($tpl, 0, 0, null, null, true);$str = "第二页设置的内容";$pdf->SetXY(40, 170);$pdf->Write(10, iconv("utf-8", "gbk", $str));// 输出文件$pdf->Output(root_path('app\\controller').'/result1.pdf',"F");}
}
参考用法的博客链接
PHP FPDF::SetFont方法代码示例 - 纯净天空
感谢阅读,欢迎讨论(本文仅记录项目集成的功能)
【第三方库】PHP实现创建PDF文件和编辑PDF文件相关推荐
- pdf文件转换ppt可编辑_创建,转换和编辑PDF文件的免费工具
PDF可靠且通用,是当今使用最广泛的电子文档格式之一. 但是,有时您想将PDF文件的数据转换为其他格式或编辑其中的信息 . 在这种情况下,您将根据需要寻找PDF编辑器或转换器. 好吧,像所有其他在线工 ...
- 【安卓学习之第三方库】 ZlwAudioRecorder学习:内部流程(含aar文件生成)
█ [安卓学习之第三方库] ZlwAudioRecorder学习:内部流程(含aar文件生成) █ 系列文章目录 提示:这里是收集了安卓学习之常见问题的相关文章 [安卓学习之MP3] MP3读取格式 ...
- 如何编辑PDF文件?编辑PDF的方法有哪些?
PDF文件是一种广泛使用的文档格式,通常用于共享和阅读文档,如电子书.报告.合同等.但是,有时候您可能需要编辑PDF文件.编辑PDF文件可能听起来很困难,但是有许多方法可以轻松地编辑PDF文件.本文将 ...
- matlab 函数pdf怎么用_PDF编辑器怎么用?PDF编辑器如何编辑PDF文档?
今天,一位网友问了小峰一个问题,说是"PDF编辑器怎么用?PDF编辑器如何编辑PDF文档",说实在的,虽说小峰确实会使用PDF编辑器,但是这位网友的问题却依然让小峰哑口无言,不知道 ...
- dll文件怎么编辑_PDF文件怎么编辑?通过这几款软件,让你轻松编辑PDF
今天小编为大家带来的亲测盘点 是--PDF编辑器. 话不多说. 让我们来看看这个五款PDF编辑器吧!轻松解决问题! 第一款 Movavi PDF Editor Movavi PDF Editor 官方 ...
- linux创建、删除、编辑、文件,目录,权限等
Linux常用命令大全(比较详细) https://blog.csdn.net/tianzongnihao/article/details/80539264 一.基础命令 find 基本语法参数如下: ...
- php现在编辑pdf,用PHP编辑PDF?
用PHP编辑PDF? 有谁知道在PHP中编辑PDF的好方法? 优选地是开源/零许可证成本方法.:) 我正在考虑打开PDF文件,替换PDF中的文本然后写出PDF的修改版本? 我过去使用FPDF以编程方式 ...
- dll文件怎么编辑(dll文件怎么使用)
dll文件怎么编辑 添加到项目里 做好了再编译DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源.Windows提供的DLL文件中包含了允许基于Window ...
- PDF无密码怎么编辑pdf
PDF文件设置了编辑限制,导致我们没办法编辑PDF文件,想要编辑PDF文件,需要解除限制编辑才行,如果有限制密码,我们可以打开PDF文件之后找到[保护]-[限制编辑],输入密码就可以撤销了. 如果没有 ...
最新文章
- 博客搭建攻略(一):平台选择
- /usr/bin被删除的操作
- eureka多了一个莫名其妙的服务_SpringCloud 服务注册与发现组件 Eureka
- dubbo-admin构建报错
- 端口以及服务常用cmd
- exadata磁盘组无法mount恢复---惜分飞 1
- linux切换默认编辑器
- 学习笔记 - 002
- SharePoint 2007有性能问题? 先试试这篇.
- dis 密集光流_密集光流估计的自监督注意力机制
- 从底层谈webgis原理设计与实现(二)探究本质,WebGIS前端地图显示之地图比例尺换算原理...
- Mangos某人经验
- 微软行星云计算Planetary Computer——previsa南美洲亚马逊雨林森林损坏系统AI智能评估
- [宅]最近3个月的宅生活
- Android6.0以上系统搜索不到 蓝牙BLE 设备问题
- java团队管理_团队管理的“五大核心要素”
- 实施工程师面常见问题
- Python中%是什么意思?如何使用?
- POI导出excel并设置单元格样式和单元格内容中文自适应
- 聊一聊上拉电阻、下拉电阻、使用场景及阻值选择
热门文章
- 《Metasploit 魔鬼训练营》04 Web 应用渗透测试
- 因提供18禁动漫,毒害未成年人,国内最大动漫网站被重罚
- Captura 录屏软件的安装和使用2021-02-19
- 一年12个月最适合旅游的地方~
- 「永恒之塔私服」- 区块链基础设施之跨链通信协议层-Aionsf详解
- 华为培训视频1-5G覆盖关键指标及优化目标
- Southern and Volga Russia Qualifier 2019-2020(A	 Yellow Cards(贪心))
- Apache Log4j 远程代码执行漏洞直接让安全圈过年~
- 详细教你如何部署ICE服务(三)---IceBox框架 Ice Registry服务注册中心的联合使用
- 科技爱好者周刊(第 185 期):美国宪法拍卖,一个区块链案例