2017-01-19 8 views
0

많은 페이지가 포함 된 단어 문서가 있습니다. 이러한 페이지 중 하나에는 다른 내용 대신 자리 표시자가 포함됩니다. 그래서 포맷을 잃지 않고 그 자리 표시자를 다른 doc 파일로 바꾸고 싶습니다. 대체 될이 doc 파일에는 많은 페이지가있을 수 있습니다. 어떻게이 자리 표시자를 프로그래밍 방식으로이 doc 파일로 바꿀 수 있습니까? 많은 검색했지만 자리 표시자를 대체하는 doc 파일을 삽입하는 옵션을 찾을 수 없습니다. 미리 감사드립니다.자리 표시 자 위치에 doc 파일 삽입

또는 방법 우리는 문서의 내용을 삽입하고 난 후 코드 아래 here 국지적 해당 게시물에서입니다 발견

복사 컨텐츠로 자리를 대체 할 복사 할 수 있습니다.

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); 
    } 
} 

}

대신 "안녕 모두"만약의 경우 : 라이브러리와 , 당신은이 documentByteArray 데이터베이스에서 가져온 문서 바이트 내용임을 고려, Word 문서에서 텍스트를 교체하기 위해 다음을 수행 할 수 있습니다 우리는 우리가 프로그램을 수정하는 방법

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

바이트

의 배열입니다 binarydata로 교체?

+0

은 다음과 같습니다. 문서 나 placeholder를 원하는 ASP.Net 콘텐츠 자리 표시 자 단어 문서? –

+0

단어 문서 – Binto

+0

의 자리 표시 자입니다. 현재 제가 사용하고있는 해결책이 있으므로 잠시만 기다려주십시오. –

답변

0

먼저 Novacode.Docx라는 Nuget 패키지를 가져와야합니다. 이것이 지난 몇 년 동안 최고의 문서 작성자이자 편집자가 된 것입니다.

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.22에 서식 문제가 있으므로 버전 1.0.0.19를 사용하는 것이 좋습니다.