目录

引入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文件相关推荐

  1. pdf文件转换ppt可编辑_创建,转换和编辑PDF文件的免费工具

    PDF可靠且通用,是当今使用最广泛的电子文档格式之一. 但是,有时您想将PDF文件的数据转换为其他格式或编辑其中的信息 . 在这种情况下,您将根据需要寻找PDF编辑器或转换器. 好吧,像所有其他在线工 ...

  2. 【安卓学习之第三方库】 ZlwAudioRecorder学习:内部流程(含aar文件生成)

    █ [安卓学习之第三方库] ZlwAudioRecorder学习:内部流程(含aar文件生成) █ 系列文章目录 提示:这里是收集了安卓学习之常见问题的相关文章 [安卓学习之MP3] MP3读取格式 ...

  3. 如何编辑PDF文件?编辑PDF的方法有哪些?

    PDF文件是一种广泛使用的文档格式,通常用于共享和阅读文档,如电子书.报告.合同等.但是,有时候您可能需要编辑PDF文件.编辑PDF文件可能听起来很困难,但是有许多方法可以轻松地编辑PDF文件.本文将 ...

  4. matlab 函数pdf怎么用_PDF编辑器怎么用?PDF编辑器如何编辑PDF文档?

    今天,一位网友问了小峰一个问题,说是"PDF编辑器怎么用?PDF编辑器如何编辑PDF文档",说实在的,虽说小峰确实会使用PDF编辑器,但是这位网友的问题却依然让小峰哑口无言,不知道 ...

  5. dll文件怎么编辑_PDF文件怎么编辑?通过这几款软件,让你轻松编辑PDF

    今天小编为大家带来的亲测盘点 是--PDF编辑器. 话不多说. 让我们来看看这个五款PDF编辑器吧!轻松解决问题! 第一款 Movavi PDF Editor Movavi PDF Editor 官方 ...

  6. linux创建、删除、编辑、文件,目录,权限等

    Linux常用命令大全(比较详细) https://blog.csdn.net/tianzongnihao/article/details/80539264 一.基础命令 find 基本语法参数如下: ...

  7. php现在编辑pdf,用PHP编辑PDF?

    用PHP编辑PDF? 有谁知道在PHP中编辑PDF的好方法? 优选地是开源/零许可证成本方法.:) 我正在考虑打开PDF文件,替换PDF中的文本然后写出PDF的修改版本? 我过去使用FPDF以编程方式 ...

  8. dll文件怎么编辑(dll文件怎么使用)

    dll文件怎么编辑 添加到项目里 做好了再编译DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源.Windows提供的DLL文件中包含了允许基于Window ...

  9. PDF无密码怎么编辑pdf

    PDF文件设置了编辑限制,导致我们没办法编辑PDF文件,想要编辑PDF文件,需要解除限制编辑才行,如果有限制密码,我们可以打开PDF文件之后找到[保护]-[限制编辑],输入密码就可以撤销了. 如果没有 ...

最新文章

  1. 博客搭建攻略(一):平台选择
  2. /usr/bin被删除的操作
  3. eureka多了一个莫名其妙的服务_SpringCloud 服务注册与发现组件 Eureka
  4. dubbo-admin构建报错
  5. 端口以及服务常用cmd
  6. exadata磁盘组无法mount恢复---惜分飞 1
  7. linux切换默认编辑器
  8. 学习笔记 - 002
  9. SharePoint 2007有性能问题? 先试试这篇.
  10. dis 密集光流_密集光流估计的自监督注意力机制
  11. 从底层谈webgis原理设计与实现(二)探究本质,WebGIS前端地图显示之地图比例尺换算原理...
  12. Mangos某人经验
  13. 微软行星云计算Planetary Computer——previsa南美洲亚马逊雨林森林损坏系统AI智能评估
  14. [宅]最近3个月的宅生活
  15. Android6.0以上系统搜索不到 蓝牙BLE 设备问题
  16. java团队管理_团队管理的“五大核心要素”
  17. 实施工程师面常见问题
  18. Python中%是什么意思?如何使用?
  19. POI导出excel并设置单元格样式和单元格内容中文自适应
  20. 聊一聊上拉电阻、下拉电阻、使用场景及阻值选择

热门文章

  1. 《Metasploit 魔鬼训练营》04 Web 应用渗透测试
  2. 因提供18禁动漫,毒害未成年人,国内最大动漫网站被重罚
  3. Captura 录屏软件的安装和使用2021-02-19
  4. 一年12个月最适合旅游的地方~
  5. 「永恒之塔私服」- 区块链基础设施之跨链通信协议层-Aionsf详解
  6. 华为培训视频1-5G覆盖关键指标及优化目标
  7. Southern and Volga Russia Qualifier 2019-2020(A Yellow Cards(贪心))
  8. Apache Log4j 远程代码执行漏洞直接让安全圈过年~
  9. 详细教你如何部署ICE服务(三)---IceBox框架 Ice Registry服务注册中心的联合使用
  10. 科技爱好者周刊(第 185 期):美国宪法拍卖,一个区块链案例