如何安装phpwkhtmltopdf



我正在尝试在共享服务器(webhotel)上安装phpwkhtmltopdf。服务器已经安装了composer,我有SSH到服务器。但我对作曲家不太熟悉,所以我可能在这里犯了一些非常基本的错误。。

因此,我从以下位置下载了zip文件:https://github.com/mikehaertl/phpwkhtmltopdf并将其上的文件提取到名为phpwkhtmltopdf的服务器目录中。然后,打开该目录的SSH cd并运行composer需要mikehaertl/phpwkhtmltopdf,但我只在行首打了问号。对于我读到的问号,这可能是检测unicode的问题,所以我把它放在htaccess上:php_flag detect_unicode Off,现在它在本地似乎是Off。

但仍然存在疑问,php wkhtmltopdf没有安装。如何安装?

问题是您要提取包mikehaertl/phpwkhtmltopdf两次:

  • 首先,您提取了zip并提取了它(手动安装)
  • 然后,您运行Composer来要求它(通过Composer安装)

请决定如何安装程序包!


当您想用Composer安装包时,只需要在一个干净的项目文件夹中运行composer require mikehaertl/phpwkhtmltopdf

然后,Composer将获取包并将其放入/vendor文件夹中。

就是这样。


现在,为了使用它,您需要两件事:

  1. 您需要在项目的引导过程中包含Composers Autoloader。这样,当您访问某个包/库类时,自动加载器将加载库。

    // 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';
    
  2. 最后,您需要使用库进行编码:

    use mikehaertlwkhtmltoPdf;
    $pdf = new Pdf('/path/to/page.html');
    if (!$pdf->saveAs('/path/to/page.pdf')) {
    echo $pdf->getError();
    }
    

Uhm,并且您需要wkhtmltopdf二进制。。。但我想这不是问题所在。


以下是我的步骤:

  1. 我下载了wkhtmltopdfhttp://download.gna.org/wkhtmltopdf/0.12/0.12.3.2/wkhtmltox-0.12.3.2_msvc2013-win64.exe
  2. 并将其安装到c:program fileswkhtmltopdf
  3. 现在可执行文件驻留在c:program fileswkhtmltopdfbin

  4. 我创建了文件夹pdf-test

  5. 我在CLI上运行了命令composer require mikehaertl/phpwkhtmltopdf
  6. 我创建了一个包含以下内容的文件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 mikehaertlwkhtmltoPdf;
    
    $pdf = new Pdf(array(
    'binary' => 'C:Program Fileswkhtmltopdfbinwkhtmltopdf.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();
    }
    

  7. 然后我运行php makepdf.php

  8. 最后,生成了文件page.pdf

就这样…:)

相关内容

  • 没有找到相关文章

最新更新