rerun r-fit-text based on printed slide size, fixes overflow when printing to PDF #2865
This commit is contained in:
		
							
								
								
									
										2
									
								
								dist/reveal.esm.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/reveal.esm.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								dist/reveal.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/reveal.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -59,6 +59,10 @@ export default class Print { | ||||
| 				let left = ( pageWidth - slideWidth ) / 2, | ||||
| 					top = ( pageHeight - slideHeight ) / 2; | ||||
|  | ||||
| 				// Re-run the slide layout so that r-fit-text is applied based on | ||||
| 				// the printed slide size | ||||
| 				this.Reveal.slideContent.layout( slide ); | ||||
|  | ||||
| 				let contentHeight = slide.scrollHeight; | ||||
| 				let numberOfPages = Math.max( Math.ceil( contentHeight / pageHeight ), 1 ); | ||||
|  | ||||
|   | ||||
| @@ -167,11 +167,20 @@ export default class SlideContent { | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 		this.layout( slide ); | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Applies JS-dependent layout helpers for the given slide, | ||||
| 	 * if there are any. | ||||
| 	 */ | ||||
| 	layout( slide ) { | ||||
|  | ||||
| 		// Autosize text with the r-fit-text class based on the | ||||
| 		// size of its container. This needs to happen after the | ||||
| 		// slide is visible in order to measure the text. | ||||
| 		Array.from( slide.querySelectorAll( '.r-fit-text:not([data-fitted])' ) ).forEach( element => { | ||||
| 			element.dataset.fitted = ''; | ||||
| 		Array.from( slide.querySelectorAll( '.r-fit-text' ) ).forEach( element => { | ||||
| 			fitty( element, { | ||||
| 				minSize: 24, | ||||
| 				maxSize: this.Reveal.getConfig().height * 0.8, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user