前端下載PDF的完整實現

一、使用PDF.js預覽和下載PDF文件

Pdf.js是一個由Mozilla開發的JavaScript庫,可以在Web上直接預覽PDF文件。它提供了比瀏覽器默認的預覽PDF更多的功能,如縮放、旋轉、打印等。

在這裡,我們可以使用Pdf.js輕鬆實現PDF預覽和下載:


<script src="https://mozilla.github.io/pdf.js/build/pdf.js"></script>


<div id="pdf-container"></div>

<script>
  // 遠程 PDF 文件 URL
  const pdfUrl = 'https://example.com/file.pdf';

  // 獲取 DOM 元素
  const container = document.querySelector('#pdf-container');

  // 加載 PDF 文件
  pdfjsLib.getDocument(pdfUrl).promise.then(pdf => {
    // 獲取第 1 頁
    return pdf.getPage(1);
  }).then(page => {
    // 設置縮放比例
    const scale = 1.5;

    // 獲取 canvas 渲染上下文
    const canvas = document.createElement('canvas');
    const context = canvas.getContext('2d');
    canvas.width = page.view[2] * scale;
    canvas.height = page.view[3] * scale;
    container.appendChild(canvas);

    // 渲染頁面
    page.render({
      canvasContext: context,
      viewport: page.getViewport({ scale }),
    });

    // 創建下載按鈕
    const downloadBtn = document.createElement('a');
    downloadBtn.href = pdfUrl;
    downloadBtn.download = 'file.pdf';
    downloadBtn.textContent = 'Download';

    // 將下載按鈕添加到 DOM 中
    container.appendChild(downloadBtn);
  });
</script>

二、使用jsPDF生成PDF文件並下載

jsPDF是一個純JavaScript庫,它可以在客戶端創建PDF文件。它不需要服務器處理,只需要在客戶端生成即可。

我們可以通過以下代碼使用jsPDF生成並下載PDF文件:

// 引入 jsPDF 庫
import jsPDF from 'jspdf';

// 創建 PDF 對象
const doc = new jsPDF();

// 添加內容
doc.text('Hello, jsPDF!', 10, 10);

// 下載文件
doc.save('file.pdf');

除了文本之外,jsPDF還支持更多的內容類型,如圖像、表格等,使PDF生成更加豐富。

三、使用pdfmake生成高質量PDF文件

pdfmake是一個比jsPDF功能更強大的JavaScript庫,可以用於生成高質量的PDF文件。它支持更多的樣式和內容類型,如Markdown、HTML、表格、圖像等。此外,它還提供了更多的排版和布局選項。

我們可以使用pdfmake在線預覽和生成PDF文件,或者將其集成到我們的應用程序中,生成和下載PDF文件。

以下是一個使用pdfmake創建PDF文件的示例:

// 引入 pdfmake 庫
import pdfMake from 'pdfmake';

// 創建 doc 定義對象
const docDefinition = {
  content: [
    { text: 'This is a heading', style: 'header' },
    'This is a paragraph',
    {
      ul: [
        'Item 1',
        'Item 2',
        'Item 3',
      ]
    }
  ],
  styles: {
    header: {
      fontSize: 22,
      bold: true,
      margin: [0, 0, 0, 10],
    },
  },
};

// 創建 PDF 文檔
const doc = pdfMake.createPdf(docDefinition);

// 下載 PDF 文件
doc.download('file.pdf');

四、結語

在前端應用中,PDF文件廣泛應用於打印、掃描、閱讀、表單提交等場景。本篇文章介紹了3種前端下載PDF的方法,通過使用不同的庫和工具都可以生成和下載PDF文件。

通過學習和應用這些庫和工具,我們可以在前端應用中更好地使用和處理PDF文件,滿足各種業務需求和用戶需求。

原創文章,作者:AVKQW,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/332044.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
AVKQW的頭像AVKQW
上一篇 2025-01-20 14:11
下一篇 2025-01-20 14:11

相關推薦

  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • Python基礎教程第三版PDF下載

    熟練掌握Python編程語言可以讓你輕鬆地用代碼解決很多問題,Python基礎教程第三版是一本適合初學者的Python教程。本文將從幾個方面詳細介紹Python基礎教程第三版PDF…

    編程 2025-04-29
  • 打造照片漫畫生成器的完整指南

    本文將分享如何使用Python編寫一個簡單的照片漫畫生成器,本文所提到的所有代碼和技術都適用於初學者。 一、環境準備 在開始編寫代碼之前,我們需要準備一些必要的環境。 首先,需要安…

    編程 2025-04-29
  • 使用Spire.PDF進行PDF文檔處理

    Spire.PDF是一款C#的PDF庫,它可以幫助開發者快速、簡便地處理PDF文檔。本篇文章將會介紹Spire.PDF庫的一些基本用法和常見功能。 一、PDF文檔創建 創建PDF文…

    編程 2025-04-29
  • Python中文版下載官網的完整指南

    Python是一種廣泛使用的編程語言,具有簡潔、易讀易寫等特點。Python中文版下載官網是Python學習和使用過程中的重要資源,本文將從多個方面對Python中文版下載官網進行…

    編程 2025-04-29
  • 服務器安裝Python的完整指南

    本文將為您提供服務器安裝Python的完整指南。無論您是一位新手還是經驗豐富的開發者,您都可以通過本文輕鬆地完成Python的安裝過程。以下是本文的具體內容: 一、下載Python…

    編程 2025-04-29
  • Python零基礎PDF下載

    本文將為大家介紹如何使用Python下載PDF文件,適合初學者上手實踐。 一、安裝必要的庫 在Python中,我們需要使用urllib和requests庫來獲取PDF文件的鏈接,並…

    編程 2025-04-29
  • 智能風控 Python金融風險PDF

    在金融交易領域,風險控制是一項重要任務。智能風控是指通過人工智能技術和算法模型,對金融交易進行風險識別、風險預警、風險控制等操作。Python是一種流行的編程語言,具有方便、易用、…

    編程 2025-04-29
  • 微信小程序和Python數據交互完整指南

    本篇文章將從多個方面介紹如何在微信小程序中實現與Python的數據交互。通過本文的學習,您將掌握如何將微信小程序與後台Python代碼結合起來,實現更豐富的功能。 一、概述 微信小…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows服務器上的日誌,並將其發送到遠程服務器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29

發表回復

登錄後才能評論