PDFsharpライブラリを調べていて、PDFを保護する際に問題が発生しています。私が到達したとき、私はSystem.NullReferenceException: Object reference not set to an instance of an object.
を得るPDFsharp 1.50 beta 3:PDFにパスワードを追加するときにオーナーのパスワードが間違っているエラー
securitySettings.UserPassword="user";
securitySettings.OwnerPassword="owner";
:私はパスワードを設定するコードを追加するたびに自分のウェブサイトhttp://www.pdfsharp.com/PDFsharp/index.php?option=com_content&task=view&id=36&Itemid=47に、この例に続いて
、
ここでは、私のコードは
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); }
ですPDFを保存する行
document.Save(filename); エラーメッセージも表示されます
---- 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
なぜこれらのエラーが発生しますか?
編集 - はここPDFsharp 1.50あなたのコードと間違っベータ3.何も問題がある判明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)
「System.NullReferenceException」というエラーメッセージが1つだけ表示されます。そのエラーのスタックトレースは表示されません。エラーはすべてのPDFファイルで発生しますか?サンプルコードと共に出荷されるHelloWorld.pdf?そうでない場合は、エラーを再現できるようにHi.pdfを提出してください。エラーメッセージの後にアサーションメッセージが表示されますか?最初に表示されるメッセージは、まず調査する必要があります。 –
私は、あなたが疑うように、HelloWorld.pdfでエラーが発生しないと、PDFをチェックするとは思わなかった。こんにちは.pdf https://www.dropbox.com/s/tby9bvw2h60xyj1/hi.pdf?dl=0です。エラーメッセージの前にアサーションメッセージが表示されます。 – Ichigo