質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

Q&A

解決済

1回答

2190閲覧

phpwkhtmltopdf を使用した、PDF出力

退会済みユーザー

退会済みユーザー

総合スコア0

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

0グッド

1クリップ

投稿2021/04/14 13:16

突然の質問、失礼いたします。

現在、ブラウザ上にPDFの表示をしたく、TCPDFやmPDFと言ったブログラムを色々試しておりますが、
PDF表示になりませんため、こちらで質問させていただきました。

TCPDF、mPDF、wkhtmltopdf+snappy、は正常に動作し、PDFの作成にまで至りました。
現在試していますのが、phpwkhtmltopdfを使用したPDFの表示で、
composerを使用し、インストールを行い設定しましたが上手く動作しない状態です。

現在の環境は、
XAMPP
PHP Version 7.4.8
Apache/2.4.43 (Win64) OpenSSL/1.1.1g PHP/7.4.8


【ディレクトリ】

PDF │ index.php │ ├─vendor │ │ autoload.php │ │ │ ├─composer │ │ autoload_classmap.php │ │ autoload_namespaces.php │ │ autoload_psr4.php │ │ autoload_real.php │ │ autoload_static.php │ │ ClassLoader.php │ │ installed.json │ │ installed.php │ │ InstalledVersions.php │ │ LICENSE │ │ platform_check.php │ │ │ └─mikehaertl │ ├─php-shellcommand │ │ │ CHANGELOG.md │ │ │ composer.json │ │ │ LICENSE │ │ │ README.md │ │ │ │ │ ├─.github │ │ │ └─workflows │ │ │ tests.yml │ │ │ │ │ └─src │ │ Command.php │ │ │ ├─php-tmpfile │ │ │ composer.json │ │ │ LICENSE │ │ │ README.md │ │ │ │ │ ├─.github │ │ │ └─workflows │ │ │ tests.yml │ │ │ │ │ └─src │ │ File.php │ │ │ └─phpwkhtmltopdf │ │ CHANGELOG.md │ │ composer.json │ │ LICENSE │ │ README.md │ │ │ ├─.github │ │ └─workflows │ │ tests.yml │ │ │ └─src │ Command.php │ Image.php │ Pdf.php │ └─wkhtmltox ├─bin │ libwkhtmltox.a │ wkhtmltoimage.exe │ wkhtmltopdf.exe │ wkhtmltox.dll │ └─include └─wkhtmltox dllbegin.inc dllend.inc image.h pdf.h

【index.php】

require './vendor/autoload.php'; use mikehaertl\wkhtmlto\Pdf; $html = <<<EOF <!DOCTYPE html> <html> <style> body { padding: 7px; background-color: black; } .red { color: red; font-size: 50px; } .opacity { opacity: 0.3; } </style> <body> <div class="red"> <p>PDF化してください!</p> <p class="opacity">何でもしますから!</p> </div> </body> </html> EOF; $pdf = new Pdf([ 'binary' => './wkhtmltox/bin/wkhtmltopdf', 'encoding' => 'utf-8', 'margin-top' => 0, 'margin-right' => 0, 'margin-bottom' => 0, 'margin-left' => 0, 'no-outline', ]); $pdf->addPage($html); $pdf->send();

参考サイト
https://qiita.com/morisuke/items/88010efca9fc03466c7f

index.phpにアクセスしても、真っ白なページが表示されるのみで、
PDFでの表示がされない状態です。

間違っている等、御座いましたらご教授いただければ幸いです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AbeTakashi

2021/04/14 13:31

一般的に日本語PDFを表示する場合は適切なフォントの導入とその設定が必要となりますが、そのへんはどうなってるでしょうか? 参考サイトのリンク先にもフォントの導入が必要となっていますが、その辺の説明が書かれていませんので。XAMPPということですが、Windowsであってもその作業は必要です。たとえばPDFの内容を日本語じゃなく英数文字にしたらどうでしょう。その辺で切り分けして原因を突き止めるしかありません。
退会済みユーザー

退会済みユーザー

2021/04/14 22:12

ご返信いただき、ありがとうございます。 投稿を確認し、フォントのインストール手順を行っていませんでした。 ※内容を日本語の除き、英字のみにしても、表示は同じ真っ白な状態です。 フォントのインストールは勉強し、実行したのちに、改めて表示のテストをしてみたいと思います。 他、お気づきの点があれば、お教えくださいませ。
AbeTakashi

2021/04/15 00:20

なるほど、英数字だけでも真っ白となるとフォント以外にも要因があるかもしれませんね。Apacheのログに何か出てるかもしれませんので、そちらも参考にしてください。
退会済みユーザー

退会済みユーザー

2021/04/15 02:08

PHP、Apacheでエラーログを確認しましたが、エラーは出ていない様子です ※他のエラーではエラーが記述されますが、アクセスしてもエラーが吐き出されません。 投稿の記述に誤りがあるのでしょうか。 フォントのインストールは現在試していませんが、 これから試してみます。
AbeTakashi

2021/04/15 02:17

ログも出てなく真っ白ならPDF化までは成功しているのかもしれませんね。フォントを明示的に指定した方が良いような場合もあったので、その辺もチェックしてみてください。 https://www.konosumi.net/entry/2018/06/22/015223
退会済みユーザー

退会済みユーザー

2021/04/15 02:35

URLにて誘導までいただき、有難うございます。 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> を記載したり、お教えいただきましたCSSの記述を入れても、同様の状態でした。 試しにレンタルサーバー(Xserver)へアップロードし確認しましても真っ白のままです。 他、原因となりうる事が御座いましたら、お教え下さいませ。
AbeTakashi

2021/04/15 02:55

CSSでの指定はフォント名を正しく指定しないといけないので難しかったかもしれません。あと、XAMPPから見えないフォントなのかも。 XServerはサーバにフォント入ってないでしょうし、プロジェクトファイル内にフォントを内包してそれを指定する方法しかないでしょうね。XAMPPでもこの方法で行けると思いますが。 OSに入ってるフォントを使用するのではなく、直接.ttfファイルを置いてそれを指定する方法もあったきがします。うろ覚えですいません。間違ってたらごめんなさい。でも一応調べてみてください。
退会済みユーザー

退会済みユーザー

2021/04/15 11:36

プロジェクトファイル内へフォント設置して解決するなら、自分のやりたい事が一通り出来ますので、 試してみます。 うろ覚えでも全然結構です。 自分の周りに、プログラムに詳しい方がいらっしゃらないので、そんな貴重な意見・思考をお教えいただけるだけで、勉強になります。 ttfファイルはDL済ですので、それで試してみて、また記載いたします。
退会済みユーザー

退会済みユーザー

2021/04/18 00:51

何度もご教授いただきありがとうございます。 現在、教えていただいた事、試しましたが、現在も未だ改善されない状態です。 何かしら問題があるのかと思いますが、切り分け方法も底をつきましたため、一旦こちらの質問は閉めさせていただきます。 記載いただきました事、大変勉強になりました。 本当にお教えいただき、ありがとうございました。
guest

回答1

0

ベストアンサー

解決には至りませんでしたが、一旦、質問を閉めさせていただきます。

投稿2021/04/18 00:52

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問