Phantomjs を使用して PDF をエクスポートする
PDF 文書である電子契約書をユーザーにエクスポートするという新しい要件を受け取りました。バックエンドで PHP を使用しているため、当然 PHP ソリューションを探します。 Packagist から何万、何十万もダウンロードされたライブラリを含むいくつかのライブラリを調べましたが、残念なことに、PHP は世界で最高の言語ではありますが、控えめに言っても、PHP 開発者の美的レベルは非常に低いと言わざるを得ません。 、無力です...
2 番目の問題は、完全なドキュメントを組み立てるために、PHP が PDF を 1 行ずつ、要素ごとに何度も「組み立て」なければならないことです。スタイルをコントロールするのは非常に手間がかかり、難しいです。 HTML からの変換にも同様の問題があります。しばらく勉強していると、卵がどんどん痛くなってきたように感じました。ああ、もう忘れて、Phantomjs に切り替えましょう。
Phantomjs はコマンドラインの Webkit ツールであり、ページを出力しないブラウザとして理解できますが、Webkit によってブラウザのさまざまな機能がサポートされます。したがって、Web ページのレンダリングと画像のキャプチャは簡単です。
Phantomjs を使用して PDF を出力するのは非常に簡単です:
- まず、幅と高さに同意し (印刷の便宜上、電子契約書はページに分割され、ヘッダーとフッターが必要です)、ページ テンプレートを完成させます。 。
- Phantomjs スクリプトを完成させます。ドキュメントの生成のみに使用されるため、Web サービスは必要ありません。
- PHP を使用してスクリプトを呼び出し、PDF ドキュメントを生成し、ユーザーがダウンロードできるようにファイルを読み取ります。
これの利点は、いつでも効果をプレビューできること、HTML は読みやすく変更しやすいこと、そして PHP のコンテンツを置き換えるのにも便利であることです。そして、コードは公式の例と組み合わせると非常に簡単で、すぐに作成できました:
'use strict';var page = require('webpage').create() , system = require('system') , args = system.args , url = args.length > 1 ? args[1] : 'http://www.dianjoy.com/' , filename = args.length > 2 ? args[2] : 'tmp';page.viewportSize = { width: 800, height: 1100};url = decodeURIComponent(url);page.open(url, function (status) { console.log(status); if (status === 'success') { page.render('/tmp/pdf/' + filename + '.pdf'); } phantom.exit();});
このコードをデプロイする際の最大の問題は、GFW によって npm install phantomjs -g が失敗し、zip を直接ダウンロードしても機能しないことです。 Amazon S3 に配置されます)。したがって、私たちは病気を応援し続け、ファング校長や他の壁建設者をできるだけ早く殺害します。
2 番目の問題は、PHP がスクリプトの実行に失敗することです。ドキュメントを参照するだけで非常に簡単です:
exec('/usr/local/phantomjs/bin/phantomjs pdf.js http://meathill.com/ meathill');
しかし、実際には、ドキュメントもリターンも生成されませんでした。長い間デバッグした後、Apktool を使用してインストールを解析したときに同様の問題が発生したことを突然思い出しました。少し前にパッケージを作成したので、最後に 2>&1 を追加しました。問題は解決しました。
Googleのことはよくわかりません。それについては後で話しましょう。
その他の参考文献:
shell_exec
写真と本文は関係ありません。実は、今日赤ちゃんを出産した大学時代の友人が、彼女を祝福するために彼女の奇妙な写真を投稿したのです。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
