亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

Phantomjs 生成多頁PDF示例

2024-04-27 15:05:57
字體:
來源:轉載
供稿:網友

Phantomjs 生成多頁PDF示例

最近使用 Phantomjs 生 成PDF,其中遇到一些問題,導致PDF生成失敗,如出現空白文件或一頁數據量太大,都是由于沒有設置好格式導致。特別是分頁問題,感覺資料很少,除了在 StackOverflow 上看到些許資料外,中文社區基本看不到,附上修改后的 rasterize.js 來做講解:

var page = require(‘webpage‘).create(),    system = require(‘system‘),    address, output, size;if (system.args.length < 3 || system.args.length > 5) {    console.log(‘Usage: rasterize.js URL filename [paperwidth*paperheight|paperformat] [zoom]‘);    console.log(‘  paper (pdf output) examples: "5in*7.5in", "10cm*20cm", "A4", "Letter"‘);    phantom.exit(1);} else {    address = system.args[1];    output = system.args[2];    /*size of browser*/    page.viewportSize = { width: 600, height: 600 };    /*    if (system.args.length > 3 && system.args[2].substr(-4) === ".pdf") {        size = system.args[3].split(‘*‘);        page.paperSize = size.length === 2 ? { width: size[0], height: size[1], margin: ‘0px‘ }                                           : { format: ‘A4‘, orientation: ‘portrait‘, margin: ‘1cm‘ };    }    */    /* ie and Chrome view diffrent format of pdf */    page.settings.userAgent = ‘Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36‘;    page.paperSize = { format: ‘A4‘, orientation: ‘portrait‘, margin: ‘0.8cm‘ };    page.zoomFactor = 1;    page.settings.loadImages = true;    //some question about the page language    page.open(address, function (status) {        if (status !== ‘success‘) {            console.log(‘Unable to load the address!‘);        } else {            //page.render(output);            //phantom.exit();                        window.setTimeout(function () {                page.render(output);                phantom.exit();            }, 200); //setting the time is enough to loading the page. document.ready                    }    });}

PDF 格式設置

關于其中 page 的設置屬性,這里可以了解,更深入可以了解 WebPage Module。

我們需要的設置,基本上就是頁面格式、縮放、加載圖片等,但有些例外,下面一一講解。

1 page.paperSize = { format: ‘A4‘, orientation: ‘portrait‘, margin: ‘0.8cm‘ };

      注釋掉了官方例子的設置代碼,因為傳入的參數只有3個,到 .pdf 為止,如果寫成通用模式,當然可以作為外部參數傳入。

format :A4 紙,可以設置 "5in*7.5in", "10cm*20cm",  "Letter" 等

orientation :紙方向是豎著的,或者 landscape

margin :與紙四邊間距,可自定義,也可詳細設置 margin : { left: ‘0.8cm‘,  top : ‘0.8cm‘,  right : ‘0.8cm‘,  bottom : ‘0.8cm‘ }

1 page.zoomFactor = 1;2 page.settings.loadImages = true;

zoomFactor :頁面縮放比例

loadImages :頁面加載圖片

1 page.settings.userAgent = ‘Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36‘;

這個設置比較不常見,一般的示例中都沒有提及,因為發現用 chrome 和 IE 打開生成的 pdf 時格式有點不一樣(表現在分頁方面),由于偏向 Chrome 瀏覽格式,故設置此值,解決這個不一致問題。 

page.open 里面的 setTimeout 方法作用:等待頁面執行完 js ,再生成 pdf。當然對于 js 要執行多久(要等多久),這個就不知道怎么預算了。其實我有試過 Ajax 方式加載內容,但因此問題而作罷了。

更多的信息,關于頁眉和頁腳及頁碼標注問題,可以參考這里。

PDF 分頁

分頁來說,更好控制,不需要代碼(js)設置,頁面使用樣式即可:

style = “page-break-after: always;”

控制每頁內容的大小,使用 <div style="page-break-after: always;">content</div> 就行。

更多選擇 style=“page-break-before: always;” , style="page-break-inside: avoid;" 這個可以避免內容散到兩頁中


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
这里只有视频精品| 日韩视频免费大全中文字幕| 日韩中文字幕在线| 国产精品久久久久久久久久久久| 亚洲欧美激情在线视频| 久久久免费高清电视剧观看| 国产精品日韩欧美大师| 一本大道久久加勒比香蕉| 欧美日韩视频免费播放| 亚洲精品97久久| 欧美电影免费观看网站| 欧美日韩中国免费专区在线看| 亚洲欧美在线磁力| 尤物yw午夜国产精品视频明星| 国产精品日韩欧美| 亚洲在线免费观看| 国产精品久久999| 亚洲人免费视频| 欧美黑人又粗大| 色先锋久久影院av| 欧美大尺度激情区在线播放| 自拍偷拍亚洲在线| 福利一区视频在线观看| 日韩久久精品成人| 综合国产在线视频| 亚洲人成网站在线播| 一本色道久久88精品综合| 欧美成人久久久| 在线精品国产成人综合| 欧美激情免费在线| 国产这里只有精品| 国产午夜精品免费一区二区三区| 国产成人一区二| 国产亚洲欧洲高清一区| 欧美电影免费观看电视剧大全| 日韩精品中文在线观看| 88国产精品欧美一区二区三区| 欧美激情国产日韩精品一区18| 91九色国产社区在线观看| 色青青草原桃花久久综合| 一本一本久久a久久精品综合小说| 国产精品美女在线| 色偷偷噜噜噜亚洲男人的天堂| 中文字幕久热精品视频在线| 欧美日韩成人在线视频| 亚洲人成在线观看网站高清| 欧美人成在线视频| www国产91| 亚洲电影免费观看高清| 欧美黄色三级网站| 国产精品老牛影院在线观看| 亚洲综合视频1区| 亚洲精品电影在线观看| 久久97久久97精品免视看| 色悠悠国产精品| 欧美在线视频免费播放| 国内精品久久久久影院优| 亚洲欧美成人精品| 国产亚洲精品久久久| 亚洲日本成人网| 国产偷国产偷亚洲清高网站| 欧美第一页在线| 欧美午夜精品久久久久久人妖| 成人激情视频小说免费下载| 亚洲在线视频福利| 日韩av在线影院| 久久影视免费观看| 亚洲桃花岛网站| 国产精品午夜国产小视频| 欧美成人黑人xx视频免费观看| 98精品国产高清在线xxxx天堂| 91高清视频免费观看| 欧美综合在线第二页| 日韩中文字幕国产| 欧美色视频日本版| 欧美成人精品不卡视频在线观看| 国产视频亚洲精品| 亚洲视频在线免费观看| 日本精品视频在线观看| 亚洲午夜色婷婷在线| 97国产在线观看| 国产精品久久一区| 中文字幕在线成人| 国产日韩在线免费| 成人日韩av在线| 国产精品久在线观看| 伊人久久大香线蕉av一区二区| 综合久久五月天| 麻豆国产精品va在线观看不卡| 亚洲第一区中文99精品| 亚洲图片欧洲图片av| 91探花福利精品国产自产在线| 欧美精品在线第一页| 国产精品入口日韩视频大尺度| 午夜免费在线观看精品视频| 性色av一区二区三区免费| 国产美女主播一区| 欧美黑人视频一区| 午夜精品久久久久久久99热浪潮| 欧美精品videosex牲欧美| 国色天香2019中文字幕在线观看| 韩国国内大量揄拍精品视频| 欧美贵妇videos办公室| 在线亚洲欧美视频| 欧美老女人bb| 久久综合88中文色鬼| 中文欧美在线视频| 91日本在线视频| www.亚洲天堂| 亚洲亚裔videos黑人hd| 欧美激情亚洲精品| 欧美专区中文字幕| 久久久久久91香蕉国产| 久久亚洲精品小早川怜子66| 91理论片午午论夜理片久久| 国产精品爽爽爽| 搡老女人一区二区三区视频tv| 国产日韩av高清| 亚洲丁香婷深爱综合| 中文字幕亚洲字幕| 国产一区二区在线免费| 成人黄色av播放免费| 日韩av在线最新| 亚洲第一男人天堂| 欧美日韩性生活视频| 91天堂在线观看| 亚洲国产欧美一区二区三区同亚洲| 国产成人拍精品视频午夜网站| 欧美激情视频网址| 在线精品国产成人综合| 2020国产精品视频| 日本免费一区二区三区视频观看| 亚洲视频国产视频| 久久视频这里只有精品| 91精品国产99| 国产精品v日韩精品| 国产91精品不卡视频| 亚洲国产精品高清久久久| 亚洲一区二区三区四区视频| 中文字幕九色91在线| 国产精品高清网站| 欧美自拍大量在线观看| 久久久av一区| 在线视频亚洲欧美| 日韩av片免费在线观看| 欧洲美女7788成人免费视频| 91精品国产亚洲| 久久激情五月丁香伊人| 国产精品一二三在线| 国产成人综合一区二区三区| 91社区国产高清| 中文字幕日韩欧美在线| 91精品久久久久久久久久| 亚洲性xxxx| 亚洲视频在线看| 欧美另类老肥妇| 色偷偷888欧美精品久久久| 久久69精品久久久久久国产越南| 亚洲一区二区三区视频| 2019中文在线观看| 成人动漫网站在线观看| 中文字幕少妇一区二区三区| 91精品视频一区| 国产经典一区二区|