使用 Snappy PDF 在 linux 中打印 pdf 时出错
error to print pdf in linux with Snappy PDF
我在 config/snappy 中的配置文件有问题。php
在 windows 中编程 我有这个配置,工作得很好,问题是当我将代码放入 linux 中的生产应用程序时,配置不一样....
return array(
'pdf' => array(
'enabled' => true,
'binary' => '"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe"',
//'binary' => '"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf"',
'options' => array(),
),
'image' => array(
'enabled' => true,
'binary' => '"C:\Program Files\wkhtmltopdf\bin\wkhtmltoimage.exe"',
'options' => array(),
),
);
我尝试使用此配置但无法正常工作...
'binary' => '/usr/local/bin/wkhtmltopdf-amd64',
还有这条线
'binary' => base_path('vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64'),
但不工作...
有ubuntu
php 7.0
laravel 5.5
谢谢
首先你必须使用 composer require knplabs/knp-snappy
安装 snappy 依赖项(请参阅此 repository)
那么二进制文件将位于 /vendor/h4cc/wkhtmltoimage-amd64/bin and /vendor/h4cc/wkhtmltopdf-amd64/bin
将二进制文件移动到不在同步文件夹中的路径,例如:
cp vendor/h4cc/wkhtmltoimage-amd64/bin/wkhtmltoimage-amd64 /usr/local/bin/
cp vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 /usr/local/bin/
并使其可执行:
chmod +x /usr/local/bin/wkhtmltoimage-amd64
chmod +x /usr/local/bin/wkhtmltopdf-amd64
这将防止错误 126。
请查看并通读文档 here
如果你遵循了 vagrant 的步骤,那一行应该是这样的
'binary' => '/usr/local/bin/wkhtmltopdf-amd64',
如果你想下载 wkhtmltopdf 和 wkhtmltoimage with composer 你添加到 composer.json:
$ 作曲家需要 h4cc/wkhtmltopdf-i386 0.12.x
$作曲家需要h4cc/wkhtmltoimage-i386 0.12.x
如果您使用的是基于 64 位的系统,则为:
$ composer require h4cc/wkhtmltopdf-amd64 0.12.x
$ composer require h4cc/wkhtmltoimage-amd64 0.12.x
您现在应该可以从 cmd/terminal 开始使用它了。
您可以像这样在 PHP 中使用它:
<?php
use Knp\Snappy\Pdf;
$myProjectDirectory = '/path/to/my/project';
$snappy = new Pdf($myProjectDirectory . '/vendor/h4cc/wkhtmltopdf-i386/bin/wkhtmltopdf-i386');
// or
$snappy = new Pdf($myProjectDirectory . '/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64');
如果您是 vagrant
用户,您应该使用 mv
命令将二进制文件移动到未同步的文件夹。然后使用 chmod +x
命令使 exdcutable 可用。
您可以这样添加要求:
composer require barryvdh/laravel-snappy
然后使用此命令更新作曲家
php composer.phar update
你可以找到基本用法here...
这就是解决方案
$ 作曲家需要 h4cc/wkhtmltopdf-amd64 0.12.x
$ composer require h4cc/wkhtmltoimage-amd64 0.12.x
我的错误是将此命令放在项目文件夹中,但在根目录中...
感谢
我在 config/snappy 中的配置文件有问题。php 在 windows 中编程 我有这个配置,工作得很好,问题是当我将代码放入 linux 中的生产应用程序时,配置不一样....
return array(
'pdf' => array(
'enabled' => true,
'binary' => '"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe"',
//'binary' => '"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf"',
'options' => array(),
),
'image' => array(
'enabled' => true,
'binary' => '"C:\Program Files\wkhtmltopdf\bin\wkhtmltoimage.exe"',
'options' => array(),
),
);
我尝试使用此配置但无法正常工作...
'binary' => '/usr/local/bin/wkhtmltopdf-amd64',
还有这条线
'binary' => base_path('vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64'),
但不工作...
有ubuntu
php 7.0
laravel 5.5
谢谢
首先你必须使用 composer require knplabs/knp-snappy
安装 snappy 依赖项(请参阅此 repository)
那么二进制文件将位于 /vendor/h4cc/wkhtmltoimage-amd64/bin and /vendor/h4cc/wkhtmltopdf-amd64/bin
将二进制文件移动到不在同步文件夹中的路径,例如:
cp vendor/h4cc/wkhtmltoimage-amd64/bin/wkhtmltoimage-amd64 /usr/local/bin/
cp vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 /usr/local/bin/
并使其可执行:
chmod +x /usr/local/bin/wkhtmltoimage-amd64
chmod +x /usr/local/bin/wkhtmltopdf-amd64
这将防止错误 126。
请查看并通读文档 here
如果你遵循了 vagrant 的步骤,那一行应该是这样的
'binary' => '/usr/local/bin/wkhtmltopdf-amd64',
如果你想下载 wkhtmltopdf 和 wkhtmltoimage with composer 你添加到 composer.json:
$ 作曲家需要 h4cc/wkhtmltopdf-i386 0.12.x
$作曲家需要h4cc/wkhtmltoimage-i386 0.12.x
如果您使用的是基于 64 位的系统,则为:
$ composer require h4cc/wkhtmltopdf-amd64 0.12.x
$ composer require h4cc/wkhtmltoimage-amd64 0.12.x
您现在应该可以从 cmd/terminal 开始使用它了。
您可以像这样在 PHP 中使用它:
<?php
use Knp\Snappy\Pdf;
$myProjectDirectory = '/path/to/my/project';
$snappy = new Pdf($myProjectDirectory . '/vendor/h4cc/wkhtmltopdf-i386/bin/wkhtmltopdf-i386');
// or
$snappy = new Pdf($myProjectDirectory . '/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64');
如果您是 vagrant
用户,您应该使用 mv
命令将二进制文件移动到未同步的文件夹。然后使用 chmod +x
命令使 exdcutable 可用。
您可以这样添加要求:
composer require barryvdh/laravel-snappy
然后使用此命令更新作曲家
php composer.phar update
你可以找到基本用法here...
这就是解决方案
$ 作曲家需要 h4cc/wkhtmltopdf-amd64 0.12.x $ composer require h4cc/wkhtmltoimage-amd64 0.12.x
我的错误是将此命令放在项目文件夹中,但在根目录中...
感谢