ivanpepelko/php-wkhtmltopdf

wkhtmltopdf php 绑定

v1.0.0-beta 2016-08-23 10:22 UTC

This package is auto-updated.

Last update: 2024-09-26 21:49:59 UTC


README

基本上:wkhtmltopdf php 绑定。

安装?

直接

composer require ivanpepelko/php-wkhtmltopdf

让它运行...

...容易

<?php

use WkHtmlToPdf\WkHtmlToPdf;

require_once 'vendor/autoload.php';

$pdf = new WkHtmlToPdf('/usr/local/bin/wkhtmltopdf');
$pdf->setInputPath('html/invoice.html')
    ->setOutputPath('pdf/invoice.pdf')
    ->useRecommendedOptions()
    ->convert()
;

<?php

use WkHtmlToPdf\WkHtmlToPdf;

require_once 'vendor/autoload.php';

$pdf = new WkHtmlToPdf('/usr/local/bin/wkhtmltopdf');

header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename='hello.pdf'");

echo $pdf->setInputHtml('
        <!DOCTYPE html>
            <html>
                <head><title>Hello world!</title></head>
                <body><h1>Hello</h1><p>world!</p></body>
            </html>
        </html>
        ')
        ->useRecommendedOptions()
        ->convert()
        ->output()
;

或类似的东西。

构造函数传递的第一个参数是 wkhtmltopdf 二进制文件的路径。我推荐这些(带有修复的 qt 的 wkhtmltopdf)

其他内容

完整文档

页眉和页脚

<?php
$pdf->setFooterCenterText($text)
    ->setHeaderLeftText($text)
    ->setFooterSpacing($spacing)
    ->setHeaderFontName($name)
    ->setFooterHtml($html); // etc, you get the point

在页眉和页脚的文本字符串中,以下变量将被替换

  • [page] 被当前正在打印的页数替换
  • [frompage] 被要打印的第一页的页数替换
  • [topage] 被要打印的最后一页的页数替换
  • [webpage] 被正在打印的页面的 URL 替换
  • [section] 被当前节的名字替换
  • [subsection] 被当前子节的名字替换
  • [date] 被系统本地格式的当前日期替换
  • [isodate] 被 ISO 8601 扩展格式的当前日期替换
  • [time] 被系统本地格式的当前时间替换
  • [title] 被当前页面对象的标题替换
  • [doctitle] 被输出文档的标题替换
  • [sitepage] 被当前正在转换的网站中的页面数替换
  • [sitepages] 被当前正在转换的网站中的页数替换

此外,您还可以通过 addHeaderFooterVar()addHeaderFooterVars() 方法定义额外的变量

<?php
$pdf->addHeaderFooterVar('var1', 'value2')
	->addHeaderFooterVars(['var3' => 'value4']);

注意: 这将不适用于 html(setHeaderHtml()setFooterHtml())。

注意 2: wkhtmltopdf 在 html 页眉和页脚方面存在问题,它会添加灰色背景(问题#2416 - 将在 0.12.4 中修复)。

缓存

<?php
$pdf->setCacheDir($dir);