1

ローカル エンドで Web ページからスクリーンショットを作成するために、phantomjs をテストしています。

これは、ローカルホストでの HTML のレンダリング方法です -出力

しかし、コードから PDF を作成すると、PDF の幅が適切に設定されません。つまり、以下に示すように一部のテキストが切り取られます。

以下は私が疲れたコードです -

var url = 'http://localhost:5656';
page.open(url);

page.onLoadFinished = function() {
    var pdfName = 'screen';
    page.render(pdfName + ".pdf");
    var height = page.evaluate(function() { return document.body.offsetHeight }),
        width = page.evaluate(function() { return document.body.offsetWidth });
    console.log(height,width);  
};

これら2つのプロパティも試しましたが、同じ結果が得られました-

page.clipRect = { top: 0, left: 0, right: 0, width: 1286};
page.viewportSize = { width: 1024, height: 768};

ここで私が間違っていることを教えてください。

私が得ている出力-私が得ているpdf画像

4

1 に答える 1

0

私は自分で問題を解決しました。以下は作業コードです -

var url = 'http://localhost:5656';
page.open(url);

page.onLoadFinished = function() {
    //page.viewportSize = { width: 1400, height: 1200 };
    page.paperSize = {format: 'A4'};
    var pdfName = 'screen';
    page.render(pdfName + ".pdf");
    var height = page.evaluate(function() { return document.body.offsetHeight }),
        width = page.evaluate(function() { return document.body.offsetWidth });
    console.log(height,width);  
};

ご覧のとおり、次の行は私のために魔法を実行しました-

page.paperSize = {format: 'A4'};

それが将来の訪問者に役立つことを願っています。

于 2015-03-14T08:28:16.720 に答える