国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue3PDF預(yù)覽(vue3-pdf-app)

這篇具有很好參考價值的文章主要介紹了Vue3PDF預(yù)覽(vue3-pdf-app)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

vue3-pdf-app 插件

網(wǎng)站預(yù)覽PDF最佳且最簡單的方式:

<a class="u-pdf" href="pdf url..." target="_blank">PDF FileName</a>

如果需要自定義網(wǎng)頁內(nèi)預(yù)覽,可以采用本PDF預(yù)覽組件(PDFViewer.vue)

本組件基于?vue3-pdf-app@1.0.3?插件進行二次封裝,更適合日常使用需要!

插件支持功能包括但不限于:縮放、旋轉(zhuǎn)、全屏預(yù)覽、打印、下載、內(nèi)容檢索、dark/light主題定制化、側(cè)邊縮略圖、頁碼跳轉(zhuǎn)、本地化配置、多個瀏覽器支持(經(jīng)測試 Google、Firefox、safari 均支持良好)、查看文檔屬性!

其中 dark 和 light 主題均支持自定義覆蓋各個部分顏色變量,從而定制主題樣式!

插件默認語言是English,同時也可定制本地化語言為中文,只需從以下鏈接下載資源文件,使用?<link rel="resource" type="application/l10n" href="path-to-localization-file"> 引入即可:

  • viewer.properties

組件可自定義設(shè)置以下屬性:

  • pdf文件地址(src),類型:string,必傳,默認 ''

  • 預(yù)覽容器寬度(width),類型:number | string,默認 '100%'

  • 預(yù)覽容器高度(height),類型:number | string,默認 '100vh'

  • 頁面默認縮放規(guī)則(pageScale),類型:number | string,默認 'page-fit',自適應(yīng)展示一頁,可選:'page-actual'|'page-width'|'page-height'|'page-fit'|'auto',數(shù)字即代表縮放為:pageScale%

  • 預(yù)覽主題(theme),類型:string,默認 'dark',可選 dark | light

  • 覆蓋pdf文件名(fileName),類型:string,默認 ''

效果如下圖:

theme: dark

Vue3PDF預(yù)覽(vue3-pdf-app)

theme: light

Vue3PDF預(yù)覽(vue3-pdf-app)

①安裝插件:pnpm?i?vue3-pdf-app@1.0.3

②創(chuàng)建PDF預(yù)覽組件PDFViewer.vue:

<script setup lang="ts">
import { computed } from 'vue'
import VuePdfApp from 'vue3-pdf-app'
import 'vue3-pdf-app/dist/icons/main.css'
interface Props {
  src: string|ArrayBuffer // pdf地址
  width?: string|number // 預(yù)覽容器寬度
  height?: string|number // 預(yù)覽容器高度
  pageScale?: number|string // 頁面默認縮放規(guī)則,可選 'page-actual'|'page-width'|'page-height'|'page-fit'|'auto'
  theme?: string // 預(yù)覽主題 可選 dark | light
  fileName?: string // 覆蓋pdf文件名
}
const props = withDefaults(defineProps<Props>(), {
  src: '',
  width: '100%',
  height: '100vh',
  pageScale: 'page-fit', // 默認自適應(yīng)展示一頁
  theme: 'dark',
  fileName: ''
})
const viewerWidth = computed(() => {
  if (typeof props.width === 'number') {
    return props.width + 'px'
  } else {
    return props.width
  }
})
const viewerHeight = computed(() => {
  if (typeof props.height === 'number') {
    return props.height + 'px'
  } else {
    return props.height
  }
})
// emitted only once when Pdfjs library is binded to vue component
// Can be used to set Pdfjs config before pdf document opening.
// function afterCreated (pdfApp: any) {
//   console.log('afterCreated pdfApp:', pdfApp)
// }
// emitted when pdf is opened but pages are not rendered
// function openHandler (pdfApp: any) {
//   console.log('open pdfApp:', pdfApp)
// }
const emit = defineEmits(['loaded'])
// emitted when pdf document pages are rendered. Can be used to set default pages scale
function pagesRendered (pdfApp: any) {
  console.log('pagesRendered pdfApp:', pdfApp)
  emit('loaded', pdfApp)
}
</script>
<template>
  <!-- viewer.properties: 該文件已放置本地,使用相對路徑引入,亦可放置cdn上,使用網(wǎng)絡(luò)路徑引入 -->
  <link rel="resource" type="application/l10n" href="/src/assets/files/viewer.properties">
  <VuePdfApp
    :page-scale="pageScale"
    :theme="theme"
    :style="`width: ${viewerWidth}; height: ${viewerHeight};`"
    :pdf="src"
    :fileName="fileName"
    @pages-rendered="pagesRendered"
    v-bind="$attrs"></VuePdfApp>
</template>
<style lang="less" scoped>
@themeColor: #1677FF;
:deep(*) {
  box-sizing: content-box;
}
// 定制化主題色
.pdf-app.dark {
  --pdf-app-background-color: rgb(83, 86, 89);
  --pdf-sidebar-content-color: rgb(51, 54, 57);
  --pdf-toolbar-sidebar-color: #24364e;
  --pdf-toolbar-color: rgb(50, 54, 57);
  --pdf-loading-bar-color: #606c88;
  --pdf-loading-bar-secondary-color: @themeColor;
  --pdf-find-results-count-color: #d9d9d9;
  --pdf-find-results-count-font-color: #525252;
  --pdf-find-message-font-color: #a6b7d0;
  --pdf-not-found-color: #f66;
  --pdf-split-toolbar-button-separator-color: #fff;
  --pdf-toolbar-font-color: #d9d9d9;
  --pdf-button-hover-font-color: @themeColor;
  --pdf-button-toggled-color: #606c88;
  --pdf-horizontal-toolbar-separator-color: #fff;
  --pdf-input-color: #606c88;
  --pdf-input-font-color: #d9d9d9;
  --pdf-find-input-placeholder-font-color: @themeColor;
  --pdf-thumbnail-selection-ring-color: hsla(0,0%,100%,.15);
  --pdf-thumbnail-selection-ring-selected-color: rgb(147, 179, 242);
  --pdf-error-wrapper-color: #f55;
  --pdf-error-more-info-color: #d9d9d9;
  --pdf-error-more-info-font-color: #000;
  --pdf-overlay-container-color: rgba(0,0,0,.2);
  --pdf-overlay-container-dialog-color: #24364e;
  --pdf-overlay-container-dialog-font-color: #d9d9d9;
  --pdf-overlay-container-dialog-separator-color: #fff;
  --pdf-dialog-button-font-color: #d9d9d9;
  --pdf-dialog-button-color: #606c88;
  :deep(.thumbnail.selected>.thumbnailSelectionRing) {
    background-color: rgb(147, 179, 242);
  }
}
/* for light theme */
.pdf-app.light {
  --pdf-app-background-color: rgb(245,245,245);
  --pdf-sidebar-content-color: rgb(245,245,245);
  --pdf-toolbar-sidebar-color: rgb(190,190,190);
  --pdf-toolbar-color: rgb(225,225,225);
  --pdf-loading-bar-color: #3f4b5b;
  --pdf-loading-bar-secondary-color: #666;
  --pdf-find-results-count-color: #3f4b5b;
  --pdf-find-results-count-font-color: hsla(0,0%,100%,.87);
  --pdf-find-message-font-color: hsla(0,0%,100%,.87);
  --pdf-not-found-color: brown;
  --pdf-split-toolbar-button-separator-color: #000;
  --pdf-toolbar-font-color: rgb(142,142,142);
  --pdf-button-hover-font-color: #666;
  --pdf-button-toggled-color: #3f4b5b;
  --pdf-horizontal-toolbar-separator-color: #000;
  --pdf-input-color: #3f4b5b;
  --pdf-input-font-color: #d9d9d9;
  --pdf-find-input-placeholder-font-color: #666;
  --pdf-thumbnail-selection-ring-color: hsla(208,7%,46%,.7);
  --pdf-thumbnail-selection-ring-selected-color: #3f4b5b;
  --pdf-error-wrapper-color: #f55;
  --pdf-error-more-info-color: #d9d9d9;
  --pdf-error-more-info-font-color: #000;
  --pdf-overlay-container-color: hsla(208,7%,46%,.7);
  --pdf-overlay-container-dialog-color: #6c757d;
  --pdf-overlay-container-dialog-font-color: #d9d9d9;
  --pdf-overlay-container-dialog-separator-color: #000;
  --pdf-dialog-button-font-color: #d9d9d9;
  --pdf-dialog-button-color: #3f4b5b;
  :deep(.thumbnail.selected>.thumbnailSelectionRing) {
    background-color: rgb(105, 105, 105);
  }
}
</style>

③在要使用的頁面引入:文章來源地址http://www.zghlxwxcb.cn/news/detail-419912.html

<script setup lang="ts">
import PDFViewer from './PDFViewer.vue'
// import PDFSrc from '@/assets/files/Markdown.pdf'

// const PDFSrc = new URL('@/assets/files/Markdown.pdf', import.meta.url).href
// pdf document pages are rendered. Can be used to set default pages scale

const PDFSrc = ref('https://cdn.jsdelivr.net/gh/themusecatcher/resources@0.0.3/Markdown.pdf')

function onLoaded (pdfApp: any) {
  console.log('loaded app:', pdfApp)
}
</script>
<template>
  <div>
    <h1>vue3-pdf-app 參考文檔</h1>
    <ul class="m-list">
      <li>
        <a class="u-file"  target="_blank">vue3-pdf-app</a>
      </li>
    </ul>
    <h2 class="mt30 mb10">PDFViewer 基本使用</h2>
    <PDFViewer
      page-scale="page-fit"
      :width="800"
      :height="700"
      theme="dark"
      :src="PDFSrc"
      @loaded="onLoaded" />
  </div>
</template>

到了這里,關(guān)于Vue3PDF預(yù)覽(vue3-pdf-app)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Vue3 實現(xiàn)文件預(yù)覽 Word Excel pdf 圖片 視頻等格式 大全!!!!

    Vue3 實現(xiàn)文件預(yù)覽 Word Excel pdf 圖片 視頻等格式 大全!!!!

    先上效果圖 ? ?插件安裝 先說 word 文件是docx-preview插件 ? ? ? ? ? excel文件是用?xlsx 插件? ?? 介紹后端返回的數(shù)據(jù) 因為在攔截器處 做了對數(shù)據(jù)的處理 最后你調(diào)接口拿到的數(shù)據(jù)是 一個對象 里面包含: url :? blob對象轉(zhuǎn)換的用于訪問 Blob 數(shù)據(jù)的臨時鏈接。這個鏈接可以被用于

    2024年02月07日
    瀏覽(109)
  • vue3管理系統(tǒng)中后臺返回pdf格式的文件流,前端如何預(yù)覽?以及uniapp微信小程序中后臺返回的base64位的pdf文件如何預(yù)覽?

    vue3管理系統(tǒng)中后臺返回pdf格式的文件流,前端如何預(yù)覽?以及uniapp微信小程序中后臺返回的base64位的pdf文件如何預(yù)覽?

    后臺返回的是base64格式的pdf文件,首先需要解析base64文件的插件 image-tools 1 安裝并引入插件 2 封裝預(yù)覽pdf的函數(shù) 3 調(diào)用接口獲取數(shù)據(jù)

    2024年01月18日
    瀏覽(176)
  • vue3 el-upload 上傳附件及預(yù)覽 限制只能上傳一個圖片或者pdf格式的文件

    vue3 el-upload 上傳附件及預(yù)覽 限制只能上傳一個圖片或者pdf格式的文件

    效果如圖 直接看代碼吧 template部分 css部分 js部分

    2024年02月11日
    瀏覽(105)
  • 前端vue3實現(xiàn)本地及在線文件預(yù)覽(含pdf/txt/mp3/mp4/docx/xlsx/pptx)

    前端vue3實現(xiàn)本地及在線文件預(yù)覽(含pdf/txt/mp3/mp4/docx/xlsx/pptx)

    (一)微軟office免費預(yù)覽( 推薦 ) 支持doc/docx/xls/xlsx/ppt/pptx等多種office文件格式的免費預(yù)覽 (二)XDOC文檔預(yù)覽云服務(wù) ?移動端和PC端無插件預(yù)覽PDF、OFD、Word、WPS等多種格式文檔 本地或內(nèi)網(wǎng)預(yù)覽需要借助插件實現(xiàn),pdf、mp3、mp4等主要靠原生標簽或瀏覽器自帶功能,盡量減少

    2024年02月05日
    瀏覽(63)
  • Vue3導(dǎo)出pdf方案

    1.引入兩個依賴 2.在utils文件夾下新建htmlToPdf.js文件 擴展 :還可以傳多個不同容器id 3.來到需要將vue轉(zhuǎn)成pdf的頁面 methods: 擴展 :多個容器不同id 介紹一下純jspdf用法,將一個圖片列表導(dǎo)出為pdf文件,根據(jù)圖片寬高計算在pdf中的位置 jsPDF 是一個基于 HTML5 的客戶端解決方案,用于

    2024年02月16日
    瀏覽(19)
  • vue3 ts 導(dǎo)出PDF jsPDF

    jsPDF 是一個基于?HTML5?的客戶端解決方案,用于生成各種用途的 PDF 文檔。 1、安裝:npm install jspdf ? ? ? ? ? ? ? ? ?npm install --save html2canvas 2、引入:import jsPDF from \\\"jspdf\\\"? ????????????????import html2canvas from \\\'html2canvas\\\' 3、使用

    2024年02月05日
    瀏覽(21)
  • vue3 如何將頁面生成 pdf 導(dǎo)出

    vue3 如何將頁面生成 pdf 導(dǎo)出

    原文鏈接:vue3 如何將頁面生成 pdf 導(dǎo)出 最近工作中有需要將一些前端頁面(如報表頁面等)導(dǎo)出為 pdf 的需求,博主采用的是 html2Canvas + jspdf 。 請閱讀 vue3 如何將頁面生成 pdf 導(dǎo)出

    2024年02月16日
    瀏覽(93)
  • Vue3 -- PDF展示、添加簽名(帶筆鋒)、導(dǎo)出

    Vue3 -- PDF展示、添加簽名(帶筆鋒)、導(dǎo)出

    實現(xiàn)功能的時候采用了兩個方案,主要是第一個方案最后的實現(xiàn)效果并不太理想,但實現(xiàn)起來比較簡單,要求不高時可以使用。 該 DEMO 會一次性加載并展示所有的 PDF 頁面,目的是方便在手機上觀看時上下滑動,如果要做成上一頁下一頁的效果,需要自行實現(xiàn)。 我是用開源項

    2024年02月04日
    瀏覽(20)
  • vue3.2 導(dǎo)出pdf文件或表格數(shù)據(jù)

    要在Vue 3中導(dǎo)出PDF文件,你可以使用第三方庫來處理PDF生成和導(dǎo)出。一個常用的庫是jspdf,它允許你在客戶端或服務(wù)器端生成PDF文檔。 以下是在Vue 3中使用jspdf庫導(dǎo)出PDF文件的基本步驟: 第一步首先,安裝jspdf庫。你可以使用npm或yarn來安裝它: npm install jspdf --save? 或? pnpm in

    2024年02月09日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包