本申請(qǐng)屬于計(jì)算機(jī),更具體地,涉及一種基于前端語言生成pdf的方法。
背景技術(shù):
1、隨著各行各業(yè)的發(fā)展,用戶對(duì)pdf文檔的內(nèi)容要求越來越復(fù)雜,不僅要求pdf文檔中包含文本、圖片、表格、圖表等,而且還對(duì)pdf文檔的美觀程度及清晰度都有很高要求。
2、目前基于計(jì)算機(jī)語言生成pdf的技術(shù)手段主要分為兩大類,一種是通過前端實(shí)現(xiàn),前端開發(fā)通過canvas技術(shù)或操作dom技術(shù)生成pdf,但是會(huì)存在pdf內(nèi)容截?cái)嗪蚿df清晰度不夠等問題。另一種是通過后端實(shí)現(xiàn),通過后端實(shí)現(xiàn)可生成高保真pdf文檔,但是后端要生成滿足用戶復(fù)雜需求的pdf文檔就必須很熟悉前端開發(fā)技術(shù),這增加了后端開發(fā)的學(xué)習(xí)成本??傮w來說,現(xiàn)階段要想生成一份復(fù)雜且高保真的pdf文檔比較困難。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本申請(qǐng)?zhí)峁┝艘环N基于前端語言生成pdf的方法,其目的在于解決現(xiàn)階段生成復(fù)雜且高保真pdf文檔過于困難的技術(shù)問題。
2、為實(shí)現(xiàn)上述目的,第一方面,本申請(qǐng)?zhí)峁┝艘环N基于前端語言生成pdf的方法,包括:
3、依據(jù)代碼類型將待處理前端語言的代碼、動(dòng)態(tài)數(shù)據(jù)和代碼依賴項(xiàng)寫入服務(wù)端;
4、通過服務(wù)端渲染技術(shù)將所述代碼和動(dòng)態(tài)數(shù)據(jù)渲染成html代碼;
5、將所述代碼依賴項(xiàng)和html代碼插入到html模板中對(duì)應(yīng)位置形成html頁面;
6、對(duì)html頁面進(jìn)行水合;
7、訪問所述html頁面并生成待處理前端語言對(duì)應(yīng)的pdf文件。
8、優(yōu)選的,依照代碼類型生成渲染文件和水合文件;調(diào)用所述渲染文件通過服務(wù)端渲染技術(shù)將所述代碼和動(dòng)態(tài)數(shù)據(jù)渲染成html代碼;調(diào)用所述水合文件對(duì)html頁面進(jìn)行水合。
9、優(yōu)選的,依據(jù)代碼類型將前端語言的代碼寫入服務(wù)端,具體為:
10、若前端語言的代碼類型為html,則將html代碼以字符形式寫入服務(wù)端;
11、若前端語言的代碼類型為ejs,則使用ejs模板引擎將ejs代碼渲染成html后以字符形式寫入服務(wù)端;
12、若前端語言的代碼類型為react、preact、solid、vue或svelte,則直接將對(duì)應(yīng)代碼寫入服務(wù)端。
13、優(yōu)選的,若前端語言的代碼類型為react、preact、solid、vue或svelte,則直接將對(duì)應(yīng)代碼寫入服務(wù)端,并將對(duì)應(yīng)代碼的插件引入配置文件。
14、優(yōu)選的,將所述代碼和動(dòng)態(tài)數(shù)據(jù)渲染成html代碼前,將配置文件、啟動(dòng)服務(wù)文件、項(xiàng)目依賴項(xiàng)和html模板寫入服務(wù)端。
15、優(yōu)選的,將所述代碼和動(dòng)態(tài)數(shù)據(jù)渲染成html代碼前,執(zhí)行啟動(dòng)服務(wù)文件,啟動(dòng)服務(wù)。
16、優(yōu)選的,將所述代碼和動(dòng)態(tài)數(shù)據(jù)渲染成html代碼前,安裝項(xiàng)目依賴項(xiàng)。
17、優(yōu)選的,通過瀏覽器訪問html頁面并生成pdf文件。
18、第二方面,本申請(qǐng)?zhí)峁┮环N電子設(shè)備,包括:存儲(chǔ)器,用于存儲(chǔ)程序;處理器,用于執(zhí)行存儲(chǔ)器存儲(chǔ)的程序,當(dāng)存儲(chǔ)器存儲(chǔ)的程序被執(zhí)行時(shí),處理器用于執(zhí)行第一方面中任一所述的方法。
19、第三方面,本申請(qǐng)?zhí)峁┮环N存儲(chǔ)介質(zhì),存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)計(jì)算機(jī)程序在處理器上運(yùn)行時(shí),使得處理器執(zhí)行第一方面中任一所述的方法。
20、總體而言,通過本申請(qǐng)所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下有益效果:
21、本申請(qǐng)方案在服務(wù)端通過服務(wù)端渲染技術(shù)將各種前端代碼渲染成html頁面,再通過訪問html頁面生成高保真pdf文檔。采用本申請(qǐng)方案無需熟練掌握各類型前端語言,也可以輕松生成復(fù)雜且高保真pdf文檔。同時(shí),本申請(qǐng)技術(shù)方案支持目前所有流行的前端語言。
1.一種基于前端語言生成pdf的方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,依照代碼類型生成渲染文件和水合文件;調(diào)用所述渲染文件通過服務(wù)端渲染技術(shù)將所述代碼和動(dòng)態(tài)數(shù)據(jù)渲染成html代碼;調(diào)用所述水合文件對(duì)html頁面進(jìn)行水合。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,依據(jù)代碼類型將前端語言的代碼寫入服務(wù)端,具體為:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,若前端語言的代碼類型為react、preact、solid、vue或svelte,則直接將對(duì)應(yīng)代碼寫入服務(wù)端,并將對(duì)應(yīng)代碼的插件引入配置文件。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述代碼和動(dòng)態(tài)數(shù)據(jù)渲染成html代碼前,將配置文件、啟動(dòng)服務(wù)文件、項(xiàng)目依賴項(xiàng)和html模板寫入服務(wù)端。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述代碼和動(dòng)態(tài)數(shù)據(jù)渲染成html代碼前,執(zhí)行啟動(dòng)服務(wù)文件,啟動(dòng)服務(wù)。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述代碼和動(dòng)態(tài)數(shù)據(jù)渲染成html代碼前,安裝項(xiàng)目依賴項(xiàng)。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,通過瀏覽器訪問html頁面并生成pdf文件。
9.一種電子設(shè)備,其特征在于,包括:
10.一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,當(dāng)所述計(jì)算機(jī)程序在處理器上運(yùn)行時(shí),使得所述處理器執(zhí)行權(quán)利要求1-8中任一所述的方法。