Spire.Doc 6.8.16 版本 newSection是只读
时间: 2024-03-19 20:44:38 浏览: 60
对不起,我的回答有误。您在使用Spire.Doc 6.8.16版本时,可能遇到了newSection只读的问题,这是因为在该版本中,`Document.AddSection()`方法返回的是一个只读的Section对象,不能直接修改其内容。
您可以使用以下代码来创建一个新的Section对象,并将要复制的页面的样式和内容逐一复制到新的Section对象中:
```csharp
// 复制指定页码的页面
int pageIndex = 2;
Section section = doc.Sections[pageIndex - 1];
Section newSection = new Section(doc);
newSection.PageSetup = (PageSetup)section.PageSetup.Clone();
foreach (Paragraph para in section.Paragraphs)
{
Paragraph newPara = newSection.AddParagraph();
newPara.ApplyStyle(para.StyleName);
foreach (DocumentObject obj in para.ChildObjects)
{
if (obj is TextRange)
{
TextRange range = obj as TextRange;
newPara.AppendText(range.Text);
}
else if (obj is DocPicture)
{
DocPicture pic = obj as DocPicture;
newPara.AppendPicture(pic.Image);
}
}
}
```
在上面的代码中,我们首先创建了一个新的Section对象,然后将要复制的页面的样式和内容逐一复制到新的Section对象中。这样就可以避免newSection只读的问题。
然后将新的Section对象插入到原来文档中复制页面的后面:
```csharp
// 在复制的页面后面粘贴
Section pasteSection = doc.Sections[pageIndex];
doc.InsertSection(pasteSection, newSection.Index + 1);
```
最后,保存文档:
```csharp
// 保存文档
doc.SaveToFile("output.docx", FileFormat.Docx);
```
阅读全文