Export Progress IPC Broadcasting & Taskbar Synchronization
Compiling complex publications containing dozens of high-resolution images, embedded typography, vector shapes, and multiple page spreads can take several seconds of processing. In native desktop applications, users expect continuous visual feedback not just inside the application window, but directly in the operating system environment: the Windows taskbar icon showing a progressive green loading fill, the macOS dock icon displaying progress badges, or Linux desktop shells indicating export activity. Version 4.19.9 introduced Inter-Process Communication (IPC) export event broadcasting to bridge in-app document compilation with native operating system indicators.
Native operating system taskbars display live percentage fills while the app compiles HTML, images, and archives.
The IPC Export Event Architecture
To communicate export milestones outside the browser sandbox, Open Publisher introduced a standardized emission helper:
The Emission Helper: In io/export/export.js, window.emitIPCExportEvent(eventName, payload) broadcasts structured event packets to the parent host wrapper.
OP_EXPORT_START: Fired immediately when an export routine begins. Notifies the operating system shell to initialize an active taskbar progress state.
OP_EXPORT_PROGRESS: Broadcasts continuous numeric percentages (0% to 100%) during font harvesting, DOM serialization, asset compression, and file creation.
OP_EXPORT_COMPLETE: Fired upon successful file save or within catch blocks, guaranteeing that OS taskbar progress indicators cleanly clear even if an operation encounters an error.
Integration Across Export Pipelines
IPC progress broadcasting is integrated across all major export formats:
HTML Email & Webpage Export: In exportAsHTML(), progress emissions track font glyph scanning, style inline conversions, and image data bundling.
Pack & Go Production Archives: In packAndGo(), progress events emit continuously while gathering linked fonts, images, document manifests, and compiling the final ZIP archive.
High-Resolution Image Export: In exportAsImage(), start and completion events ensure taskbars reflect active canvas rendering.
Native Desktop Shell Synchronization
Native client wrappers (such as Electron or custom NW.js frames) listen for these IPC messages and invoke native operating system APIs (such as mainWindow.setProgressBar(progress / 100)), providing users with real-time feedback even when working in other applications.
Tip: You can minimize Open Publisher during large publication exports and track progress directly from your Windows taskbar or macOS dock.