Я создаю текстовый документ с OpenXML и C #.Я хочу заблокировать (только для чтения) абзац в тексте, чтобы пользователь не мог удалить его при редактировании.
Я провел несколько неудачных тестов, которые сделали бы весь документ доступным только для чтения, но это не то, что яищу.
var file = $"{directory}\\{fileName}.docx";
using (WordprocessingDocument package =
WordprocessingDocument.Create(file, WordprocessingDocumentType.Document))
{
package.AddMainDocumentPart();
var documentProtection = new DocumentProtection();
documentProtection.Edit = DocumentProtectionValues.ReadOnly;
package.MainDocumentPart.AddNewPart<DocumentSettingsPart>();
package.MainDocumentPart.DocumentSettingsPart.Settings = new Settings();
package.MainDocumentPart.DocumentSettingsPart.Settings.AppendChild(documentProtection);
package.MainDocumentPart.DocumentSettingsPart.Settings.Save();
package.MainDocumentPart.Document = new Document(DocBody);
package.MainDocumentPart.Document.Save();
Process.Start(file);
}
Ниже приведен код, который я написал для генерации абзацев:
var paragraph = new Paragraph();
var run = new Run();
var properties = new RunProperties();
var paragraphProperties = new ParagraphProperties();
properties.FontSize = new FontSize();
properties.FontSize.Val = new StringValue("20");
properties.RunFonts = new RunFonts()
{
Ascii = "Arial"
};
paragraphProperties.Justification = new Justification() { Val = JustificationValues.Center };
paragraph.Append(paragraphProperties);
run.Append(properties);
var text = new Text("Text content...") { Space = SpaceProcessingModeValues.Preserve };
run.Append(text);
paragraph.Append(run);
DocBody.Append(paragraph);
Спасибо!