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

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

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

情況說(shuō)明

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

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

舉例如下面兩張圖片。

問(wèn)題所在

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

1.html -> img (沒問(wèn)題)

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

將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。

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

new jsPDF(options) 官方文檔 

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

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

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

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

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

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

也就是說(shuō)

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ū)尺寸對(duì)不上, HTML的右側(cè)會(huì)被截?cái)唷?/p>

解決方案

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

且 寬度 等于 scrollWidth。

pageSizeArr = [scrollWidth, 1.4 * scrollWidth];

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

相關(guān)文章

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

    在HTML中使用JavaScript的兩種方法

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

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

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

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

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)簡(jiǎ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請(qǐng)求過(guò)程詳解

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

    這篇文章主要介紹了監(jiān)控微信小程序中的慢HTTP請(qǐng)求過(guò)程詳解,F(xiàn)undebug 的微信小程序監(jiān)控插件在 0.5.0 版本已經(jīng)支持監(jiān)控 HTTP 請(qǐng)求錯(cuò)誤,在小程序中通過(guò)wx.request發(fā)起 HTTP 請(qǐng)求,如果請(qǐng)求失敗,會(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萬(wàn)個(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的類庫(kù)寫一個(gè)推薦帖,因?yàn)樗p便,同時(shí)功能強(qiáng)大,為我們的開發(fā)帶來(lái)了很大的便捷。
    2008-07-07

最新評(píng)論

曲阳县| 宿松县| 临西县| 甘泉县| 巴林左旗| 辰溪县| 临漳县| 福安市| 毕节市| 淅川县| 通州区| 密山市| 聊城市| 醴陵市| 澄江县| 旬邑县| 大竹县| 福贡县| 扎赉特旗| 都安| 视频| 盐源县| 五指山市| 堆龙德庆县| 洛宁县| 运城市| 葵青区| 东台市| 新民市| 雅安市| 册亨县| 渭南市| 察隅县| 临安市| 汝阳县| 道孚县| 青海省| 常州市| 乐陵市| 奉节县| 洛川县|