安裝與基本使用
Univer PDFs 是 Univer Office SDK 產品,目前不提供預設。請使用外掛模式建立 PDF 應用程式。
Univer 提供預設模式與外掛模式兩種整合方式。預設模式透過預先組合好的外掛簡化設定,更容易上手;如果需要深度擴充,建議使用外掛模式,依需求組合與設定外掛。
透過外掛模式建立
使用套件管理器
使用支援 ES Module 和 package.json 中 exports 欄位的建置工具。
安裝
Univer 使用 React 建構介面、RxJS 處理資料流,也可以嵌入 Vue 或 Angular 應用程式。請確認已安裝 react、react-dom 和 rxjs 這些 peer dependencies1;下方 Yarn 指令已明確包含它們。
所有 @univerjs/* 和 @univerjs-pro/* 套件應保持相同版本。
pnpm add @univerjs/core @univerjs/design @univerjs/ui @univerjs-pro/license @univerjs-pro/pdfs @univerjs-pro/pdfs-uinpm install @univerjs/core @univerjs/design @univerjs/ui @univerjs-pro/license @univerjs-pro/pdfs @univerjs-pro/pdfs-uiyarn add @univerjs/core @univerjs/design @univerjs/ui @univerjs-pro/license @univerjs-pro/pdfs @univerjs-pro/pdfs-ui react react-dom rxjsbun add @univerjs/core @univerjs/design @univerjs/ui @univerjs-pro/license @univerjs-pro/pdfs @univerjs-pro/pdfs-ui請讓所有 @univerjs/* 和 @univerjs-pro/* 套件保持相同版本。
使用
初始化 Univer 前,先建立容器並設定明確的高度:
<div id="app" style="height: 600px"></div>呼叫 FUniver.newAPI(univer) 前,請引入下方範例使用的 facade 入口。樣式依 @univerjs/design、@univerjs/ui、產品 CSS 的順序引入。
先匯入共用 UI 樣式,再匯入 PDF UI 樣式,並合併應用程式啟用的語言套件:
TypeScriptimport { UniverLicensePlugin } from '@univerjs-pro/license'import { UniverPdfsPlugin } from '@univerjs-pro/pdfs'import { UniverPdfsUIPlugin } from '@univerjs-pro/pdfs-ui'import PdfsUIEnUS from '@univerjs-pro/pdfs-ui/locale/en-US'import { LocaleType, mergeLocales, Univer } from '@univerjs/core'import { FUniver } from '@univerjs/core/facade'import DesignEnUS from '@univerjs/design/locale/en-US'import { UniverUIPlugin } from '@univerjs/ui'import UIEnUS from '@univerjs/ui/locale/en-US'import '@univerjs/design/lib/index.css'import '@univerjs/ui/lib/index.css'import '@univerjs-pro/pdfs-ui/lib/index.css'匯入 PDF Facade2 入口。這個副作用匯入會向
FUniver加入 PDF 方法和列舉:TypeScriptimport '@univerjs-pro/pdfs/facade'建立執行階段、註冊明確的外掛堆疊,然後建立 PDF:
TypeScriptconst univer = new Univer({ locale: LocaleType.EN_US, locales: { [LocaleType.EN_US]: mergeLocales( DesignEnUS, UIEnUS, PdfsUIEnUS, ), },})univer.registerPlugin(UniverUIPlugin, { container: 'app' })univer.registerPlugin(UniverLicensePlugin, { license: process.env.CLIENT_LICENSE_TEXT,})univer.registerPlugin(UniverPdfsPlugin)univer.registerPlugin(UniverPdfsUIPlugin)const univerAPI = FUniver.newAPI(univer)univerAPI.createPdf({ name: 'Untitled PDF' })
univer.registerPlugin 與 univer.registerPlugins 方法
univer.registerPlugin 用於將外掛註冊到 Univer 實例。可於建立實例後呼叫。
使用方式:univer.registerPlugin(Plugin, options),其中 Plugin 為外掛類別,options 為該外掛的(可選)設定。
亦可透過 univer.registerPlugins 傳入陣列,一次性註冊多個外掛,便於集中管理:
univer.registerPlugins([ [UniverUIPlugin, { container: 'app' }], [UniverLicensePlugin, { license: process.env.CLIENT_LICENSE_TEXT, }], UniverPdfsPlugin, UniverPdfsUIPlugin,])行動裝置支援
目前 @univerjs-pro/pdfs-ui 沒有匯出獨立的行動版 UI 外掛。請勿使用不存在的 MobileUIPlugin 匯入或 mobile: true 選項。縮窄容器不代表已完整支援觸控互動,請在目標裝置上驗證既有 UI。
選用的縮圖 Worker
無需額外設定,頁面縮圖也可以在主執行緒呈現。對於較大的文件,可透過 thumbnailWorkerURL 提供專用模組 Worker。
建立一個 Worker 入口,例如 pdf-thumbnail.worker.ts:
import { startPdfPageThumbnailWorker } from '@univerjs-pro/pdfs-ui'startPdfPageThumbnailWorker()註冊 PDF UI 外掛時傳入其 URL:
univer.registerPlugin(UniverPdfsUIPlugin, { thumbnailWorkerURL: new Worker(new URL('./pdf-thumbnail.worker.ts', import.meta.url), { type: 'module' }),})此選項也接受字串 URL 或現有的 Worker。如果 Worker 或 OffscreenCanvas 無法使用,縮圖呈現會退回主執行緒。
採用協作的編輯
@univerjs-pro/pdfs-editor 不屬於僅在本機執行的外掛程式堆疊。不要單獨註冊它:請先依照協作文件安裝並註冊完整的 @univerjs-pro/collaboration、@univerjs-pro/collaboration-client 和 @univerjs-pro/collaboration-client-ui 外掛程式堆疊,再安裝並註冊 PDF 編輯器生命週期外掛程式。
Node.js 用法
Node.js 服務只需註冊 UniverPdfsPlugin,不需要瀏覽器 UI 套件。僅當服務需要載入或同步已持久化的 PDF 單元時,才加入上述完整協作外掛程式堆疊。
其他發佈版本
除穩定版外,Univer 亦提供 alpha / beta 通道。這些版本可讓你搶先體驗未正式釋出的新功能;但請注意,功能更多同時代表風險更高,可能包含錯誤、未完成或不穩定特性。生產環境請謹慎使用。
Alpha / Beta 版本
當團隊完成新功能或重大調整,可能會預先發佈於 alpha 或 beta 通道。可用以下指令安裝:
pnpm add @univerjs-pro/pdfs@alpha # Alpha 版本
pnpm add @univerjs-pro/pdfs@beta # Beta 版本npm install @univerjs-pro/pdfs@alpha # Alpha 版本
npm install @univerjs-pro/pdfs@beta # Beta 版本yarn add @univerjs-pro/pdfs@alpha # Alpha 版本
yarn add @univerjs-pro/pdfs@beta # Beta 版本bun add @univerjs-pro/pdfs@alpha # Alpha 版本
bun add @univerjs-pro/pdfs@beta # Beta 版本若於使用 alpha / beta 過程遇到問題或有建議,歡迎透過 GitHub Issues 回報。
祝你搶先體驗愉快!
下一步
Footnotes
你覺得這篇文檔如何?