@@ -23,11 +23,35 @@ public void Test_Issue177_Verify_PdfReader_Works()
2323 public void Test_Issue177_Verify_PdfStamper_Works ( )
2424 {
2525 var inputFile = TestUtils . GetPdfsPath ( fileName : "issue177.pdf" ) ;
26- using var outStream = new FileStream ( TestUtils . GetOutputFileName ( ) , FileMode . Create ) ;
27- // PdfReader.AllowOpenWithFullPermissions = true;
26+ var outputFile = TestUtils . GetOutputFileName ( ) ;
27+
28+ var userPassword = "user" ;
29+ var ownerPassword = "owner" ;
30+
31+ ReadEncryptedFileModifyItEncryptItAgain ( outputFile , inputFile , userPassword , ownerPassword ) ;
32+ ReadOutputEncryptedFile ( outputFile , ownerPassword ) ;
33+ }
34+
35+ private static void ReadOutputEncryptedFile ( string outputFile , string ownerPassword )
36+ {
37+ using var reader = new PdfReader ( outputFile , ownerPassword ) ;
38+ Assert . AreEqual ( expected : 1 , reader . NumberOfPages ) ;
39+ }
40+
41+ private static void ReadEncryptedFileModifyItEncryptItAgain ( string outputFile ,
42+ string inputFile ,
43+ string userPassword ,
44+ string ownerPassword )
45+ {
46+ using var outStream = new FileStream ( outputFile , FileMode . Create ) ;
47+
48+ PdfReader . AllowOpenWithFullPermissions = true ;
2849 using var pdfReader = new PdfReader ( inputFile ) ;
2950 using var pdfStamper = new PdfStamper ( pdfReader , outStream ) ;
3051
52+ pdfStamper . SetEncryption ( PdfWriter . ENCRYPTION_AES_256_V3 , userPassword , ownerPassword ,
53+ PdfWriter . ALLOW_PRINTING | PdfWriter . ALLOW_COPY ) ;
54+
3155 var box = pdfReader . GetPageSize ( index : 1 ) ;
3256 var canvas = pdfStamper . GetOverContent ( pageNum : 1 ) ;
3357 canvas . SetRgbColorStroke ( red : 255 , green : 0 , blue : 0 ) ;
0 commit comments