pdf - 在 pdf 中按宽度调整内容

标签 pdf phantomjs

渲染为 pdf 时,我需要 html 页面为打印宽度的 100%。否则内容会被截断。有没有简单的方法可以做到这一点?

我想出了一个解决方法,它在渲染后获取 html 宽度,然后设置缩放因子以强制正确宽度。

var page = require('webpage').create(),
    system = require('system'),
    dpi = 89.9, // strange, but that's what I get on Mac
    pageWidth = 210; // in mm

var getWidth = function() {
    return page.evaluate(function() {
        // get width manually
        // ...
        return width;
    });
};

page.paperSize = {format: 'A4', orientation: 'portrait'};

page.open(system.args[1], function (status) {
    window.setTimeout(function () {
        page.zoomFactor = (pageWidth / 25.4) * dpi / getWidth();
        page.render(system.args[2]);
        phantom.exit();
    }, 200);
});

寻找一个直接的解决方案,因为由于我使用的框架,获得宽度需要我做一些技巧。

最佳答案

通过添加以下 CSS 规则来解决此问题,该规则将缩小页面并使其适合:

 html {
    zoom: 0.60; 
  }

关于pdf - 在 pdf 中按宽度调整内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21086398/

相关文章:

php - 在jquery中下载pdf文件

python - 使用Python转换PDF坐标系

header - Casperjs/Phantomjs 修改 headers

image - 如何从 pdf 文件中提取 'clusters' 图像?

ios - 渲染 PDF iOS-iPad-Quartz 时出现问题

javascript - PDF.js 无法在 IE9 上运行

javascript - phantom js 直到循环结束才注入(inject) javascript

javascript - 如何使PhantomJS截图尺寸与实际网页对应?

javascript - PhantomJS 无法点击现有元素

javascript - 是否可以将函数传递给 casper.evaluate()?