FPDF および FPDI 透かしは、X-Y 方向の角度で繰り返されます。
P粉198814372
P粉198814372 2023-08-06 20:11:40
0
1
403
<p>setasign/FPDF および setasign/FPDI ライブラリを使用して、PDF ドキュメントに透かしとカスタム フッター オーバーレイを追加する必要があります (各ページに透かしを入れる必要があります)。元の PDF ファイルはサーバーに保存されており、ファイルが要求されたときにプロセスが実行される必要があります (ファイルには要求の日時が含まれているため)。 <br /><br />次のコードのおかげで、要求された日付と時刻を含む必要なフッターを正常に追加できました。このコードでは、ページの斜め方向に透かしを 1 回だけ印刷しますが、実際には別の動作を実現したいと考えています。この画像に示すように、文字列を斜めに繰り返す (たとえば、文字列は動的に生成されます)。文字列が複数行で繰り返され、それらの行が等間隔に配置されている限り、文字列がページの「外側」で始まるか終わるかは関係ありません。 <br /><br />どこから始めればよいか手がかりはありますか? <br /><br />今日の時点で動作するコード: </p><p><br /></p> <pre class="brush:php;toolbar:false;"><?php setasignFpdiFpdi を使用します。 require_once('vendor/autoload.php'); クラス Watermarked_PDF は Fpdi を拡張します { 関数フッター() { $this->SetY(-10); $this->SetFont('Arial', false, 8); $this->SetTextColor(28, 28, 28); $this->Cell(0, 15, 'ファイル要求日: ' . date('r'), 0, 0, 'C'); } } 関数 addWatermark($x, $y, $watermarkText, $angle, $pdf) { $angle = $angle * M_PI / 180; $c = cos($angle); $s = sin($angle); $cx = $x * 1; $cy = (300 - $y) * 1; $pdf->_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)); $pdf->Text($x, $y, $watermarkText); $pdf->_out('Q'); } $pdf = 新しい Watermarked_PDF(); $file_Path = 'ドキュメント/'; $file_Name = '13825_2023-07-04'; $pages_count = $pdf->setSourceFile($file_Path . $file_Name . '.pdf'); for ($i = 1; $i <= $pages_count; $i ) { $pdf->AddPage(); $tplIdx = $pdf->importPage($i); $pdf->useTemplate($tplIdx, 0, 0); $pdf->SetFont('Arial', 'B', 15); $pdf->SetTextColor(175, 175, 175); $watermarkText = 'ファイル #' . $file_Name . ' - 会社のプロパティ'; addWatermark(120, 220, $watermarkText, 45, $pdf); $pdf->SetXY(25, 25); } $pdf->Output();</pre> <p><em>ここからのウォーターマーク コード: https://phppot.com/php/php-watermark-pdf/ を適応させました。<br /><br />テスト用の基本的なcomposer.jsonファイル: <br /></em></p><p><br />< /p> ; <pre class="brush:php;toolbar:false;">{ "必要とする": { "setasign/fpdf": "1.8.*", "setasign/fpdi": "^2.3" } }</pre> <p>ありがとうございます</p>
P粉198814372
P粉198814372

全員に返信(1)
P粉731861241

実際に解決策を見つけましたが、かなり見苦しいです:

リーリー

この更新されたループが最適ではない場合でも、ジョブは完了します。当面はこの方法で作業を続け、ニーズに合わせて調整していきます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!