2014-11-24 1 views
0

OpenXML을 사용하여 docx 파일의 MainDocumentPart를 가져올 수 있지만 다음과 같은 ooxml 문서 패키지를 가져올 수 없습니다. 아무도 이것에 대해 약간의 의견을 나눌 수 있습니까?.docx를 ooxml 문서 패키지로 변환하는 코드

<pkg:package xmlns:pkg="http://schemas.microsoft.com/office/2006/xmlPackage"> 
    <pkg:part pkg:name="/_rels/.rels" pkg:contentType="application/vnd.openxmlformats-package.relationships+xml" pkg:padding="512"> 
    <pkg:xmlData> 
     <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> 
     <Relationship Id="rId2" Type="http://schemas.microsoft.com/office/2011/relationships/webextensiontaskpanes" Target="word/webextensions/taskpanes.xml"/> 
     <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/> 
     </Relationships> 
    </pkg:xmlData> 
    </pkg:part> 
+0

이 포럼 사이트와 달리, 우리는 "감사합니다"를 사용하지 않는 사용, 또는 "어떤 도움을 주시면 감사", 또는 서명하기 에 [so]. "[안녕하세요, '고마워,'태그 라인 및 인사말을 게시물에서 삭제해야합니까?] (http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be 참조) -off-from-posts) –

답변

2

"Flat OPC"XML이 무엇입니까?

Eric White's approach을 사용할 수 있습니다.

또는 docx4j.NET을 사용할 수 있습니다. 이를 위해 먼저 docx4j WordprocessingMLPackage로 변환하십시오. 당신은 C#을 문자열로 시작하는 경우 :

private WordprocessingMLPackage getPkgFromString(string wordOpenXML) 
    { 

     // The string is UTF-16; convert it to UTF-8 
     byte[] utf16Bytes = Encoding.Unicode.GetBytes(wordOpenXML); 
     byte[] utf8Bytes = Encoding.Convert(Encoding.Unicode, Encoding.UTF8, utf16Bytes); 

     return WordprocessingMLPackageFactory.createWordprocessingMLPackage(utf8Bytes); 
    } 

그런 다음, C#을 WordprocessingDocument를 얻을 수 WordprocessingDocumentFactory.cs

+0

Open XML 문서에서 Flat OPC 형식으로 변환하는 데 흥미가 있습니다. 제공된 링크에서 솔루션을 찾을 수 있었고 링크는 여기에 있습니다. http : //blogs.msdn.com/b/ericwhite/archive/2008/09/29/transforming-open-xml-documents-to-flat-opc-format.aspx 도움을 받으 셨습니다. –