【问题标题】:Mikehaertl wkhtmltopdf set different options to different pagesMikehaertl wkhtmltopdf 为不同的页面设置不同的选项
【发布时间】:2017-01-23 13:46:45
【问题描述】:

我正在使用 wkhtmltopdf 生成 pdf 文件,我需要设置不同的选项来 不同的页面。

例如:

$pdf->addPage('http://frontbeta/')->setOptions(['orientation' => 'landscape']);
$pdf->addPage('http://backbeta/');

因此,第 1 页为横向,第 2 页为纵向。 但是上面的代码将第一个选项设置为所有页面。

这里是生成pdf文件的函数:

    protected function createPdf()
{
    if ($this->_isCreated) {
        return false;
    }
    $command = $this->getCommand();
    $fileName = $this->getPdfFilename();

    $command->addArgs($this->_options);

    foreach ($this->_objects as $object) {
        $command->addArgs($object);
    }
    $command->addArg($fileName, null, true);    // Always escape filename
    if (!$command->execute()) {
        $this->_error = $command->getError();
        if (!(file_exists($fileName) && filesize($fileName)!==0 && $this->ignoreWarnings)) {
            return false;
        }
    }
    $this->_isCreated = true;
    return true;
}

在这里,它设置了 foreach 对象的选项。那么如何改变功能呢?

【问题讨论】:

    标签: php


    【解决方案1】:

    documentation,我找到了-O landscape。您可以通过添加此选项来更改命令。

    【讨论】:

    • 确实如此,但仅作为全局选项,适用于整个文件。 AFAIK,目前(遗憾的是)wkhtmltopdf 中没有用于在页面级别设置方向的选项。使用 CSS 旋转页面有一些可能性(我现在正在尝试),但这可能仅适用于最简单的场景。这里有官方功能请求:github.com/wkhtmltopdf/wkhtmltopdf/issues/1564。看看你能不能帮忙。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    • 2016-07-23
    • 2012-01-08
    • 2019-11-13
    相关资源
    最近更新 更多