0

MVC4 フレームワークを使用して iTextSharp のアップロード フォームを作成していますが、ブール値をビットごとの整数に変換しようとして行き詰まりました。

iTextSharp が提供するメソッドは、ビットごとに使用するか、次のように複数のパラメーターを組み合わせます。

    PdfEncryptor.Encrypt(new PdfReader(
                    ms.ToArray()),
                    fs,
                    true, 
                    null, 
                    "Pw", 
                    PdfWriter.ALLOW_COPY | PdfWriter.ALLOW_FILL_IN .......);

ただし、Web フォームに簡単にフックできるように、ブール型のプロパティを使用するようにモデルを定義しました。

internal static class PermissionConstants
{
    public const int NumAllowAssembly = 1024;
    public const int NumAllowCopy = 16;
    public const int NumAllowDegradedPrinting = 4;
    public const int NumAllowFillIn = 256;
    public const int NumAllowModifyAnnotations = 32;
    public const int NumAllowModifyContents = 8;
    public const int NumAllowPrinting = 2052;
    public const int NumAllowScreenReaders = 512;
    public const int NumHideMenubar = 8192;
    public const int NumHideToolbar = 4096;
    public const int NumHideWindowUI = 16384;
}

public class Permissions
{
    public bool AllowAssembly { get; set; }
    public bool AllowCopy { get; set; }
    public bool AllowDegradedPrinting { get; set; }
    public bool AllowFillIn { get; set; }
    public bool AllowModifyAnnotations { get; set; }
    public bool AllowModifyContents { get; set; }
    public bool AllowPrinting { get; set; }
    public bool AllowScreenReaders { get; set; }
    //[System.ComponentModel.DefaultValue(true)]
    public bool HideMenubar { get; set; }
    //[System.ComponentModel.DefaultValue(true)]
    public bool HideToolbar { get; set; }
    //[System.ComponentModel.DefaultValue(true)]
    public bool HideWindowUI { get; set; }

    public Permissions()
    {
        HideMenubar = true;
        HideToolbar = true;
        HideWindowUI = true;
    }
}

問題は、アクセス許可クラスから最初のメソッドに値を送信することです。正しい数を生成するメソッドを作りたいです。誰もこれを行う方法を知っていますか? 整数を追加することは可能ですか?ビット単位または操作と同じ数値になるとは思いません。

4

1 に答える 1

0

次のようenumに、一連の から「フラグ」の組み合わせを作成できます。bool

Permissions p = ...
var res = (p.AllowCopy   ? PdfWriter.ALLOW_COPY : 0)
        | (p.AllowFillIn ? PdfWriter.ALLOW_FILL_IN : 0)
        | // ...and so on.
于 2013-09-12T15:02:15.237 に答える