Ich erkunde die PDFsharp-Bibliothek und habe Probleme mit dem Kennwortschutz PDFs.PDFsharp 1.50 beta 3: Leere Besitzer Passwort-Fehler beim Hinzufügen eines Passwortes zu PDF
Nach diesem Beispiel auf ihrer Website http://www.pdfsharp.com/PDFsharp/index.php?option=com_content&task=view&id=36&Itemid=47,
Hier ist mein Code
try
{
string filename = "hi.pdf";
File.Copy(Path.Combine("C:/User/Ichigo/Desktop", filename),
Path.Combine(Directory.GetCurrentDirectory(), filename), true);
PdfDocument document = PdfReader.Open(filename, "some text");
PdfSecuritySettings securitySettings = document.SecuritySettings;
securitySettings.UserPassword="user";
securitySettings.OwnerPassword="owner";
securitySettings.PermitAccessibilityExtractContent = false;
securitySettings.PermitAnnotations = false;
securitySettings.PermitAssembleDocument = false;
securitySettings.PermitExtractContent = false;
securitySettings.PermitFormsFill = true;
securitySettings.PermitFullQualityPrint = false;
securitySettings.PermitModifyDocument = true;
securitySettings.PermitPrint = false;
document.Save(filename);
}
catch (Exception e)
{ throw new Exception("Something went wrong : " + e); }
Jedes Mal, wenn ich den Code hinzufügen, die die Passwörter setzt:
securitySettings.UserPassword="user";
securitySettings.OwnerPassword="owner";
ich System.NullReferenceException: Object reference not set to an instance of an object.
wenn ich erreichen die Zeile, die das PDF speichert
Dokument.Speichern (Dateiname); Ich erhalte auch Fehlermeldungen
---- DEBUG ASSERTION FAILED ----
---- Assert Short Message ----
Empty owner password.
---- Assert Long Message ----
at PdfSharp.Pdf.Security.PdfStandardSecurityHandler.PrepareEncryption() in c:\Users\Ichigo\Downloads\PDFsharp-MigraDocFoundation-1_50-beta3b\PDFsharp\src\PdfSharp\Pdf.Security\PdfStandardSecurityHandler.cs:line 590
at PdfSharp.Pdf.PdfDocument.DoSave(PdfWriter writer) in c:\Users\Ichigo\Downloads\PDFsharp-MigraDocFoundation-1_50-beta3b\PDFsharp\src\PdfSharp\Pdf\PdfDocument.cs:line 392
at PdfSharp.Pdf.PdfDocument.Save(Stream stream, Boolean closeStream) in c:\Users\Ichigo\Downloads\PDFsharp-MigraDocFoundation-1_50-beta3b\PDFsharp\src\PdfSharp\Pdf\PdfDocument.cs:line 325
at PdfSharp.Pdf.PdfDocument.Save(Stream stream) in c:\Users\Ichigo\Downloads\PDFsharp-MigraDocFoundation-1_50-beta3b\PDFsharp\src\PdfSharp\Pdf\PdfDocument.cs:line 352
at PdfSharp.Pdf.PdfDocument.Save(String path) in c:\Users\Ichigo\Downloads\PDFsharp-MigraDocFoundation-1_50-beta3b\PDFsharp\src\PdfSharp\Pdf\PdfDocument.cs:line 258
Warum erhalte ich diese Fehler zu bekommen?
Bearbeiten- hier ist der Stack-Trace für die System.NullReferenceException.
Something went wrong : `System.NullReferenceException: Object reference not set to an instance of an object.`
at PdfSharp.Pdf.Security.PdfStandardSecurityHandler.SetHashKey(PdfObjectID id)
at PdfSharp.Pdf.IO.PdfWriter.WriteBeginObject(PdfObject obj)
at PdfSharp.Pdf.PdfDictionary.WriteObject(PdfWriter writer)
at PdfSharp.Pdf.PdfPage.WriteObject(PdfWriter writer)
at PdfSharp.Pdf.PdfDocument.DoSave(PdfWriter writer)
at PdfSharp.Pdf.PdfDocument.Save(Stream stream, Boolean closeStream)
at PdfSharp.Pdf.PdfDocument.Save(Stream stream)
at PdfSharp.Pdf.PdfDocument.Save(String path)
Sie erhalten nur eine Fehlermeldung: "System.NullReferenceException". Sie zeigen eine Stapelüberwachung für diesen Fehler nicht an. Tritt der Fehler bei allen PDF-Dateien auf, z. die HelloWorld.pdf, die mit dem Beispielcode ausgeliefert wird? Wenn nicht, geben Sie bitte Ihre Hi.pdf an, um den Fehler reproduzierbar zu machen. Erhalten Sie die Bestätigungsnachricht nach der Fehlermeldung? Die Nachricht, die zuerst angezeigt wird, muss zuerst untersucht werden. –
Ich habe nicht daran gedacht, die PDFs zu überprüfen, da der Fehler bei HelloWorld.pdf nicht auftritt. Hier ist Hi.pdf https://www.dropbox.com/s/tby9bvw2h60xyj1/hi.pdf?dl=0. Ich bekomme die Assertion-Nachricht vor der Fehlermeldung. – Ichigo