Hi,
I want to create a PDF file using Aspose.PDF .Net.
I do NOT want to sign the file (digital or electronic signature) but I want
1 : to give alert if file is tampered
2 : to secure it against any change in file contents.
Is this possible?
If yes, How?
Thanks.
Mukund.
@MukundGadre
You can convert the pages to images and create a PDF file containing those images. You can check Convert PDF document article for details.
Dear Mr. Mudassir,
I appreciate your prompt response and thanks for that.
Actually, converting contents in image and then back to PDF file will not allow user to copy selected part of the file. I want my user to be able to selectively copy from my file but the user should not be able to modify the content.
I was thinking of encrypting the file using “Owner” password but not using “User” Password.
Will this help?
Do you foresee any problem in this procedure?
Please guide.
image001.jpg (169 Bytes)
@MukundGadre
Please try the following code which restricts all permissions and encrypts with the owner password. Let us know if this satisfies your requirements.
Document doc = new Document(dataDir + "Sample.PDF");
SaveOptions option = new PdfSaveOptions();
Permissions Permission = new Permissions();
string password = string.Empty;
Permission = Permissions.PrintDocument;
doc.Encrypt(password, null, Permission, CryptoAlgorithm.AESx128);
doc.Save(dataDir + "Secured.PDF", option);
Thanks Mr. Mudassir for your suggestions.
I am trying the code whether it is up to the required level of locking.
In the meantime, I could find that the line
image001.jpg (169 Bytes)
@MukundGadre
Can you please explin this query a little more?
If you pass null in place of password, execution time you get exception. So you have to pass ”" as password parameter.
1 : If you pass null as parameter in place of password, there is run time error “Unassigned object value”. So we have to pass empty string (.e. “”) in place of password.
2 : Also the user password should be “” and the owners password should be a valid authentic password.
image001.jpg (169 Bytes)
image002.jpg (163 Bytes)
@MukundGadre
I am afraid your image attachments are not valid so I request you to attach to forum thread instead of replying via email so that we can address the problem. Please share if suggested approach satisfies your requirements or not?
, I could find that the line
doc.Encrypt(password, null, Permission, CryptoAlgorithm.AESx128);
won’t accept null as parameter and passing “” (empty string) can be accepted by runtime.
Also, the password should be passed as owners password. (second parameter instead of first parameter).
1 : If you pass null as parameter in place of password, there is run time error “Unassigned object value”. So we have to pass empty string (i.e. “”) in place of password.
2 : Also the user password should be “” and the owners password should be a valid authentic password.
@MukundGadre
You can adjust it as under and share your feedback.
doc.Encrypt(password, "password", Permission, CryptoAlgorithm.AESx128);
As mentioned in my pervious communication, it works well if I pass empty string for user password and actual password for owners password parameter.
Thanks for your support.
@MukundGadre
It’s good to know that suggested option has proved to be working on your end.