最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jsPDF導(dǎo)出PDF寬大于高異常處理

 更新時(shí)間:2023年08月25日 10:14:34   作者:DiracKeeko  
這篇文章主要為大家介紹了jsPDF導(dǎo)出PDF寬大于高異常處理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

情況說明

在將HTML內(nèi)容區(qū)導(dǎo)出PDF時(shí),按width和height的相對大小可以分為瘦長區(qū)域(下圖藍(lán)框)和扁寬區(qū)域(下圖紅框)兩種情況。

我寫的pdf導(dǎo)出邏輯在導(dǎo)出瘦長區(qū)域時(shí)沒問題,在導(dǎo)出扁寬區(qū)域時(shí),會(huì)出現(xiàn)PDF內(nèi)容橫向被截?cái)嗟那闆r(橫向展示不全)。

舉例如下面兩張圖片。

問題所在

html導(dǎo)出pdf經(jīng)過了2個(gè)步驟:

1.html -> img (沒問題)

2.img -> pdf (出了問題)

將img轉(zhuǎn)為pdf并導(dǎo)出用的是jsPDF。

jsPDF使用時(shí)分為3個(gè)步驟:

1.const pdf = new jsPDF(args); 創(chuàng)建一個(gè)指定尺寸的空白的PDF,把它想象成畫布。

2.pdf.addImage(args); args有一系列的參數(shù),在畫布的指定位置放入圖片。

3.pdf.save(fileName); 導(dǎo)出pdf。

問題出在第1步,創(chuàng)建空白的pdf畫布。

new jsPDF(options) 官方文檔 

https://artskydj.github.io/jsPDF/docs/jsPDF.html

關(guān)注format,官方文檔里寫了支持array,形如[595.28, 841.89] (問題就在這)

const pdf = new jsPDF("", "pt", pageSizeArr);

若 我們想要一個(gè)寬1000,高500的畫布

很自然的想到pageSizeArr = [1000, 500]

但這樣的輸入,JSPDF會(huì)生成一個(gè) 寬500 高1000的畫布

也就是說

pageSizeArr = [1000, 500]
或 pageSizeArr = [500, 1000]

jsPDF會(huì)都生成 寬500 高1000的畫布 (!!!!!!!!)

在項(xiàng)目中,我的pageSizeArr設(shè)置如下

pageSizeArr = [scrollWidth, scrollHeight];

這種情況下,如果真的需要導(dǎo)出一個(gè)扁寬的HTML 內(nèi)容區(qū), (scrollWidth > scrollHeight)

畫布的尺寸和HTML的內(nèi)容區(qū)尺寸對不上, HTML的右側(cè)會(huì)被截?cái)唷?/p>

解決方案

scrollWidth > scrollHeight的時(shí)候,做一個(gè)A4紙比例的畫布 寬:高 = 1 : 1.414 (簡化為1 : 1.4)

且 寬度 等于 scrollWidth。

pageSizeArr = [scrollWidth, 1.4 * scrollWidth];

以上就是jsPDF導(dǎo)出PDF寬大于高異常處理的詳細(xì)內(nèi)容,更多關(guān)于js導(dǎo)出PDF寬高異常處理的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 在HTML中使用JavaScript的兩種方法

    在HTML中使用JavaScript的兩種方法

    這篇文章主要介紹了在HTML中使用JavaScript的兩種方法,幫助大家更好的理解和制作網(wǎng)頁,感興趣的朋友可以了解下
    2020-12-12
  • 你可能不知道的typescript實(shí)用小技巧

    你可能不知道的typescript實(shí)用小技巧

    作為前端程序員,TS已經(jīng)成為一項(xiàng)必不可少的技能,本文旨在介紹 TS中的一些實(shí)用技巧,提高大家對這門語言更深的認(rèn)知,這篇文章主要給大家介紹了關(guān)于typescript實(shí)用小技巧的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • js實(shí)現(xiàn)簡易計(jì)算器小功能

    js實(shí)現(xiàn)簡易計(jì)算器小功能

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)簡易計(jì)算器小功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 微信小程序?qū)崿F(xiàn)選項(xiàng)卡效果

    微信小程序?qū)崿F(xiàn)選項(xiàng)卡效果

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)選項(xiàng)卡效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 監(jiān)控微信小程序中的慢HTTP請求過程詳解

    監(jiān)控微信小程序中的慢HTTP請求過程詳解

    這篇文章主要介紹了監(jiān)控微信小程序中的慢HTTP請求過程詳解,F(xiàn)undebug 的微信小程序監(jiān)控插件在 0.5.0 版本已經(jīng)支持監(jiān)控 HTTP 請求錯(cuò)誤,在小程序中通過wx.request發(fā)起 HTTP 請求,如果請求失敗,會(huì)被捕獲并上報(bào),需要的朋友可以參考下
    2019-07-07
  • js獲得參數(shù)的getParameter使用示例

    js獲得參數(shù)的getParameter使用示例

    這篇文章主要介紹了js獲得參數(shù)的getParameter使用示例,需要的朋友可以參考下
    2014-02-02
  • 一步一步封裝自己的HtmlHelper組件BootstrapHelper(二)

    一步一步封裝自己的HtmlHelper組件BootstrapHelper(二)

    一步一步封裝自己的HtmlHelper組件:BootstrapHelper,系列文章第二篇,感興趣的小伙伴們可以參考一下
    2016-09-09
  • js 純數(shù)字不重復(fù)排列的另類方法

    js 純數(shù)字不重復(fù)排列的另類方法

    有一組數(shù)據(jù),大概10萬個(gè)左右,每一單位的值不會(huì)大于30000,要求按照由大到小的順序不重復(fù)輸出。
    2010-07-07
  • js實(shí)現(xiàn)帶箭頭的進(jìn)度流程

    js實(shí)現(xiàn)帶箭頭的進(jìn)度流程

    這篇文章為大家詳細(xì)主要介紹了js實(shí)現(xiàn)帶箭頭的進(jìn)度流程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • SWFObject Flash js調(diào)用類

    SWFObject Flash js調(diào)用類

    一直想為 SWFObject 這個(gè)JS的類庫寫一個(gè)推薦帖,因?yàn)樗p便,同時(shí)功能強(qiáng)大,為我們的開發(fā)帶來了很大的便捷。
    2008-07-07

最新評論

开化县| 家居| 留坝县| 京山县| 得荣县| 洛南县| 尼玛县| 措勤县| 永寿县| 乡宁县| 雅江县| 齐河县| 秭归县| 南木林县| 义乌市| 霞浦县| 忻州市| 那坡县| 通化市| 阳春市| 舟曲县| 瓦房店市| 铁力市| 灌云县| 乐平市| 岑溪市| 兴海县| 巴彦淖尔市| 内乡县| 延安市| 淮安市| 松潘县| 怀柔区| 湖北省| 南木林县| 富宁县| 湟源县| 偏关县| 西乌| 迭部县| 西乌珠穆沁旗|