2012-08-13 3 views
2

Word를 열면 Word Open XML 형식으로 저장할 수 있습니다. 나는 zip으로 docx 파일을 여는 것에 관한 게시물을 본 다음 거기에서 물건을 추출하는 것을 보았다. 하지만 실제로 원하는 것은 MS Office에서 "다른 이름으로 저장"작업을 수행 할 때와 같이 docx를 단일 XML로 변환하는 방법입니다. 무엇을해야합니까?Doc/Docx를 하나의 XML 파일로 자동 변환하는 방법은 무엇입니까?

.doc 형식으로이 작업을 수행하는 방법은 무엇입니까?

참고 : 프로그래밍 방식으로이 작업을 수행하고 싶습니다. PHP를 사용하는 Linux 개발 환경에서 사용하는 것이 바람직합니다. 그러나 이것이 가능하지 않다면, 다른 언어들도 그렇게 할 것입니다. 마지막으로, 문제가 발생하면 Windows 서버를 회전시켜이를 수행 할 수 있습니다.

답변

1

Word에서 : file | 다른 이름으로 저장 | Word XML 문서 (* .xml)는 단일 XML 파일로 원하는 Open XML 형식을 제공합니다.

Interop을 사용하는 코드에서 : WdSaveFormat.wdFormatXMLDocument를 저장 형식으로 사용하여 문서 개체의 SaveAs 메서드를 사용합니다. Document.Convert 메서드를 사용하여 설치된 MS Office 버전과의 호환성을 업데이트해야합니다.

그래서 반드시 완전한 데모, 그러나 이것은 당신에게 올바른 생각 주어야한다 :

ActiveDocument.Convert(); 

WdSaveFormat myNewSaveFormat = WdSaveFormat.wdFormatXMLDocument; 
ActiveDocument.SaveAs(newFilePath, myNewSaveFormat); //where newFilePath can be a FileInfo object specifying the new file name and extension (docx) 
+1

interop없이이 작업을 수행 할 수있는 방법이 있습니까? 예를 들어, docx 인 zip 패키지에는 단일 파일 XML과 정확히 같은 것을 병합하는 데 사용할 수있는 일종의 패턴이 있습니까? – samxli

+0

죄송합니다, 그것은 office-interop 태그가, 그래서 나는 생각했다. 또한 서버 시나리오에서 Interop을 사용할 수 있는지 확실하지 않은 경우 해당 스레드에 대한 다른 스레드를 확인해야 할 수도 있습니다. || WordprocessingDocument 객체를 구성하는 각 패키지/파트를 하나의 통합 된 패키지/파트로 모두 원하는 것처럼 들립니다. – JohnZaj

+0

고마워. .docx를 저장하기 위해 wdFormatOpenDocumentText를 사용하려고했는데 COM 예외가 발생했습니다. – GrandMasterFlush

3

죽은 스레드를 소생시키기 위해 죄송 합니다만, 방금 DOCX 파일에 대한 답변을 찾았습니다. DOCX 파일은 XML 파일의 ZIP 아카이브 일뿐입니다. 그래서 파일 중 하나의 내용을 추출하기 위해, v.gr. 단어 리눅스 환경에서/document.xml, 당신은 압축을 풀고 실행해야합니다 : PHP 스크립트의 $의 XML 변수에이 명령의 출력을 잡기 위해

unzip -q -c myfile.docx word/document.xml 

을, 당신은 실행할 수 있습니다

$xml = shell_exec ("unzip -q -c myfile.docx word/document.xml"); 

이 답변을 원하면 DOCX 파일에 도움이됩니다. 안하는 것보다 늦게하는 것이 낫다.

DOC 파일의 경우이 방법은 작동하지 않습니다.

+0

이 코드를 실행하려고하는데 작동하지 않습니다. 무엇이 누락 되었습니까? – Sanuj

+0

시스템에 unzip 명령이 있는지 확인하십시오. 어떤 OS를 코딩하고 있습니까? –

+0

실제 서버가 Linux 임에도 불구하고 창문에 설치하려고했습니다. 그러나 ZipArchieve를 사용하여 문제가 해결되었으므로이 코드와 관련하여 Windows에서 실행할 수 없습니다. – Sanuj

관련 문제