2013-04-29 6 views
1

어떻게 C#에서 단어 문서의 복제본을 만드나요? (오피스 2007 라이브러리) 단어 문서 개체의 복제본을 만드는 방법은 무엇입니까?

public copyDocument (Word.Document _originalDocument) 
{ 
    //How do I clone the _originalDocument? 
    Word.Document clonedDocument = _originalDocument; 

    //Do stuff to cloneDocument without effecting _originalDocument 
} 

그래서 내가 뭘 원하는 원본 문서를 초래하지 않고을 변경 한 후 원본 문서의 복제를 잡고있다. 위와 같이 cloneDocument를 변경하면 _originalDocument에도 적용됩니다.

+0

당신이 다음 새 위치에 복사본을 저장하는 시도 되세요을 그 새 사본을 열어? –

+0

문제의 문서도 사용자가 편집하는 Word의 대화 형 인스턴스 (즉, 추가 기능) 내에서 코드가 실행됩니까? 아니면 응용 프로그램이 독립 실행 형입니까 (백그라운드에서 실행 중입니까)? –

+0

George - Thx하지만 옵션이 아닙니다. 두려워요// 기억해야합니다. – user1255276

답변

0

당신이 DocX

DOCX 당신이로드하거나 뒤에서 말씀을 열지 않고도 메모리에 문서를 만들 수 있습니다 체크 아웃 시간도 가치가있을 수도 오피스 2007을 사용하고 있기 때문에 (오피스 2007는 XML을 지원 같은 형식). 빠르고 가볍고 Word를 설치할 필요도 없습니다 (서버에 배포하는 경우 매우 편리합니다).

또한

, 당신은 쉽게 문서를 복제 클론을 변경하고 저장하고 원래 영향을주지 않습니다 수 있습니다

DocX testTemplate = DocX.Load("C:\\test.docx"); 
Paragraph p = testTemplate.InsertParagraph("Hello World."); 

DocX testDoc = testTemplate; 
Paragraph p = testDoc.InsertParagraph("Foo."); 

testDoc.SaveAs("C:\\test2.docx"); 
testTemplate.Save(); 

//testTemplate only contains a "Hello World" paragraph 
+0

제안을위한 Thx 순환 참조하지만 제 3 자 lib 디렉토리를 사용할 수 없습니다 :( – user1255276

+0

흠 ... 나는 그걸 가지고 놀았지만 오류를 재현하지 못했습니다. 원본 문서는 영향을받지 않았습니다. 대답, 더 많은 소스 코드를 공유 할 수 있습니까? –