Impression
La fonctionnalité d’impression permet d’imprimer le contenu d’une feuille de calcul sur papier ou de l’exporter au format PDF pour le consulter hors ligne et le partager.
Mode prédéfini
La fonctionnalité d’impression est incluse dans le préréglage @univerjs/preset-sheets-advanced.
Installation
À l’exécution, le préréglage UniverSheetsAdvancedPreset de @univerjs/preset-sheets-advanced dépend du préréglage
UniverSheetsDrawingPreset. Installez d’abord @univerjs/preset-sheets-drawing.
pnpm add @univerjs/preset-sheets-drawing @univerjs/preset-sheets-advancednpm install @univerjs/preset-sheets-drawing @univerjs/preset-sheets-advancedyarn add @univerjs/preset-sheets-drawing @univerjs/preset-sheets-advancedbun add @univerjs/preset-sheets-drawing @univerjs/preset-sheets-advancedUtilisation
import { UniverSheetsAdvancedPreset } from '@univerjs/preset-sheets-advanced'import UniverPresetSheetsAdvancedEnUS from '@univerjs/preset-sheets-advanced/locales/en-US'import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'import UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'import { UniverSheetsDrawingPreset } from '@univerjs/preset-sheets-drawing'import UniverPresetSheetsDrawingEnUS from '@univerjs/preset-sheets-drawing/locales/en-US'import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'import '@univerjs/preset-sheets-core/lib/index.css'import '@univerjs/preset-sheets-drawing/lib/index.css'import '@univerjs/preset-sheets-advanced/lib/index.css'const { univerAPI } = createUniver({ locale: LocaleType.EN_US, locales: { [LocaleType.EN_US]: mergeLocales( UniverPresetSheetsCoreEnUS, UniverPresetSheetsDrawingEnUS, UniverPresetSheetsAdvancedEnUS, ), }, presets: [ UniverSheetsCorePreset(), UniverSheetsDrawingPreset(), UniverSheetsAdvancedPreset(), ],})Si vous disposez d’une licence commerciale Univer, consultez la section Utiliser une licence côté client pour effectuer la configuration.
Préréglages et configuration
interface IUniverSheetsAdvancedPresetConfig { print?: Partial<IUniverSheetsPrintConfig>}interface IUniverSheetsPrintConfig { /** * Whether to force the watermark to be displayed when printing * @default false */ enforceWatermark?: boolean}Mode extension
Installation
pnpm add @univerjs-pro/sheets-printnpm install @univerjs-pro/sheets-printyarn add @univerjs-pro/sheets-printbun add @univerjs-pro/sheets-printUtilisation
import { UniverSheetsPrintPlugin } from '@univerjs-pro/sheets-print'import SheetsPrintPluginEnUS from '@univerjs-pro/sheets-print/locale/en-US'import { LocaleType, mergeLocales, Univer } from '@univerjs/core'import '@univerjs-pro/sheets-print/lib/index.css'const univer = new Univer({ locale: LocaleType.EN_US, locales: { [LocaleType.EN_US]: mergeLocales( SheetsPrintPluginEnUS, ), },})univer.registerPlugin(UniverSheetsPrintPlugin)Si vous disposez d’une licence commerciale Univer, consultez la section Utiliser une licence côté client pour effectuer la configuration.
Extensions et configuration
interface IUniverSheetsPrintConfig { /** * Whether to force the watermark to be displayed when printing * @default false */ enforceWatermark?: boolean}Prise en charge mobile
Configurez d’abord l’éditeur mobile. Dans l’initialisation en mode plugin de cette page, remplacez les inscriptions de bureau ci-dessous par les exports mobiles des mêmes paquets avant d’ouvrir un document. Conservez modèles, styles, traductions et imports Facade ; n’enregistrez pas les deux variantes.
| Paquet | Inscription de bureau | Inscription mobile |
|---|---|---|
@univerjs-pro/sheets-print | UniverSheetsPrintPlugin | UniverSheetsPrintMobileUIPlugin |
Facade API
Importation
Remarque sur le mode extension
Seul le mode extension nécessite d’importer manuellement le package Facade. Le mode prédéfini inclut déjà le package Facade correspondant, aucune importation supplémentaire n’est donc nécessaire.
import '@univerjs-pro/sheets-print/facade'Ouvrir la boîte de dialogue de configuration de l’impression
Utilisez FWorkbook.openPrintDialog pour ouvrir la boîte de dialogue de configuration de l’impression.
const fWorkbook = univerAPI.getActiveWorkbook()fWorkbook.openPrintDialog()Fermer la boîte de dialogue de configuration de l’impression
Utilisez la méthode FWorkbook.closePrintDialog pour fermer la boîte de dialogue de configuration de l’impression.
const fWorkbook = univerAPI.getActiveWorkbook()fWorkbook.openPrintDialog()// Close the print configuration dialog after 3 secondssetTimeout(() => { fWorkbook.closePrintDialog()}, 3000)Mettre à jour la configuration de la mise en page
Utilisez la méthode FWorkbook.updatePrintConfig(config: ISheetPrintLayoutConfig) pour mettre à jour la configuration de la mise en page.
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const subUnitId = fWorksheet.getSheetId()// Update print layout configfWorkbook.updatePrintConfig({ area: univerAPI.Enum.PrintArea.CurrentSheet, // print current sheet subUnitIds: [subUnitId], paperSize: univerAPI.Enum.PrintPaperSize.A4, // A4 paper size scale: univerAPI.Enum.PrintScale.FitPage, // fit content to page freeze: [univerAPI.Enum.PrintFreeze.Row], // freeze row headers margin: univerAPI.Enum.PrintPaperMargin.Normal, // normal margin // ... other settings})// Start printing with the updated configurationfWorkbook.print()Pour le type complet et les paramètres, consultez FWorkbook.updatePrintConfig().
Mettre à jour la configuration du rendu d’impression
Utilisez la méthode FWorkbook.updatePrintRenderConfig(config: ISheetPrintRenderConfig) pour mettre à jour la configuration du rendu d’impression.
const fWorkbook = univerAPI.getActiveWorkbook()// Update print layout config by defaultfWorkbook.updatePrintConfig({})// Update print render configfWorkbook.updatePrintRenderConfig({gridlines: true, // show gridlineshAlign: univerAPI.Enum.PrintAlign.Middle, // horizontal align middlevAlign: univerAPI.Enum.PrintAlign.Middle, // vertical align middleheaderFooter: [ // the array of header and footer elements to include, here is page numbers and worksheet name univerAPI.Enum.PrintHeaderFooter.PageSize, univerAPI.Enum.PrintHeaderFooter.WorksheetTitle,],// ... other settings})// Start printfWorkbook.print()Pour le type complet et les paramètres, consultez FWorkbook.updatePrintRenderConfig().
Imprimer
La méthode FWorkbook.print permet d’ouvrir directement la boîte de dialogue d’impression.
// Using the default configuration you can pass in an empty objectworkbook.updatePrintConfig({// ... Print layout configuration})workbook.updatePrintRenderConfig({// ... Print render configuration})workbook.print()Enregistrer une capture d’écran dans le presse-papiers
La méthode FWorkbook.saveScreenshotToClipboard permet d’enregistrer dans le presse-papiers l’image des données à imprimer.
Cette fonctionnalité est uniquement disponible avec une licence. Sans licence, son utilisation est restreinte et l’opération d’enregistrement renvoie false.
L’image est enregistrée dans le presse-papiers à l’aide de l’API Clipboard. L’opération peut échouer dans un environnement réseau non sécurisé ou dans un navigateur non compatible. Si elle réussit, elle renvoie true.
const fWorkbook = univerAPI.getActiveWorkbook()const result = await fWorkbook.saveScreenshotToClipboard()Obtenir une capture d’écran de la plage sélectionnée
La méthode FRange.getScreenshot permet d’obtenir une capture d’écran des données à imprimer dans la plage sélectionnée.
Cette fonctionnalité est uniquement disponible avec une licence. Sans licence, son utilisation est restreinte. L’opération d’enregistrement renvoie false en cas d’échec, ou une chaîne base64 contenant l’image en cas de réussite.
const fWorkbook = univerAPI.getActiveWorkbook()const fWorksheet = fWorkbook.getActiveSheet()const fRange = fWorksheet.getRange('A1:D10')fRange.getScreenshot()fRange.getScreenshot({ includeHeaders: true }) // Include row and column headersÉcouteurs d’événements
Les événements suivants sont disponibles pour la fonctionnalité d’impression :
L’événement univerAPI.Event.BeforeSheetPrintOpen est déclenché avant l’ouverture de la boîte de dialogue de configuration de l’impression.
const disposable = univerAPI.addEvent(univerAPI.Event.BeforeSheetPrintOpen, (params) => { const { workbook, worksheet } = params // Cancel open print configuration dialog operation params.cancel = true})// Remove the event listener, use `disposable.dispose()`.L’événement univerAPI.Event.SheetPrintOpen est déclenché après l’ouverture de la boîte de dialogue de configuration de l’impression.
const disposable = univerAPI.addEvent(univerAPI.Event.SheetPrintOpen, (params) => { const { workbook, worksheet } = params})// Remove the event listener, use `disposable.dispose()`.L’événement univerAPI.Event.BeforeSheetPrintConfirm est déclenché avant l’ouverture de la boîte de dialogue de confirmation de l’impression.
const disposable = univerAPI.addEvent(univerAPI.Event.BeforeSheetPrintConfirm, (params) => { const { renderConfig, layoutConfig } = params // Cancel the print confirmation operation params.cancel = true})// Remove the event listener, use `disposable.dispose()`.L’événement univerAPI.Event.SheetPrintConfirmed est déclenché après l’ouverture de la boîte de dialogue de confirmation de l’impression.
const disposable = univerAPI.addEvent(univerAPI.Event.SheetPrintConfirmed, (params) => { const { renderConfig, layoutConfig } = params})// Remove the event listener, use `disposable.dispose()`.L’événement univerAPI.Event.BeforeSheetPrintCanceled est déclenché avant l’annulation de l’impression.
const disposable = univerAPI.addEvent(univerAPI.Event.BeforeSheetPrintCanceled, (params) => { const { renderConfig, layoutConfig } = params // Cancel the print cancel operation params.cancel = true})// Remove the event listener, use `disposable.dispose()`.L’événement univerAPI.Event.SheetPrintCanceled est déclenché après l’annulation de l’impression.
const disposable = univerAPI.addEvent(univerAPI.Event.SheetPrintCanceled, (params) => { const { renderConfig, layoutConfig } = params})// Remove the event listener, use `disposable.dispose()`.Que pensez-vous de ce guide ?