Есть ли способ сделать абзац только для чтения с openxml? - PullRequest
0 голосов
/ 20 сентября 2019

Я создаю текстовый документ с 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);

Спасибо!

...