2013-07-18 1 views
0

Я пытаюсь вставить текст в Bookmarks в файл OpenXML .docx, но он вставляет новую строку после каждого Paragraph. Как я могу это предотвратить?Как предотвратить появление новых строк после вставки абзацев с OpenXML?

например: enter image description here

добавить текст в документ, находя Bookmarks следующим:

var bmk= body.Descendants<BookmarkStart>().FirstOrDefault(xx => xx.Name == "myBMK"); 
var parent = bmk.Parent; 

parent.InsertBeforeSelf(GetText("DaveCompany")); 

GetText где определяется как:

public static Paragraph GetText(string cellText) 
{ 
    var run = new Run(new Text(cellText)); 

    return new Paragraph(run); 
} 

Я попытался удалить текст из Paragraph, например

parent.InsertBeforeSelf(new Run(new Text("DaveCompany"))); 

, но это привело к недействительному документу.

Как предотвратить установку новой линии?

ответ

0

Оказалось, что это добавление дополнительной строки, потому что Закладка была в ее собственном абзаце. Когда я добавил новый пункт с

parent.InsertBeforeSelf(GetText("DaveCompany")); 

Клетка контейнер таблица имела 2 абзацы в нем, и документ отображается это, как он эффективно должен иметь.

Решение состоит в том, чтобы удалить родительский абзац закладки после того, как я вставил текст, например.

var bmk= body.Descendants<BookmarkStart>().FirstOrDefault(xx => xx.Name == "myBMK"); 
var parent = bmk.Parent; 

parent.InsertBeforeSelf(GetText("DaveCompany")); 
parent.Remove();