2017-01-19 4 views
0

У меня есть документ с текстом, который содержит много страниц. Одна из этих страниц содержит местозаполнитель вместо другого контента. поэтому я хочу заменить этот placeholder другим документом doc без потери форматирования. Этот файл doc, который должен быть заменен, может иметь много страниц. Как я могу заменить этот файл-заполнитель на этот файл документа программным способом. Я искал много, но не смог найти какой-либо вариант для вставки файла-документа, заменяющего местозаполнитель. Спасибо вам, Advance.Вставка файла документа на место владельца места

Или как мы можем скопировать содержимое документа должны быть вставлено, а затем заменить заполнитель скопированного контента

Я нашел пост here .the ниже кода с этим постом. С помощью библиотеки, вы можете сделать следующее, чтобы заменить текст из документа Word, если учесть, что documentByteArray ваш документ содержание байт берется из базы данных:

using (MemoryStream mem = new MemoryStream()) 
{ 
mem.Write(documentByteArray, 0, (int)documentByteArray.Length); 
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(document, true)) 
{ 
    string docText = null; 
    using (StreamReader sr = new StreamReader(wordDoc.MainDocumentPart.GetStream())) 
    { 
     docText = sr.ReadToEnd(); 
    } 

    Regex regexText = new Regex("Hello world!"); 
    docText = regexText.Replace(docText, "Hi Everyone!"); 

    using (StreamWriter sw = new StreamWriter(wordDoc.MainDocumentPart.GetStream(FileMode.Create))) 
    { 
     sw.Write(docText); 
    } 
} 

}

, если вместо «Hi Everyone», если мы заменим его с BinaryData, который представляет собой массив байтов

byte[] binarydata = File.ReadAllBytes(filepaths); 

как мы можем изменить программу?

+0

- это заполнитель содержимого ASP.Net, где вы хотите, чтобы документ или местозаполнитель в текстовый документ? –

+0

его заполнитель в слове document – Binto

+0

ok дайте мне несколько минут, так как у меня есть решение, которое я сейчас использую, и вы получите код для вас –

ответ

0

Прежде всего, вы должны получить пакет Nuget под названием Novacode.Docx, это то, что я нашел лучшим создателем и редактором документа за последние несколько лет.

using Novacode.Docx; 

void Main() 
{ 
    var doc = DocX.Load(@"c:\temp\existingDoc.docx"); 
    var docToAdd = DocX.Load(@"c:\temp\docToAdd.docx"); 

    doc.InsertDocument(docToAdd, true); //version 1.0.0.22  
    doc.InsertDocument(docToAdd); //version 1.0.0.19 
} 

это самая простая и основная реализация того, что это за то, что вы после, но это работает.

что-нибудь еще взглянуть на документацию по

https://docx.codeplex.com/

или

http://cathalscorner.blogspot.co.uk/

это будет самое лучшее место, чтобы начать. Я также рекомендовал бы, если вы используете эту версию, использующую версию 1.0.0.19, поскольку в версии 1.0.0.22 есть некоторые проблемы с форматированием.

Смежные вопросы