示例#1
0
        /* ----------------------------------------------------------------- */
        ///
        /// AssertPdf
        ///
        /// <summary>
        /// 生成された PDF が有効なものかどうかをチェックします。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        private void AssertPdf(CubePdf.UserSetting setting)
        {
            try
            {
                var password = !string.IsNullOrEmpty(setting.Permission.Password) ? setting.Permission.Password :
                               !string.IsNullOrEmpty(setting.Password) ? setting.Password : string.Empty;

                using (var reader = new CubePdf.Editing.DocumentReader(setting.OutputPath, password))
                {
                    Assert.AreEqual(1, reader.Metadata.Version.Major);
                    Assert.AreEqual(GetMinorVersion(setting.PDFVersion), reader.Metadata.Version.Minor);

                    Assert.AreEqual(setting.Document.Title, reader.Metadata.Title);
                    Assert.AreEqual(setting.Document.Author, reader.Metadata.Author);
                    Assert.AreEqual(setting.Document.Subtitle, reader.Metadata.Subtitle);
                    Assert.AreEqual(setting.Document.Keyword, reader.Metadata.Keywords);

                    Assert.AreEqual(setting.Permission.Password, reader.Encryption.OwnerPassword);
                    if (reader.Encryption.Method != Data.EncryptionMethod.Aes256)
                    {   // AES256 の場合、ユーザパスワードを取得できないのでスキップ
                        Assert.AreEqual(setting.Password, reader.Encryption.UserPassword);
                    }
                }
            }
            catch (Exception err) { Assert.Fail(err.ToString()); }
        }
示例#2
0
 /* ----------------------------------------------------------------- */
 ///
 /// CreateDocumentReader
 ///
 /// <summary>
 /// DocumentReader オブジェクトを生成します。
 /// </summary>
 ///
 /// <remarks>
 /// セキュリティ設定が行われている場合は、Permission.Password を
 /// 用いて復号を試みます。全ての試行に失敗した場合、例外が送出
 /// されます。
 /// </remarks>
 ///
 /* ----------------------------------------------------------------- */
 private CubePdf.Editing.DocumentReader CreateDocumentReader(string path)
 {
     try
     {
         var dest = new CubePdf.Editing.DocumentReader(path);
         if (dest.EncryptionStatus != Data.EncryptionStatus.RestrictedAccess)
         {
             return(dest);
         }
         dest.Dispose();
         throw new CubePdf.Data.EncryptionException();
     }
     catch (CubePdf.Data.EncryptionException /* err */)
     {
         if (!string.IsNullOrEmpty(Permission.Password))
         {
             try { return(new Editing.DocumentReader(path, Permission.Password)); }
             catch (CubePdf.Data.EncryptionException /* err */) { }
         }
     }
     throw new ArgumentException(Properties.Resources.EncryptionError);
 }
示例#3
0
 /* ----------------------------------------------------------------- */
 ///
 /// CreateDocumentReader
 /// 
 /// <summary>
 /// DocumentReader オブジェクトを生成します。
 /// </summary>
 /// 
 /// <remarks>
 /// セキュリティ設定が行われている場合は、Permission.Password を
 /// 用いて復号を試みます。全ての試行に失敗した場合、例外が送出
 /// されます。
 /// </remarks>
 ///
 /* ----------------------------------------------------------------- */
 private CubePdf.Editing.DocumentReader CreateDocumentReader(string path)
 {
     try
     {
         var dest = new CubePdf.Editing.DocumentReader(path);
         if (dest.EncryptionStatus != Data.EncryptionStatus.RestrictedAccess) return dest;
         dest.Dispose();
         throw new CubePdf.Data.EncryptionException();
     }
     catch (CubePdf.Data.EncryptionException /* err */)
     {
         if (!string.IsNullOrEmpty(Permission.Password))
         {
             try { return new Editing.DocumentReader(path, Permission.Password); }
             catch (CubePdf.Data.EncryptionException /* err */) { }
         }
     }
     throw new ArgumentException(Properties.Resources.EncryptionError);
 }
示例#4
0
        /* ----------------------------------------------------------------- */
        ///
        /// AssertPdf
        /// 
        /// <summary>
        /// 生成された PDF が有効なものかどうかをチェックします。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        private void AssertPdf(CubePdf.UserSetting setting)
        {
            try
            {
                var password = !string.IsNullOrEmpty(setting.Permission.Password) ? setting.Permission.Password :
                               !string.IsNullOrEmpty(setting.Password) ? setting.Password : string.Empty;

                using (var reader = new CubePdf.Editing.DocumentReader(setting.OutputPath, password))
                {
                    Assert.AreEqual(1, reader.Metadata.Version.Major);
                    Assert.AreEqual(GetMinorVersion(setting.PDFVersion), reader.Metadata.Version.Minor);

                    Assert.AreEqual(setting.Document.Title,    reader.Metadata.Title);
                    Assert.AreEqual(setting.Document.Author,   reader.Metadata.Author);
                    Assert.AreEqual(setting.Document.Subtitle, reader.Metadata.Subtitle);
                    Assert.AreEqual(setting.Document.Keyword,  reader.Metadata.Keywords);

                    Assert.AreEqual(setting.Permission.Password, reader.Encryption.OwnerPassword);
                    if (reader.Encryption.Method != Data.EncryptionMethod.Aes256)
                    {   // AES256 の場合、ユーザパスワードを取得できないのでスキップ
                        Assert.AreEqual(setting.Password, reader.Encryption.UserPassword);
                    }
                }
            }
            catch (Exception err) { Assert.Fail(err.ToString()); }
        }