我正在尝试使用fpdf和FPDI在pdf中添加Raddyx Technologies
水印文本。水印出现在所有页面上,但我的水印所有页面都显示在图像下方,空间更大。我希望我的水印图像能够显示在pdf上的现有图像之上。我正在使用以下代码添加文本Watermark
<?php
require('fpdf/fpdf.php');
require_once 'FPDI/fpdi.php';
class PDF_Rotate extends FPDI {
var $angle = 0;
function Rotate($angle, $x = -1, $y = -1) {
if ($x == -1)
$x = $this->x;
if ($y == -1)
$y = $this->y;
if ($this->angle != 0)
$this->_out('Q');
$this->angle = $angle;
if ($angle != 0) {
$angle*=M_PI / 180;
$c = cos($angle);
$s = sin($angle);
$cx = $x * $this->k;
$cy = ($this->h - $y) * $this->k;
$this->_out(sprintf('q %.5F %.5F %.5F %.5F %.2F %.2F cm 1 0 0 1 %.2F %.2F cm', $c, $s, -$s, $c, $cx, $cy, -$cx, -$cy));
}
}
function _endpage() {
if ($this->angle != 0) {
$this->angle = 0;
$this->_out('Q');
}
parent::_endpage();
}
}
$fullPathToFile = "recipe.pdf";
class PDF extends PDF_Rotate {
var $_tplIdx;
function Header() {
global $fullPathToFile;
//Put the watermark
//$this->Image('http://chart.googleapis.com/chart?cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World', 40, 100, 100, 0, 'PNG');
$this->SetFont('Arial', 'B', 50);
$this->SetTextColor(255, 192, 203);
$this->RotatedText(20, 230, 'Raddyx Technologies', 45);
if (is_null($this->_tplIdx)) {
// THIS IS WHERE YOU GET THE NUMBER OF PAGES
$this->numPages = $this->setSourceFile($fullPathToFile);
$this->_tplIdx = $this->importPage(1);
}
$this->useTemplate($this->_tplIdx, 0, 0, 200);
}
function RotatedText($x, $y, $txt, $angle) {
//Text rotated around its origin
$this->Rotate($angle, $x, $y);
$this->Text($x, $y, $txt);
$this->Rotate(0);
}
}
$pdf = new PDF();
//$pdf = new FPDI();
$pdf->AddPage();
$pdf->SetFont('Arial', '', 12);
for ($i = 0; $i < 25; $i++) {
$pdf->MultiCell(0, 5, $txt, 0, 'J');
}*/
if($pdf->numPages>1) {
for($i=2;$i<=$pdf->numPages;$i++) {
//$pdf->endPage();
$pdf->_tplIdx = $pdf->importPage($i);
$pdf->AddPage();
}
}
$pdf->Output();
?>
Socuce:https://github.com/chinmay235/php-pdf-watermark
我现有的PDF文件 - http://trackprintorders.com/recipe.pdf
答案 0 :(得分:0)
首先放置水印然后放置图像时会出现此问题。导入任何页面或图像后,您必须使用RotatedText
。
您可以使用footer
方法中的功能,这样可以在所有页面中使用水印。
此水印也是纯文字,不会使用任何透明度。