首页 文章

wkhtmltopdf - 元素不保留原始位置

提问于
浏览
0

我正在使用wkhtmltopdf生成一个.pdf文件,用于打印HTML代码 . 我的问题是,当我生成pdf时,HTML元素会被移动并且不会保持其原始位置 .

我生成pdf的代码是:

$address = 'http://www.example.com/sendpdf/' . $card . '/';

        $snappy = new Pdf('/usr/bin/wkhtmltopdf');
        $snappy->setOption('lowquality', null);
        $snappy->setOption('dpi', 100);
        $snappy->setOption('disable-smart-shrinking', true);
        $snappy->setOption('page-width', 127);
        $snappy->setOption('page-height', 178);
        $snappy->setOption('margin-left', 0);
        $snappy->setOption('margin-top', 0);
        $snappy->setOption('margin-right', 0);
        $snappy->setOption('margin-bottom', 0);
        $snappy->setOption('stop-slow-scripts', null);
        $snappy->setOption('enable-javascript', true);

        $pdf_content = array( $card, $snappy->getOutput($address) );

我也试过用Firefox,Safari和Chrome查看HTML版本 . 在所有版本中,元素似乎都正确定位 . 它似乎只是PDF版本中的一个问题 .

任何人有任何想法如何解决这个问题?

1 回答

  • 0

    经过大量的调整和改进这个应用程序,使其像素完美的HTML,我发现了多个有助于解决这个问题的东西 . 我希望你们中的一些人可以使用它 .

    • 使用 white-space: nowrap; . 出于某种原因,我在PDF上得到了在HTML中没有任何换行符的文本的换行符 . 我做了很多测试,我找不到一个好的模式来重新创建问题,但似乎在PDF中,它认为div在HTML中不那么宽,然后将内容推送到第二排 . 所以我通过使用white-space解决了这个问题:nowrap;

    • 显然,您想要制作的PDF和HTML具有完全相同的CSS样式非常重要 . 但请确保 <meta name="viewport"> 等其他内容相同 .

相关问题