2010-07-05 2 views
10

Qt 4.5.3 및 Windows XP를 사용 중입니다. 사용 및 생성되는 정보가 포함 된 문서를 생성하려면 응용 프로그램이 필요합니다. 사용되는 정보는 문자열 (QString이 더 구체적 임) 일 뿐이며 생성되는 정보는 문자열 및 이미지입니다.C++/Qt를 통해 워드 문서 (.doc/.odt) 생성

나는 문서 (.doc을)를 MS 워드 문서로 또는 오픈 도큐먼트 포맷 (.odt) 또한 나는이 문서가 데이터의 글꼴, 이미지, 테이블 포맷 할 수 있습니다 싶어, 몇 가지 배경 색상 및 모든 .

나는 창조 PDF를 QTextDocument, QTextCursorQPrinter를 사용하여 파일을 수행했다. 그러나 odt에 동일한 QTextDocument을 적용하려고 시도했을 때 형식 오류가 발생했습니다.

C++를 사용하는 다른 라이브러리를 사용하여 이러한 문서를 생성 할 수있는 방법이 있습니까? 여러분이 그러한 문서를 생성하는 데 사용하는 방법 (.odt /. doc)을 C++로 작성 하시겠습니까? 어떤 포인터, 링크, 이것에 관한 예제도 환영합니다.

답변

8

나는 Qt 방법으로이 작업을 수행했습니다. 즉 ActiveQt 모듈을 사용합니다.

MS 워드의 참조 문서를 통해 얻을 수있다 실제로 MS 워드 용 액티브 API를 갖는 파일 VBAWD10.chm 가리키는

MSDN documentation

.

단어 어플리케이션

QAxBase::querySubObject() 

예를 들어,

QAxWidget wordApplication("Word.Application"); 

기능을 얻을 수있다 워드 애플리케이션의 하위 개체에 의해 초기화 될 수

QAxObject *activeDocument = wordApplication.querySubObject("ActiveDocument"); 

획득 한 하위 오브젝트를 인수로 전달하려면

,210
QVariant QAxBase::asVariant() const 

사용하여 함수를 사용하여 호출 할 수있는 단어 객체를 포함하는 모든 함수 호출 , 예를 들어

QAxBase::dynamicCall() 

: 투쟁과 몇 확신의 아주 좋은 금액 후

activeDocument->dynamicCall("Close(void)"); 

, 그건 잘 작동합니다.:)

모두 비슷한 솔루션을 원하는 사람들에게 도움이되기를 바랍니다 ...