php如何给pdf加上文字水印和图片水印
2025-07-04 09:44
PHP
SQL Server
Oracle
MySQL
PostgreSQL
NoSQL
大数据
其他数据库
Windows
Windows Server
Linux
macOS
嵌入式
APACHE
NGINX
redis
Docker
git
互联网
tomcat
Html/Css
JavaScript
jQuery
HTML5
Angular
React
Vue
小程序
架构设计
面向对象
设计模式
领域驱动设计
Android开发
iOS开发
Flutter
鸿蒙
其他手机开发
敏捷开发
项目与团队管理
软件工程其他
.NET
Java
Python
Go
PHP
C++
Ruby
Swift
C语言
Erlang
Delphi
Scala
R语言
Verilog
Dart
Rust
其他语言
asp
nodejs
读书区
翻译区
求职面试
计算机图形学
软件测试
菜谱
SEO技术
摄影
生活技巧
6
0
0
0
标题录入
封面图
在 PHP 中给 PDF 添加文字水印和图片水印,通常需要使用一些第三方库来处理。常见的有: - **FPDI**(用于读取 PDF 文件) - **TCPDF** 或 **FPDF**(用于生成 PDF 内容) - **Zend_Pdf**(来自 Zend Framework,但已不再维护) - **mPDF**(支持 HTML 转 PDF,也支持水印) 不过最常用、功能最强的是 **FPDI + TCPDF** 组合。 --- ## ✅ 使用 FPDI + TCPDF 添加水印 ### 1. 安装依赖(通过 Composer) ```bash composer require setasign/fpdi ``` > 注意:FPDI 需要 `setasign/fpdi` 和 `setasign/fpdi-tcpdf` 一起使用。 --- ### 2. 示例代码:添加文字水印和图片水印 ```php <?php require_once 'vendor/autoload.php'; use setasign\Fpdi\Fpdi; use setasign\Fpdi\PdfReader; // 加载 PDF 文件 $pdf = new Fpdi(); // 设置页面大小(根据原 PDF 自动适配) $pdf->setSourceFile('input.pdf'); // 获取第一页 $tplIdx = $pdf->importPage(1); $pdf->addPage(); $pdf->useImportedPage($tplIdx, 0, 0, 0, 0, true); // 添加文字水印 $pdf->SetFont('Arial', 'B', 50); $pdf->SetTextColor(255, 255, 255); $pdf->SetOpacity(0.3); // 设置透明度 $pdf->Rotate(45, 100, 100); // 旋转水印 $pdf->Text(100, 100, 'CONFIDENTIAL'); // 水印文字位置 $pdf->Rotate(0); // 恢复旋转 // 添加图片水印 $pdf->Image('watermark.png', 100, 100, 100, 0, 'PNG', '', '', false, 300, '', false, false, 0, false, false, false); // 输出结果 $pdf->Output('output.pdf', 'F'); // 保存为 output.pdf echo "Watermarked PDF created successfully!"; ``` --- ### 3. 参数说明 | 方法 | 说明 | |------|------| | `SetFont()` | 设置字体样式 | | `SetTextColor()` | 设置文字颜色(RGB) | | `SetOpacity()` | 设置透明度(0~1) | | `Rotate()` | 旋转文本或图片 | | `Text()` | 添加文字水印 | | `Image()` | 添加图片水印 | --- ## 🔧 可选方案:使用 mPDF(更简单) 如果你希望更简单地实现水印功能,可以使用 [mPDF](https://mpdf.github.io/),它支持直接设置水印。 ### 示例代码(mPDF): ```php require_once __DIR__ . '/vendor/autoload.php'; $mpdf = new \Mpdf\Mpdf(); // 设置水印 $mpdf->SetWatermarkText('CONFIDENTIAL'); $mpdf->showWatermarkText = true; $mpdf->watermarkFont = 'arial'; $mpdf->watermarkTextAlpha = 0.1; // 添加内容 $mpdf->WriteHTML('<h1>Hello World</h1>'); // 输出 $mpdf->Output('output.pdf', 'F'); ``` --- ## 📌 小结 | 工具 | 是否支持文字水印 | 是否支持图片水印 | 是否复杂 | |------|------------------|------------------|----------| | FPDI + TCPDF | ✅ | ✅ | 中等 | | mPDF | ✅ | ✅ | 简单 | | Zend_Pdf | ✅ | ❌(需手动绘制) | 复杂 | --- 如需我帮你封装成一个函数或者处理多页 PDF,也可以告诉我!
上一篇:
PHP中的序列化方法性能对比
标题录入,一次不能超过6条
冥想是什么?怎么冥想?
T:0.005918s,M:155.6 KB
返回顶部
留言
留言
评论