OpenXMLSDKv2を使用してプログラムでDOCXファイルを作成しています。ドキュメントの要件の1つは、編集を避けるために保護することです。
これは、次のようなDocumentProtectionオブジェクトを使用して実行されます。
new DocumentProtection
{
Edit = DocumentProtectionValues.ReadOnly,
Enforcement = BooleanValues.One,
CryptographicProviderType = CryptProviderValues.RsaFull,
CryptographicAlgorithmClass = CryptAlgorithmClassValues.Hash,
CryptographicAlgorithmType = CryptAlgorithmValues.TypeAny,
CryptographicAlgorithmSid = 4,
CryptographicSpinCount = 50000,
Hash = hash,
Salt = salt
}
これは、ドキュメントをWord 2007で開くとうまく機能しますが、互換性パックを使用してWord 2003で開くと、パスワードを入力せずに保護を解除できます。
オンラインで読むと、これは「設計上」または少なくとも予想どおりに表示されます。
Word 2003内で表示したときに、パスワード保護をそのまま維持するための賢いアイデアはありますか?