成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何僅使用 JavaScript 將任何 HTML 頁面或表單轉(zhuǎn)化為 PDF文件

開發(fā) 前端
我們一起來了解一下如何僅使用 JavaScript 將任何 HTML 頁面或表單轉(zhuǎn)化為 PDF文件。

使用 jspdf 庫,我們可以輕松地將任何 HTML 頁面或表單轉(zhuǎn)換為 PDF:

例如:

import { jsPDF } from 'jspdf';


const pdfContentEl = document.getElementById('pdf-content');


const doc = new jsPDF();


await doc.html(pdfContentEl.innerHTML).save('test.pdf');

PDF 是一種流行的文件格式,我們用來在不同平臺和設(shè)備上呈現(xiàn)和共享具有固定布局的文檔。

要開始轉(zhuǎn)換,我們使用構(gòu)造函數(shù)創(chuàng)建一個新的 jsPDF 對象。 然后我們調(diào)用 html() 方法,傳遞包含我們想要在 PDF 中的內(nèi)容的元素。 在結(jié)果上,我們調(diào)用 save(),傳遞我們想要的輸出 PDF 文件的名稱。

假設(shè)我們有這樣的 HTML:

<div id="pdf-content">
<h1>Test</h1>
<p>Here's what we're saving to PDF</p>
</div>
<button id="save-pdf">Save PDF</button>

在網(wǎng)頁上有這樣的輸出:

當(dāng)我們點擊“保存 PDF”按鈕時,jsPDF 將從 HTML 元素創(chuàng)建一個新的 PDF 并將其作為文件下載到瀏覽器中。

這是我們打開 PDF 時顯示的內(nèi)容:

安裝 jsPDF

要開始使用 jsPDF 庫,我們可以使用以下命令從 NPM 安裝它:

npm i jspdf

安裝后,我們可以將其導(dǎo)入到 JavaScript 文件中,如下所示:

import { jsPDF } from 'jspdf';

為了讓這個文件在 HTML 中工作,我們可以使用像 Parcel 這樣的模塊捆綁器,這就是我使用的。

使用 Parcel,我們可以像這樣在 HTML 中包含腳本:

<script type="module" src="index.js"></script>

我們可以在腳本中使用 TypeScript 和 ES 模塊導(dǎo)入等現(xiàn)代工具,并且由于 Parcel,它可以正常工作。

在使用 npm install parcel 安裝 Parcel 之后,我們使用 npx parcel my-file.html 運行 HTML。

npm install parcel


npx parcel my-file.html

Parcel 使 HTML 在 localhost:1234 可用,正如您可能在上面的演示中看到的那樣。

自定義 HTML 到 PDF 的轉(zhuǎn)換

jsPDF 構(gòu)造函數(shù)接受一個自定義 PDF 轉(zhuǎn)換過程的選項對象。

例如,方向選項設(shè)置生成的 PDF 的方向。

默認情況下,它是縱向的,但我們可以將其設(shè)置為橫向。

自定義 PDF 方向

const doc = new jsPDF({ orientation: 'landscape' });

圖片

自定義 PDF 單位和尺寸

使用單位和格式選項,我們可以設(shè)置輸出文件中每個 PDF 頁面的單位和尺寸。

const doc = new jsPDF({ orientation: 'l', unit: 'in', format: [4, 2] });

此處我們指定 2 x 4 英寸的橫向?qū)С觥?/p>

將 HTML 表單轉(zhuǎn)換為 PDF

jsPDF 還可以處理 HTML 元素,這些元素的外觀可以根據(jù)用戶交互動態(tài)變化,例如表單輸入。

HTML:

<form id="form">
<input type="email" name="email" id="email" placeholder="Email" />
<br />
<input
type="password"
name="password"
id="password"
placeholder="Password"
/>
<br /><br />
<button type="submit">Submit</button>
</form>
<br />
<button id="save-pdf">Save PDF</button>

JavaScript:

import { jsPDF } from 'jspdf';


const doc = new jsPDF();
const savePdf = document.getElementById('save-pdf');
const formEl = document.getElementById('form');
savePdf.addEventListener('click', async () => {
await doc.html(formEl).save('test.pdf');
});

在網(wǎng)頁中,我們在兩個表單輸入中放入了一些測試值,以查看它們是否顯示在 PDF 輸出中。

圖片

PDF:

圖片

但是,我們無法與 PDF 文件中的表單輸入或按鈕進行交互。

總結(jié)

jsPDF 庫提供了一種將 HTML 內(nèi)容(包括表單)轉(zhuǎn)換為 PDF 格式的便捷方式。 

整個過程非常簡單,我們可以新建一個jsPDF對象,調(diào)用html()方法指定內(nèi)容,然后使用save()方法生成輸出文件。 

此外,我們可以使用方向、單位和格式等選項自定義 PDF 輸出。 

總的來說,使用 jsPDF 簡化了在我們的網(wǎng)絡(luò)應(yīng)用程序中從 HTML 內(nèi)容創(chuàng)建 PDF 文件的過程。

責(zé)任編輯:華軒 來源: web前端開發(fā)
相關(guān)推薦

2024-11-14 08:35:50

JavaScript管道操作符

2018-06-12 15:07:57

IT

2022-08-27 15:27:34

LinuxdockerCompose

2024-04-25 11:40:23

云計算云預(yù)算混合云

2020-09-08 10:08:45

分析

2018-06-20 09:09:09

數(shù)據(jù)存儲信息

2012-07-18 09:41:49

jQuery Mobi

2016-09-06 10:58:31

大數(shù)據(jù)信息

2020-04-22 11:58:34

醫(yī)療保健AI人工智能

2011-03-23 18:14:13

業(yè)務(wù)分析優(yōu)化洞察力

2017-11-14 09:41:18

云計算指標(biāo)轉(zhuǎn)化

2025-05-13 07:00:00

AI投資AI預(yù)算CIO

2019-07-12 12:50:31

數(shù)據(jù)科學(xué)數(shù)據(jù)轉(zhuǎn)化分析

2013-11-29 10:08:19

SDN大數(shù)據(jù)

2015-12-22 11:57:02

數(shù)據(jù)云計算

2014-03-19 10:44:51

Linuxpng圖片

2009-08-04 17:34:27

Erlang的Acto

2021-04-18 18:42:39

機器學(xué)習(xí)數(shù)據(jù)可操作見解

2018-12-23 21:15:54

大數(shù)據(jù)splunk數(shù)據(jù)

2025-07-02 09:06:27

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲视频在线观看 | 午夜精品视频在线观看 | 黄色免费在线观看 | 91在线电影| 国产精品视频网 | 国产精产国品一二三产区视频 | 国产精品久久久久久婷婷天堂 | 久久91av | 色欧美片视频在线观看 | av中文字幕在线 | 在线播放日韩 | 国产成人精品久久二区二区91 | 天堂视频免费 | 日韩爱爱网站 | 99视频免费 | 日本又色又爽又黄的大片 | 国产日韩欧美一区二区 | 97av视频在线| 日韩精品一区二区三区 | 免费观看毛片 | 一级黄色毛片a | 亚洲成人久久久 | 国产9 9在线 | 中文 | 国产精品久久久亚洲 | 成人在线免费 | 97超碰人人草 | 国产在视频一区二区三区吞精 | 99精品欧美一区二区三区 | 天天草天天爱 | 久视频在线 | 伊人久久国产 | 精品日本中文字幕 | 精品不卡 | 婷婷在线视频 | 美女露尿口视频 | 国产一区二区精品在线观看 | 日韩亚洲欧美一区 | 亚洲国产精品第一区二区 | 亚洲成人免费视频 | 久久91精品国产一区二区三区 | av第一页 |