Características principales

Información de complementos

El núcleo de Univer PDFs proporciona una unidad PDF formal, una capa de edición persistente y un espacio de trabajo en el navegador. El PDF importado se conserva como referencia de origen, mientras que los cambios aceptados se guardan en la instantánea de la unidad y se renderizan como el documento actual.

Funciones

  • Modelo de unidad PDF: almacena el documento de origen, la estructura de páginas, los recursos y la intención de edición persistente en IPdfUnitData.
  • Operaciones de páginas y elementos: admite la navegación e inserción de páginas, además de texto, listas, tablas, imágenes, divisores y anotaciones editables.
  • Espacio de trabajo del navegador: proporciona renderizado de páginas PDF, miniaturas, selección, controles de edición, portapapeles e interfaz de inspección.
  • Canal de comandos: aplica los cambios aceptados mediante comandos y lotes de mutaciones persistentes para que guardar, deshacer y rehacer compartan un solo modelo.
  • Facade API: crea, busca, edita y guarda unidades PDF mediante objetos de PDF, página, elemento y texto nativo.

Modo plugin

Instalación

Shell
pnpm add @univerjs/core @univerjs/design @univerjs/ui @univerjs-pro/license @univerjs-pro/pdfs @univerjs-pro/pdfs-ui

Uso

TypeScript
import { 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-pro/pdfs/facade'import '@univerjs/design/lib/index.css'import '@univerjs/ui/lib/index.css'import '@univerjs-pro/pdfs-ui/lib/index.css'const 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)const pdf = univerAPI.createPdf({ name: 'Untitled PDF' })

UniverPdfsPlugin administra la unidad PDF y los comandos persistentes; UniverPdfsUIPlugin administra el visor del navegador y sus controles de edición. Para una interfaz de solo lectura, usa { editor: { enabled: false } }. Una aplicación colaborativa puede añadir @univerjs-pro/pdfs-editor junto con los plugins de colaboración que requiere.

Modo preestablecido

Univer PDFs no ofrece actualmente un paquete de preset. Crea las aplicaciones PDF en modo plugin.

Controles de edición y vista

Inicio ofrece copiar, cortar, pegar, modo de herramienta y anotaciones. Insertar permite añadir páginas, cuadros de texto, párrafos, listas, tablas, imágenes y separadores. Vista ofrece zoom, pantalla completa, visibilidad de anotaciones y desplazamiento continuo. Al seleccionar texto o una tabla se abren controles contextuales, incluido el inspector y los estilos de tabla. Conserve el valor predeterminado editor.enabled: true de UniverPdfsUIPlugin para usar estos controles de cinta.

Configura menu y ribbonType en el registro existente de UniverUIPlugin. Son opciones de la interfaz compartida, no de UniverPdfsUIPlugin. El ejemplo utiliza los identificadores reales de los menús de PDFs:

Configuración inicial

TypeScript
import type { MenuConfig } from '@univerjs/ui'import { UniverUIPlugin } from '@univerjs/ui'const menu: MenuConfig = {  'ribbon.view': { order: -1 },  'ribbon.start.layout': { order: -1 },  'pdf.menu.tool.highlight': {    order: 1,    gridLayout: { row: 2, column: 1 },  },  'pdf.menu.tool.ink': {    order: 0,    gridLayout: { row: 1, column: 1 },  },}univer.registerPlugin(UniverUIPlugin, { container: 'app', ribbonType: 'grid', menu })

order ordena de menor a mayor las pestañas, grupos o elementos del mismo nivel; no mueve elementos a otro grupo. El identificador del elemento se obtiene de su atributo data-u-command y no tiene por qué coincidir con el de la orden.

Actualizaciones en ejecución

Importa @univerjs/ui/facade antes de crear univerAPI con FUniver.newAPI(univer). updateMenuConfig() combina los cambios, conserva los campos no especificados y actualiza los menús. La configuración también se aplica a los menús registrados posteriormente.

TypeScript
import '@univerjs/ui/facade'univerAPI.updateMenuConfig({  'pdf.menu.tool.highlight': { gridLayout: { row: 2, column: 1, showLabel: true, width: 96 } },})

gridLayout solo afecta al Ribbon en cuadrícula. Cada grupo tiene dos filas y row y column empiezan en 1. Las coordenadas explícitas determinan la posición: al intercambiar celdas ocupadas, actualiza ambos elementos y no solo order. Los campos opcionales omitidos conservan la configuración o el Schema existente. Consulta IRibbonGridLayout para los tamaños de celda, etiquetas, anchuras y tamaños de icono.

Mantén habilitada la edición en UniverPdfsUIPlugin: editor.enabled: false impide registrar el Ribbon del producto. Las modificaciones de menú no crean botones que no estén registrados.

Los botones personalizados y las entradas de submenú también aceptan order y gridLayout en createMenu() y createSubmenu(); llama a appendTo() para registrarlos. El contenido del menú emergente no utiliza la cuadrícula del Ribbon.

¿Cómo es esta guía?

© 2026 DreamNum Co., Ltd.