0

如何将 snappy 库与 codeigniter 一起使用。

  1. 我已经安装并将它放在我的库文件夹中。喜欢

    需要一次目录名(文件)。'/snappy/vendor/autoload.php'; 使用 Knp\Snappy\Pdf;

     class wkhtmltopdf extends Pdf
     {
         function __construct()
         {
             parent::__construct();
         }
     }
    

2)然后在控制器中我通过函数 __construct() 加载它

$this->load->library('wkhtmltopdf');
  1. 在我的一个控制器中,我将二进制设置为

    $snappy = new wkhtmltopdf(""C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe"");

试试看 4)

echo $snappy->getOutput(array('http://www.google.com.pk'));

但下面的错误来了。

但它抛出了一个错误。类型:逻辑异常

消息:您必须在转换之前定义一个二进制文件。

文件名:C:\xampp\htdocs\reporting-new-icn-huge-changes\application\libraries\snappy\vendor\knplabs\knp-snappy\src\Knp\Snappy\AbstractGenerator.php

任何人通过任何方法在 codeignter 中实现 wkhtmltopdf 都会非常有帮助。

4

1 回答 1

0

使用 Composer 下载库后。

$ composer require knplabs/knp-snappy

将其添加到 Library 文件夹中并给出 autoload.php 的路径

require_once dirname(__FILE__)."application/libraries/snappy/vendor/autoload.php";

调整上面的路径和Controller类之外

use Knp\Snappy\Pdf; # at the top of the controller

这是二进制文件的路径,在 Linux 服务器中根据 github.com/KnpLabs/snappy 的帮助对其进行调整

#& 在控制器函数内部

{
$snappy = new Pdf("\"C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe\"");

header('Content-Type: application/pdf');
echo $snappy->setOption('page-width', '188mm');
echo $snappy->setOption('page-height', '100mm');
# these options are Optional there are a lot of other options.
#Can check more options Here https://wkhtmltopdf.org/usage/wkhtmltopdf.txt

echo $snappy->getOutput($url);
#OR in case of you want the HTML to put directly open in the Browser.

echo $snappy->getOutputFromHtml($html);
#OR 
echo $snappy->generateFromHtml('<p>Some content</p>', 'test.pdf');
# this test.pdf will be saved in hte Codeigniter directory
}

要出去直接看这个问题。 在此处输入图像描述

<img src= "https://i.stack.imgur.com/haagb.png"> 

https://wkhtmltopdf.org/downloads.html Windows 中的 Exe 文件和该页面上给出的 Linux、Amazon 等所需的相同类型的可执行文件。
进一步需要这个库,它是用于设置设置、输出和其他东西等的包装器。 https://github.com/KnpLabs/snappy > 这可以使用供应商文件夹中的 git 命令安装

于 2021-04-06T19:54:21.870 回答