Skip to content

AiPdfViewer

AiPdfViewer 是基于 PDF.js 官方 PDFViewer 生态的新 PDF 预览组件。它和现有 AiPdfPreviewAiFilePreview 完全并行,首版聚焦官方浏览、缩放、搜索、缩略图和全屏能力。

PDF 能力依赖 pdfjs-dist,推荐安装 5.x:

bash
npm install pdfjs-dist

基础用法

vue
<script setup lang="ts">
import { AiPdfViewer } from '@zhiyongui/lingxi-ui/ai-pdf-viewer'
import '@zhiyongui/lingxi-ui/ai-pdf-viewer/style.css'
</script>

<template>
  <AiPdfViewer
    src="/files/PDF.js%20%E5%AE%8C%E6%95%B4%E4%B8%AD%E6%96%87%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C.pdf"
    :height="680"
    show-thumbnails
  />
</template>

示例

Props

属性类型默认值说明
srcstring必填PDF 文件地址。
heightstring | number640预览区域高度。
pdfScale'page-width' | 'page-fit' | 'auto' | number'page-width'初始缩放。
pdfMinScalenumber0.25数字缩放最小值。
pdfMaxScalenumber4数字缩放最大值。
showToolbarbooleantrue是否显示工具栏。
showSearchbooleantrue是否显示内置搜索栏。
showThumbnailsbooleanfalse是否显示缩略图侧栏。
enableTextLayerbooleantrue是否启用 PDF.js 文本层。搜索依赖文本层。
labelsAiPdfViewerLabelsundefined文案覆盖。

Events

事件参数说明
ready-PDF viewer 初始化完成。
errorunknown加载或渲染异常。
loading-changeboolean加载状态变化。
page-changecurrentPage, pageCount当前页变化。
scale-changenumber | string缩放变化。
search-changeAiPdfViewerSearchState搜索状态变化。

Exposes

方法参数说明
scrollToPage(page)number滚动到指定页。
setScale(scale)AiPdfViewerScaleMode设置缩放。
zoomIn()-放大。
zoomOut()-缩小。
search(keyword, options?)string, AiPdfViewerSearchOptions全文搜索。
findNext()-下一条搜索命中。
findPrev()-上一条搜索命中。
clearSearch()-清空搜索。
toggleFullscreen()-切换全屏。
refresh()-重新加载 PDF。

说明

首版不包含业务 bbox 双向定位和标注编辑。需要实体定位、引用来源高亮或标注草稿能力时,继续使用 AiFilePreview / AiPdfPreview;后续会在 AiPdfViewer 上新增独立 overlay 层承载这些业务能力。