我知道有幾個DOCX創建/修改接近C#如何使用C#在word 2013中鎖定跟蹤更改(使用密碼)?
的OpenXML,DOCX API等
我已經找到了如何利用開放的XML,以使跟蹤的變化,只是還沒有想出對鎖定跟蹤的更改(單詞2013中的功能)。
我知道有幾個DOCX創建/修改接近C#如何使用C#在word 2013中鎖定跟蹤更改(使用密碼)?
的OpenXML,DOCX API等
我已經找到了如何利用開放的XML,以使跟蹤的變化,只是還沒有想出對鎖定跟蹤的更改(單詞2013中的功能)。
此代碼工作正常,我:
static void Main(string[] args)
{
using (var document = WordprocessingDocument.Open(@"D:\DocTest\Test1.docx", true))
{
AddTrackingLock(document);
}
}
private static void AddTrackingLock(WordprocessingDocument document)
{
var documentSettings = document.MainDocumentPart.DocumentSettingsPart;
var documentProtection = documentSettings
.Settings
.FirstOrDefault(it =>
it is DocumentProtection &&
(it as DocumentProtection).Edit == DocumentProtectionValues.TrackedChanges)
as DocumentProtection;
if (documentProtection == null)
{
var documentProtectionElement = new DocumentProtection();
documentProtectionElement.Edit = DocumentProtectionValues.TrackedChanges;
documentProtectionElement.Enforcement = OnOffValue.FromBoolean(true);
documentSettings.Settings.AppendChild(documentProtectionElement);
}
else
{
documentProtection.Enforcement = OnOffValue.FromBoolean(true);
}
}
看一看How to set the editing restrictions in Word using Open XML SDK 2.0
我沒有任何工作代碼爲你,但密碼哈希需要存儲在 DocumentProtection.Hash
。 希望這個提示可以幫助你一起移動!
+1謝謝,我將不得不看一看 – Pinch
非常感謝您的回答,但該代碼不強制使用密碼鎖定。 – Pinch
在DocumentProtection中,修改'Hash'屬性,它是'Password Hash.Represents schema中的屬性:w:hash'(來自MSDN文檔:http://msdn.microsoft.com/en-us/library/ documentformat.openxml.wordprocessing.documentprotection_members%28v = office.14%29.aspx) –