皆さん、wkhtmltopdf と php wkhtmltopdf のインストールに問題があります。これを最初にローカル サーバーに配置する必要がありますが、後で Web サーバーにインストールする必要があります。まず、Web サイトからプロジェクト フォルダーに wkhtmltopdf をインストールしました。次に、これまで使用したことのない composer 経由でphp wkhtmltopdf 1をインストールしました。そのため、正しくインストールしたかどうかは完全にはわかりませんが、簡単に見えるので、必ずしも問題があるとは思いません。テスト php スクリプトを実行すると、次のエラー メッセージが表示されます。
警告: proc_open(): CreateProcess が失敗しました。エラー コード - C:\xampp\htdocs\delete\vendor\mikehaertl\php-shellcommand\src\Command.php の 2 行 313 コマンド cd "wkhtmltopdf\bin" を実行できませんでした && wkhtmltopdf.exe "C:\Users\Robert\AppData\Local\Temp\tmpE437.tmp.html" "C:\Users\Robert\AppData\Local\Temp\tmpE438.tmp.pdf"
ここに私のテストコードがあります:
/**
* Register Composer Autloader
*/
define('VENDOR_DIR', __DIR__ . '\vendor' . DIRECTORY_SEPARATOR);
if (!is_file(VENDOR_DIR . 'autoload.php')) {
throw new \RuntimeException(
'[Error] Bootstrap: Could not find "vendor/autoload.php".' . PHP_EOL .
'Did you forget to run "composer install --dev"?' . PHP_EOL
);
}
require VENDOR_DIR . 'autoload.php';
/**
* Use library
*/
use mikehaertl\wkhtmlto\Pdf;
$pdf = new Pdf(array(
'binary' => 'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe',
'ignoreWarnings' => true,
'commandOptions' => array(
'procEnv' => array(
// Check the output of 'locale' on your system to find supported languages
'LANG' => 'en_US.utf-8',
),
'escapeArgs' => false,
'procOptions' => array(
// This will bypass the cmd.exe which seems to be recommended on Windows
'bypass_shell' => true,
// Also worth a try if you get unexplainable errors
'suppress_errors' => true,
),
),
));
$pdf->addPage('<html>
<head>
</head>
<body>
<div id="print-area">
<div id="header">
This is an example header.
</div>
<div id="content">
<h1>Demo</h1>
<p>This is example content</p>
</div>
<div id="footer">
This is an example footer.
</div>
</div>
</body>
</html>');
if (!$pdf->saveAs('page.pdf')) {
echo $pdf->getError();
}
問題が何であるかを知っている人はいますか?オンラインで動作する必要があるため、ローカル サーバー内から wkhtmltopdf を実行する必要があります。リンクする別の役立つスタック オーバーフロー トピックを見つけました2。すべての手順を実行しましたが、適切に実行できませんでした。どんな助けでも大歓迎です!:)