Características principales
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
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-uibun add @univerjs/core @univerjs/design @univerjs/ui @univerjs-pro/license @univerjs-pro/pdfs @univerjs-pro/pdfs-uiUso
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.
Orden de menús y disposición en cuadrícula
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
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.
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?