如何安装 phpwkhtmltopdf
How to install phpwkhtmltopdf
我正在尝试在共享服务器 (webhotel) 上安装 phpwkhtmltopdf。服务器已经安装了 composer,并且我有 SSH 到服务器。但我不太熟悉作曲家,所以我可能在这里做一些非常基本的错误..
所以,我已经从以下位置下载了 zip 文件:
https://github.com/mikehaertl/phpwkhtmltopdf
并将其上的文件提取到服务器到名为 phpwkhtmltopdf 的目录中。
然后,打开 SSH cd-ing 到那个目录和 运行 composer require mikehaertl/phpwkhtmltopdf 但我只在行首得到问号。
对于问号,我读到它可能是检测 unicode 的问题,所以我将 htaccess: php_flag detect_unicode Off 并且它现在似乎在本地关闭。
但是仍然有问号,php wkhtmltopdf 没有安装。如何安装?
问题是您正在获取包 mikehaertl/phpwkhtmltopdf
两次:
- 首先,您获取了 zip 文件并将其解压缩(手动安装)。
- 然后,您 运行 Composer 需要它(通过 Composer 安装)。
请决定您要如何安装包!
当你想用 Composer 安装包时,你只需要 运行 composer require mikehaertl/phpwkhtmltopdf
在一个干净的项目文件夹中。
Composer 将提取包并将其放入 /vendor
文件夹。
就是这样。
现在,为了使用它,您需要两件事:
您需要在 bootstrap 项目期间包含 Composers Autoloader。这使得当您访问 package/library 类.
时,自动加载器将加载库
// Register Composer Autoloader
define('VENDOR_DIR', __DIR__ . '\vendor' . DS);
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 mikehaertl\wkhtmlto\Pdf;
$pdf = new Pdf('/path/to/page.html');
if (!$pdf->saveAs('/path/to/page.pdf')) {
echo $pdf->getError();
}
嗯,您需要 wkhtmltopdf 二进制文件...但我想这不是问题所在。
这些是我的步骤:
- 我下载了 wkhtmltopdf http://download.gna.org/wkhtmltopdf/0.12/0.12.3.2/wkhtmltox-0.12.3.2_msvc2013-win64.exe
- 并将其安装到
c:\program files\wkhtmltopdf
现在可执行文件位于 c:\program files\wkhtmltopdf\bin
我创建了文件夹 pdf-test
- i 运行 CLI 上的命令
composer require mikehaertl/phpwkhtmltopdf
我创建了一个包含以下内容的文件 makepdf.php
:
/**
* 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();
}
然后我运行php makepdf.php
- 终于生成了文件
page.pdf
就是这样...:)
我正在尝试在共享服务器 (webhotel) 上安装 phpwkhtmltopdf。服务器已经安装了 composer,并且我有 SSH 到服务器。但我不太熟悉作曲家,所以我可能在这里做一些非常基本的错误..
所以,我已经从以下位置下载了 zip 文件: https://github.com/mikehaertl/phpwkhtmltopdf 并将其上的文件提取到服务器到名为 phpwkhtmltopdf 的目录中。 然后,打开 SSH cd-ing 到那个目录和 运行 composer require mikehaertl/phpwkhtmltopdf 但我只在行首得到问号。 对于问号,我读到它可能是检测 unicode 的问题,所以我将 htaccess: php_flag detect_unicode Off 并且它现在似乎在本地关闭。
但是仍然有问号,php wkhtmltopdf 没有安装。如何安装?
问题是您正在获取包 mikehaertl/phpwkhtmltopdf
两次:
- 首先,您获取了 zip 文件并将其解压缩(手动安装)。
- 然后,您 运行 Composer 需要它(通过 Composer 安装)。
请决定您要如何安装包!
当你想用 Composer 安装包时,你只需要 运行 composer require mikehaertl/phpwkhtmltopdf
在一个干净的项目文件夹中。
Composer 将提取包并将其放入 /vendor
文件夹。
就是这样。
现在,为了使用它,您需要两件事:
您需要在 bootstrap 项目期间包含 Composers Autoloader。这使得当您访问 package/library 类.
时,自动加载器将加载库// Register Composer Autoloader define('VENDOR_DIR', __DIR__ . '\vendor' . DS); 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 mikehaertl\wkhtmlto\Pdf; $pdf = new Pdf('/path/to/page.html'); if (!$pdf->saveAs('/path/to/page.pdf')) { echo $pdf->getError(); }
嗯,您需要 wkhtmltopdf 二进制文件...但我想这不是问题所在。
这些是我的步骤:
- 我下载了 wkhtmltopdf http://download.gna.org/wkhtmltopdf/0.12/0.12.3.2/wkhtmltox-0.12.3.2_msvc2013-win64.exe
- 并将其安装到
c:\program files\wkhtmltopdf
现在可执行文件位于
c:\program files\wkhtmltopdf\bin
我创建了文件夹
pdf-test
- i 运行 CLI 上的命令
composer require mikehaertl/phpwkhtmltopdf
我创建了一个包含以下内容的文件
makepdf.php
:/** * 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(); }
然后我运行
php makepdf.php
- 终于生成了文件
page.pdf
就是这样...:)