在说之前,先说明一下,FPDI 插件,不能操作被 pdf 软件编辑过的 pdf 文件。
在我们写项目的时候,经常需要对PDF文件进行操作。例如:合并多个PDF文件,取PDF特定页数以及合并。
PHP 有一个专门对PDF进行操作的插件,
SETASIGN
,官方文档为:
https://www.setasign.com/products/fpdi/demos/simple-demo/
首先,我们要先下载,该插件支持composer下载,具体的操作步骤,请看文档下载:
https://packagist.org/packages/setasign/fpdi
下面实现这些功能,上代码:
实现选取多个PDF文件的特定页数,进行合并
use
setasign
\
Fpdi
\
Tcpdf
\
Fpdi
;
function
selectionFirstPageToNewPdf
(
$pdf_road_datas
)
{
$pdf
=
new
Fpdi
(
)
;
for
(
$i
=
0
;
$i
<
count
(
$pdf_road_datas
)
;
$i
++
)
{
$pdf
-
>
setSourceFile
(
$pdf_road_datas
[
$i
]
)
;
$tpl
=
$pdf
-
>
importPage
(
1
)
;
$pdf
-
>
addPage
(
)
;
$pdf
-
>
useTemplate
(
$tpl
)
;
* 默认是I:在浏览器中打开,D:下载,F:在服务器生成pdf
* S:只返回pdf的字符串,个人感觉无实在意义
$pdf
-
>
output
(
"merge-articals.pdf"
,
"D"
)
;
$pdf
-
>
closeParsers
(
)
;
return
;
实现选取多个PDF文件进行合并:
use
setasign
\
Fpdi
\
Tcpdf
\
Fpdi
;
function
selectionSplicingToNewPdf
(
$pdf_road_datas
)
{
$pdf
=
new
Fpdi
(
)
;
for
(
$i
=
0
;
$i
<
count
(
$pdf_road_datas
)
;
$i
++
)
{
$page_count
=
$pdf
-
>
setSourceFile
(
$pdf_road_datas
[
$i
]
)
;
for
(
$pageNo
=
1
;
$pageNo
<=
$page_count
;
$pageNo
++
)
{
$templateId
=
$pdf
-
>
importPage
(
$pageNo
)
;
$size
=
$pdf
-
>
getTemplateSize
(
$templateId
)
;
$pdf
-
>
AddPage
(
$size
[
'orientation'
]
,
$size
)
;
$pdf
-
>
useTemplate
(
$templateId
)
;
$pdf
-
>
SetFont
(
'Helvetica'
)
;
$pdf
-
>
SetXY
(
5
,
5
)
;
$pdf
-
>
output
(
"merge-pdf.pdf"
,
"D"
)
;
$pdf
-
>
closeParsers
(
)
;
return
;
SETASIGN
,这个PHP插件还有很多功能,具体的后续学习,可以看看官方文档。
'aliases' => [
. . .
'
PDF
Merger' => Webklex \
PDF
Merger \ Facades \
PDF
MergerFacade ::class
基本用法示例:
use Webklex \
PDF
Merger \ Facades \
PDF
MergerFacade as
PDF
Merger ;
$ oMer
我知道在这方面有很多线索,我已经尝试了所有人,并且无法使其中一个工作 .在SO线程中:@Sygmoral的这个片段听起来好像应该有效(我添加了Output()行,路径/
文件
是我的):require_once('tc
pdf
/tc
pdf
.
php
');require_once('
fpdi
/
fpdi
.
php
'); // the addon//
FPDI
extends the TC
PDF
class, s...
前几天客户提出一个需求,就是在前台页面搜索文章时,若搜索词在文章附件的
pdf
文件
中有出现的话就要将该文章作为搜索结果。我的思路是后台发布文章时循环检测每一个附件的格式,若附件格式为
pdf
的话就将里面的文字读
取
出来 追加到一个$string变量里,然后将$string的作为一个file_text字段的信息保存到数据库后面做搜索的时候使用。
我参考的一个回答地址是:https://baijiahao......
实际工作中,我们要使用
PHP
动态的创建
PDF
文档,目前有许多开源的
PHP
创建
PDF
的类库,今天我给大家来介绍一款优秀的
PDF
库,它就是TC
PDF
,TC
PDF
是一个用于快速生成
PDF
文件
的
PHP
5函数包。TC
PDF
基于F
PDF
进行扩展和改进,增强了实用功能。特性TC
PDF
具有以下特性:1、支持页面页脚;2、支持HTML标签代码;3、支持jpg/png/gif/svg图形图像;4、支持表格;5、支持中...
PHP
使用tc
pdf
类生成
PDF
文件
龙行
PHP
2019-5-644420评论使用pctdf生成的
pdf
文件
可以插入图片、HTML、链接、表格、柱状图折线图等
PHP
动态生成
PDF
的功能。require_once './tc
pdf
/tc
pdf
.
php
';//实例化$content = '我是一个
pdf
'; //你要生成的
PDF
内容$
pdf
= new TC
PDF
('P...
下载后,解压,然后把它放进去扩展目录中\vendor\
set
a
sign
在
fpdi
文件
中引入对应
PDF
_Chinese
文件
,打开/jyshop/vendor/
set
a
sign
/
fpdi
/src/F
pdf
Tpl.
php
更改代码如下...
第一个:TC
PDF
这个TC
PDF
上网有直接下载的地址,我用的是tp3.2框架,TC
PDF
给我手写了一个
pdf
出来很棒!!
第二个:
FPDI
,下面是
FPDI
合并
pdf
的代码
namespace Qwadmin\Controller;
//导入TC
PDF
类库
use TC
PDF
;
require_once('tc
pdf
/config...
本文实例讲述了think
php
框架整合tc
pdf
插件操作。分享给大家供大家参考,具体如下:网上查了些关于tc
pdf
使用教程,整合到tp的话,会有些小问题,由于基础还不是很扎实,花了点时间终于整合ok了。下面介绍步骤:环境:tp版本:tp3.2.2tc
pdf
:tc
pdf
_6_2_3步骤:1. 将tc
pdf
_6_2_3.zip解压在web root目录下面,把examples
文件
夹下面的tc
pdf
_...
*
PDF
文件
加水印
* composer命令安装:composer require
set
a
sign
/f
pdf
* composer命令安装:composer require
set
a
sign
/
fpdi
public function add_water($type = 1){
$
pdf
= new
Fpdi
();
$file = 'Upload/all_to_path/report_file/FA065307C8FF0236FC2002DAA098D439.
pdf
'
4 * @param filePath
5 * @return Map<String, List<Map<String, String>>>
6 * @author 龙谷情
7 ...