@@ -68,6 +68,26 @@ export class PdfjsViewerElement extends HTMLElement {
6868 }
6969 }
7070
71+ private appendRuntimeStyle ( styles : string ) {
72+ const doc = this . iframe ?. contentDocument
73+ if ( ! doc ?. head || ! styles ) return
74+
75+ const exists = Array . from ( doc . querySelectorAll ( 'style' ) )
76+ . some ( ( styleNode ) => styleNode . textContent === styles )
77+ if ( exists ) return
78+
79+ const styleElement = doc . createElement ( 'style' )
80+ styleElement . setAttribute ( 'data-pdfjs-viewer-runtime-style' , 'true' )
81+ styleElement . textContent = styles
82+ doc . head . appendChild ( styleElement )
83+ }
84+
85+ private applyQueuedRuntimeStyles ( ) {
86+ this . viewerStyles . forEach ( ( styles ) => {
87+ this . appendRuntimeStyle ( styles )
88+ } )
89+ }
90+
7191 private injectScript ( value : string , type = 'module' ) {
7292 const doc = this . iframe . contentDocument
7393 if ( ! doc ) return
@@ -181,6 +201,7 @@ export class PdfjsViewerElement extends HTMLElement {
181201 const viewerOptions = this . applyViewerOptions ( )
182202 await viewerApp ?. initializedPromise
183203
204+ this . applyQueuedRuntimeStyles ( )
184205 this . applyIframeHash ( )
185206
186207 this . dispatchEvent ( new CustomEvent ( 'initialized' , {
@@ -253,7 +274,9 @@ export class PdfjsViewerElement extends HTMLElement {
253274 }
254275
255276 public async injectViewerStyles ( styles : string ) {
256- if ( styles ) this . viewerStyles . add ( styles )
277+ if ( ! styles ) return
278+ this . viewerStyles . add ( styles )
279+ this . appendRuntimeStyle ( styles )
257280 }
258281}
259282
0 commit comments