繁体   English   中英

Microsoft.Office.Interop限制段落修改

[英]Microsoft.Office.Interop restrict the paragraph modification

我试图保护段落不被修改。我正在使用Office互操作词库生成Doc文件我想对docx中的几个段落设置限制或密码保护没有人可以修改它但是其他段落可以修改

    var app = new Microsoft.Office.Interop.Word.Application();

    app.Visible = true;

    Document document = app.Documents.Open(@"C:\Test\NewDocument.docx")          

    String read = string.Empty;
    List<string> data = new List<string>();
    for (int i = 0; i < document.Paragraphs.Count; i++)
    {
        string temp = document.Paragraphs[i + 1].Range.Text.Trim();
        if (temp != string.Empty)
            data.Add(temp);
    }
    data.Add("Next LINE");
    data.Add("Second");

    object missing = System.Reflection.Missing.Value;

    foreach (var item in data)
    {

        Microsoft.Office.Interop.Word.Paragraph para1 = document.Content.Paragraphs.Add(ref missing);
        para1.Range.Text = item;
        para1.Range.InsertParagraphAfter();


    }

    document.Save();
    document.Close();
    return null;

它的工作只是格式问题

public string ExtractText()
        {


            var app = new Microsoft.Office.Interop.Word.Application();


            Document document = app.Documents.Open(@"C:\Test\656.docx");


            String read = string.Empty;
            List<string> data = new List<string>();
            for (int i = 0; i < document.Paragraphs.Count; i++)
            {
                string temp = document.Paragraphs[i + 1].Range.Text.Trim();
                if (temp != string.Empty)
                    data.Add(temp);
            }
            data.Add("Next LINE");
            data.Add("Second method opens the existing Microsoft Office Word document specified by a fully qualified path and file name. This method returns a Document that represents the opened document");
            data.Add("Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney C");

            object missing = System.Reflection.Missing.Value;

           app.ActiveDocument.Content.Editors.Add(Microsoft.Office.Interop.Word.WdEditorType.wdEditorEveryone);


            foreach (var item in data)
            {

             var para = document.Content.Paragraphs.Add(ref missing);
              para.Range.Text = item.Trim();
              para.Range.InsertParagraphAfter();


                if (para.Range.Text.Contains("Second"))
                {

                     para = document.Content.Paragraphs.Add(ref missing);
                    para.Range.Editors.Add(Microsoft.Office.Interop.Word.WdEditorType.wdEditorEditors).Delete();
                }

                if (para.Range.Text.Contains("Contrary"))
                {

                    para = document.Content.Paragraphs.Add(ref missing);
                    //   var para1 = document.Content.Paragraphs[1].Range.Paragraphs.Add(ref missing);
                    para.Range.Editors.Add(Microsoft.Office.Interop.Word.WdEditorType.wdEditorEveryone).Delete();
                }
                else
                {

                    para = document.Content.Paragraphs.Add(ref missing);

                    para.Range.Editors.Add(Microsoft.Office.Interop.Word.WdEditorType.wdEditorEveryone);
                }


            }

            app.Visible = true;

            object noReset = true;
            object password = System.String.Empty;
            object useIRM = false;
            object enforceStyleLock = true;

            object PasswordEncryptionFileProperties = false;
            app.ActiveDocument.EnforceStyle = true;

            document.Protect(Microsoft.Office.Interop.Word.WdProtectionType.wdAllowOnlyReading, ref noReset, "000", ref useIRM, ref enforceStyleLock);

            document.Save();
            document.Close();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM