整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          HTML5 的JavaScript 客戶端PDF解決方案-jsPDF

          和往常一樣,jsPDF是一個開源的客戶端的PDF解決方案,在之前的文章中已經(jīng)介紹過幾個Web端和PDF相關的庫,jsPDF同樣是一個不錯的客戶端PDF引 SDK,你可以通過jsPDF在客戶端完成相關操作,它包含了非常豐富的API,幫助你完成一系列的復雜操作!可以說它是相當領先的HTML5客戶端解決方案了!



          Github

          https://github.com/MrRio/jsPDF

          Github star數(shù)17k+,可以說相當受歡迎了!


          安裝使用

          一般情況下我們會考慮使用包管理,常見的就是npm了,因此安裝非常簡單

          npm install jspdf --save
          

          或者也可以使用yarn

          yarn add jspdf
          

          接下來就是制作你的文件的時候了

          默認導出為a4紙張,縱向,使用毫米表示單位


          var doc = new jsPDF()
          doc.text('Hello world!', 10, 10)
          doc.save('a4.pdf')
          

          如果要更改紙張尺寸,方向或單位,可以執(zhí)行以下操作:


          var doc = new jsPDF({
           orientation: 'landscape',
           unit: 'in',
           format: [4, 2]
          })
          doc.text('Hello world!', 1, 1)
          doc.save('two-by-four.pdf')
          

          使用UTF-8 / TTF

          PDF中的14種標準字體僅限于ASCII代碼頁。如果要使用UTF-8,則必須集成自定義字體,該字體提供所需的字形。jsPDF支持.ttf文件。因此,如果你希望在pdf中使用中文文本,則您的字體必須具有必要的中文字形。因此,請檢查您的字體是否支持所需的字形,否則它將顯示空白而不是文本。



          要將字體添加到jsPDF,在/fontconverter/fontconverter.html中使用官網(wǎng)提供的fontconverter。fontconverter將創(chuàng)建一個js文件,其中包含提供的ttf文件的內(nèi)容作為base64編碼的字符串和jsPDF的附加代碼。你只需將生成的js-File添加到項目中即可。然后,就可以在代碼中使用setFont-method并編寫UTF-8編碼文本。



          Angular/Webpack/React等配置

          常規(guī)操作

          import * as jsPDF from 'jspdf'
          

          有些框架,必須像下面這樣

          import jsPDF from 'jspdf';
          


          API

          jsPDF的api非常豐富,在這里就不提供相關地址了,在Github必然找的到,本文重點不在于介紹jsPDF的用法,將部分API截圖展示,通過名稱大致能猜到一些意思,具體用法需要參考官網(wǎng)文檔:













          從截圖來看,其文檔特別的詳細,具體到每一個API在js文件的行數(shù),便于閱讀源代碼,包括參數(shù)以及返回值都非常明確:



          在線DEMO

          官方提供了一個在線demo,可以直接運行代碼,感興趣的可以先嘗試一下:



          總結

          jsPDF是筆者見過類似產(chǎn)品中較為突出的,幾乎涵蓋了所有PDF相關操作,非常詳細的文檔也讓開發(fā)者,輕松上手,在線demo還能快速學習,如果你的項目對PDF的操作比較多,不妨嘗試下jsPDF,唯一需要注意的就是解決字體問題,但是上文也提到過解決方案,感興趣的可以進行體驗!

          于TypeScript的先天優(yōu)勢,TypeScript越來越受歡迎。那問題來了:TypeScript 和 JavaScript 究竟哪個更好?JavaScript真的會敗北嗎?

          作者 | Mahdhi Rezvi

          譯者 | 明明如月,責編 | 郭芮

          以下為譯文:

          你以前可能曾聽說過“TypeScript”這個詞。到現(xiàn)在 2019年,TypeScript 在 GitHub 最常用編程語言排行榜排名第 7 位,在增速最快的編程語言排行榜中占第 5 位。

          TypeScript (TS) 是微軟開發(fā)的一種開源編程語言,可以編譯成 JavaScript (JS) 代碼。自 2012 年發(fā)布以來,這門語言一直保持活躍發(fā)展并且越發(fā)受歡迎。

          在早期,開發(fā)社區(qū)就將 TypeScript 和 Angular 緊密聯(lián)系在一起。盡管用 JS 也不是不行,但是 Angular 強迫你使用 TypeScript。

          TypeScript 和 JavaScript 的區(qū)別是什么?

          Typescript 是 JavaScript 的超集,可以被編譯成 JavaScript 代碼。 用 JavaScript 編寫的合法代碼,在 TypeScript 中依然有效。 Typescript 是純面向?qū)ο蟮木幊陶Z言,包含類和接口的概念。 程序員可以用它來編寫面向?qū)ο蟮姆斩嘶蚩蛻舳顺绦颍⑺鼈兙幾g成 JavaScript 代碼。

          TypeScript和 JavaScript的關系,圖源:GeeksforGeeks

          TypeScript 引入了很多面向?qū)ο蟪绦蛟O計的特征,包括:

          • interfaces 接口

          • classes 類

          • enumerated types 枚舉類型

          • generics 泛型

          • modules 模塊

          主要不同點如下:

          • TS 是一種面向?qū)ο缶幊陶Z言,而 JS 是一種腳本語言(盡管 JS 是基于對象的)。

          • TS 支持可選參數(shù), JS 則不支持該特性。

          • TS 支持靜態(tài)類型,JS 不支持。

          • TS 支持接口,JS 不支持接口。

          為什么要用 TypeScript ?

          • TS 在開發(fā)時就能給出編譯錯誤, 而 JS 錯誤則需要在運行時才能暴露。

          • 作為強類型語言,你可以明確知道數(shù)據(jù)的類型。代碼可讀性極強,幾乎每個人都能理解。

          • TS 非常流行,被很多業(yè)界大佬使用。像 Asana、Circle CI 和 Slack 這些公司都在用 TS。

          為什么不該用 TypeScript ?

          • TS 需要編譯。TS 得通過編譯才能變成 JS 代碼。

          • 隨著時間的推移,類型可能變得非常復雜。當項目不斷變大時這種情況十分常見。

          • 盡管 TS 是類型安全的,在有些情況下編譯器也有檢查不出任何錯誤的情況。當我們修改編譯后的 JS 代碼時,錯誤就不可檢測了。不過隨著編譯器不斷改進,這種情況會越來越少。

          摘要


          JavaScriptTypeScript
          語言腳本語言面向?qū)ο缶幊陶Z言
          學習難度靈活易學需要有腳本編程經(jīng)驗
          類型輕量級解釋編程語言強類型的面向?qū)ο缶幊陶Z言
          客戶端/服務端客戶端服務端都有側重客戶端
          拓展名.js.ts 或 .tsx
          耗時更快編譯代碼需要些時間
          數(shù)據(jù)綁定沒有類型和接口的概念使用類型和接口表示數(shù)據(jù)
          注解不需要注解使用注解才能最大限度發(fā)揮 TypeScript的特性
          語法所有的語句都寫在腳本標簽內(nèi)。瀏覽器將腳本標簽內(nèi)的文本識別為腳本一個 TypeScript 程序由模塊、方法、變量、語句、表達式和注釋構成。
          靜態(tài)類型JS 中沒有靜態(tài)類型的概念支持靜態(tài)類型
          模塊支持不支持模塊支持模塊
          接口沒有接口支持接口
          可選參數(shù)方法不支持支持
          原型沒有這種特性支持原型特性
          開發(fā)者社區(qū)JS 使用范圍很廣,被編程社區(qū)廣泛接受和使用TS 比較新,編程社區(qū)相對較小
          參考選擇小型項目TS 是一種面向?qū)ο笳Z言,代碼更簡潔,可讀性和復用性強。因此 TS 更適合大型項目。

          表格來自:Edureka

          結論

          那問題來了:TypeScript 和 JavaScript 哪個更好?

          由于 TS 的先天優(yōu)勢,TS 越來越受歡迎。但是請記住,TS 最終不可能取代 JS,因為 JS 是 TS 的核心。

          選擇 TypeScript 還是 JavaScript 要由開發(fā)者自己去做決定。如果你喜歡類型安全的語言,那么推薦你選擇 TS。 如果你已經(jīng)用 JS 好久了,你可以選擇走出舒適區(qū)學習 TS,也可以選擇堅持自己的強項,繼續(xù)使用 JS。

          本文到此結束,希望你能有所收獲,輕松快樂的學習。

          原文:https://medium.com/javascript-in-plain-english/is-typescript-the-way-forward-659caa2cb10f

          作者:Mahdhi Rezvi,移動開發(fā)工程師,曼徹斯頓大學計算機專業(yè)本科生,熱衷學習新技術。譯者:明明如月,知名互聯(lián)網(wǎng)公司 Java 高級開發(fā)工程師,CSDN 博客專家。

          本文為 CSDN 翻譯,轉載請注明來源出處。

          慶假期很適合學習點新知識。前幾天有粉絲在后臺問我關于使用 js 開發(fā)后端服務的建議,我給推薦了這一個面向小白的走向全棧開發(fā)工程師的教程。

          關于這個全棧入門教程

          這是一個面向零基礎的基于 JavaScript 語言的全棧開發(fā)教程,教程基于目前流行的前后端分離開發(fā)模式,使用 Vue.js + Node.js 并且通過從實際需求的角度來完成基礎的業(yè)務代碼,沒有過多功能封裝,幾乎都是底層的代碼,通俗易懂,上手容易。

          教程截圖

          關于作者

          這套 JavaScript 全棧教程的作者是廖雪峰,是一位有著超過十年軟件開發(fā)經(jīng)驗的大神,精通 Java / Python / Ruby / Visual Basic / Objective C 等,對開源框架有很深入的研究,著有《Spring 2.0核心技術與最佳實踐》一書,是很多后端開發(fā)工程師非常熟知的業(yè)內(nèi)大神。

          教程目錄

          因為針對的是對 javascript 零基礎的小白用戶,因此這個教程有很大篇幅是 javascript 語言入門。

          • JavaScript簡介
          • 快速入門
          • 函數(shù)
          • 標準對象
          • 面向?qū)ο缶幊?/span>
          • 瀏覽器
          • jQuery
          • 錯誤處理
          • underscore
          • Node.js

          學習建議和感想

          這是我毫無后端開發(fā)經(jīng)驗時學習后端開發(fā)的入門的教程,這套教程讓我學會了如何使用 javascript 來開發(fā)后端 api 接口。而且前面的基礎語法教程,也看得津津有味,復習了很多不會用、不常用但很巧妙的代碼實現(xiàn)。這是我推薦這個教程的最大原因。

          教程截圖

          這個教程除了適合零基礎的小白,我認為這更像一個寫給后端開發(fā)者的、從其他后端語言轉 javascript 的教程,如果像我之前學習的那樣沒有過后端開發(fā)經(jīng)驗,就需要注意幾個問題:

          • 教程涉及的代碼最后自己敲出來實現(xiàn)一遍,看懂并不代表會寫
          • 后端開發(fā)設計的基礎知識很多,建議提前了解數(shù)據(jù)庫、服務器基本知識,學習起來會更順暢
          • 教程中很多關聯(lián)的代碼片段,拷貝出來配合流程圖來理解,會事半功倍

          入門靠老師,修行靠自己。總的來說,這只是一套非常基礎的入門教程,學完后能夠了解前端開發(fā)和后端開發(fā),可以實現(xiàn)簡單的 demo,可以幫助我們學習 koa / egg.js 這類基于 Node.js 的后端開發(fā)框架,但后端開發(fā)需要學習的知識很多,數(shù)據(jù)庫設計、查詢優(yōu)化、架構設計等等,成為一個合格的全棧工程師,路還有很遠。

          教程免費學習說明

          這是一個完全免費的 JavaScript 全棧入門教程,就算完全不懂 js 也能快速入門,在線免費學習。如果想學 js 語法,也可以看看之前推薦過的阮一峰寫的免費 javascript 系統(tǒng)學習入門教程。

          最后祝各位有所收獲,邁進全棧開發(fā)工程師行列。

          關注我,持續(xù)分享高質(zhì)量的免費開源、免費商用的資源。

          ↓↓點擊查看本次分享的網(wǎng)址。

          JavaScript 全棧開發(fā)入門 - 由廖雪峰提供的面向小白的免費在線教程|那些免費的磚


          主站蜘蛛池模板: 人妻无码一区二区三区AV| 国产在线步兵一区二区三区| 麻豆aⅴ精品无码一区二区| 精品一区二区三区在线播放视频| 国产成人av一区二区三区在线| 老熟女五十路乱子交尾中出一区| 精品国产一区二区三区AV性色| 国产精品亚洲一区二区无码| 日本视频一区在线观看免费 | 视频一区二区三区在线观看| 成人区精品一区二区不卡亚洲| 久久4k岛国高清一区二区| 成人免费av一区二区三区| 视频一区二区三区免费观看 | 亚洲av无码一区二区三区网站| 一区二区三区福利视频| 日本免费电影一区| 国产SUV精品一区二区88L| 国产一区在线电影| 免费在线观看一区| 成人国产一区二区三区| 合区精品久久久中文字幕一区 | 老熟妇仑乱视频一区二区| 亚洲综合无码精品一区二区三区| 国产无码一区二区在线| 国产另类ts人妖一区二区三区| 国产福利电影一区二区三区久久久久成人精品综合 | 精品一区二区三区AV天堂| 综合一区自拍亚洲综合图区| 韩国一区二区三区视频| 色噜噜一区二区三区| 中文字幕亚洲一区| 无码国产精成人午夜视频一区二区| 国产精品高清一区二区三区| 日韩好片一区二区在线看| 一区一区三区产品乱码| 国产一区二区三区在线免费观看| 夜色阁亚洲一区二区三区| 中日av乱码一区二区三区乱码 | 日韩一区二区a片免费观看| 亚洲变态另类一区二区三区 |