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, | 				let left = ( pageWidth - slideWidth ) / 2, | ||||||
| 					top = ( pageHeight - slideHeight ) / 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 contentHeight = slide.scrollHeight; | ||||||
| 				let numberOfPages = Math.max( Math.ceil( contentHeight / pageHeight ), 1 ); | 				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 | 		// Autosize text with the r-fit-text class based on the | ||||||
| 		// size of its container. This needs to happen after the | 		// size of its container. This needs to happen after the | ||||||
| 		// slide is visible in order to measure the text. | 		// slide is visible in order to measure the text. | ||||||
| 		Array.from( slide.querySelectorAll( '.r-fit-text:not([data-fitted])' ) ).forEach( element => { | 		Array.from( slide.querySelectorAll( '.r-fit-text' ) ).forEach( element => { | ||||||
| 			element.dataset.fitted = ''; |  | ||||||
| 			fitty( element, { | 			fitty( element, { | ||||||
| 				minSize: 24, | 				minSize: 24, | ||||||
| 				maxSize: this.Reveal.getConfig().height * 0.8, | 				maxSize: this.Reveal.getConfig().height * 0.8, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user