Implements the print permission
This commit is contained in:
		
							parent
							
								
									51c81a1d01
								
							
						
					
					
						commit
						729b82359a
					
				| @ -542,6 +542,7 @@ var PDFDocument = (function PDFDocumentClosure() { | ||||
|       var docInfo = { | ||||
|         PDFFormatVersion: this.pdfFormatVersion, | ||||
|         IsTextCopyDisabled: encrypt ? encrypt.disableTextCopy : false, | ||||
|         IsPrintDisabled: encrypt ? encrypt.disablePrint : false, | ||||
|         IsAcroFormPresent: !!this.acroForm | ||||
|       }; | ||||
|       if (this.xref.trailer.has('Info')) { | ||||
|  | ||||
| @ -562,6 +562,7 @@ var CipherTransformFactory = (function CipherTransformFactoryClosure() { | ||||
|     var userPassword = stringToBytes(dict.get('U')); | ||||
|     var flags = dict.get('P'); | ||||
|     this.disableTextCopy = !(flags & 16); | ||||
|     this.disablePrint = !(flags & 4); | ||||
|     var revision = dict.get('R'); | ||||
|     var encryptMetadata = algorithm == 4 &&  // meaningful when V is 4
 | ||||
|       dict.get('EncryptMetadata') !== false; // makes true as default value
 | ||||
|  | ||||
| @ -1358,6 +1358,10 @@ canvas { | ||||
|     margin: 0; | ||||
|   } | ||||
| 
 | ||||
|   #viewerContainer.print-protection { | ||||
|     display: none; | ||||
|   } | ||||
| 
 | ||||
|   .page { | ||||
|     float: left; | ||||
|     display: none; | ||||
|  | ||||
| @ -1360,6 +1360,20 @@ var PDFView = { | ||||
|         document.getElementById('viewerContainer').classList | ||||
|           .remove('copy-protection'); | ||||
|       } | ||||
| 
 | ||||
|       if (info.IsPrintDisabled) { | ||||
|         if (PDFView.supportsPrinting) { | ||||
|           document.getElementById('print').classList.add('hidden'); | ||||
|         } | ||||
|         document.getElementById('viewerContainer').classList | ||||
|           .add('print-protection'); | ||||
|       } else { | ||||
|         if (PDFView.supportsPrinting) { | ||||
|           document.getElementById('print').classList.remove('hidden'); | ||||
|         } | ||||
|         document.getElementById('viewerContainer').classList | ||||
|           .remove('print-protection'); | ||||
|       } | ||||
|     }); | ||||
|   }, | ||||
| 
 | ||||
| @ -1626,6 +1640,9 @@ var PDFView = { | ||||
|   }, | ||||
| 
 | ||||
|   beforePrint: function pdfViewSetupBeforePrint() { | ||||
|     if (this.documentInfo.IsPrintDisabled) { | ||||
|       return; | ||||
|     } | ||||
|     if (!this.supportsPrinting) { | ||||
|       var printMessage = mozL10n.get('printing_not_supported', null, | ||||
|           'Warning: Printing is not fully supported by this browser.'); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user