2010-02-04 3 views
1

Qt를 사용하여 프로그램을 작성 중입니다. 포맷팅을 유지하기 위해 .doc로 출력하고 싶지만 Qt가 지원하는 것은 모두 일반 텍스트, ODF 및 HTML 형식입니다. ODF와 HTML은 서식을 유지하지만이 파일을 복사하여 .doc 파일에 붙여 넣어야합니다.Qt를 사용하여 .doc 형식으로 출력 할 수 있습니까?

.doc 파일을 저장할 수 있기를 원하며 걱정하지 않아도됩니다. 나는 이것을 여러 번 봤지만 해결책을 찾지 못했습니다.

답변

0

".doc"형식이라고 말하면 Microsoft Word에서 사용되는 "Word 97-2003 문서"형식이라고 가정합니다. Microsoft Office는 .html 파일을 열어서 해당 경로로 이동할 수 있습니다. 프로그램을 실행하는 일부 컴퓨터에 Word가 설치되어 있으면 데이터를 클립 보드에 복사하고 자동화를 사용하여 Word에 붙여넣고 .doc 형식으로 저장할 수 있습니다.

구체적으로 어떤 서식을 사용하고 있습니까?

+0

당신이 말한대로 Word 97-2003 문서 형식을 사용하기를 희망했습니다. 나는 약간의 연구를했고 ODF 포맷이 새로운 Word .docx 포맷과 같은 XML 기반이라는 것을 알아 냈습니다. 그러나 여전히 .odt 파일을 .docx로 변환하는 방법을 찾을 수 없습니다. 응용 프로그램은 크로스 플랫폼이 될 것이므로 Mac/Linux 컴퓨터에서 ODF 파일은 정상적으로 작동하지만 Windows 컴퓨터에서는 Word 2003에서 파일을 열 수있는 방법이 필요했습니다. Word 2007에서는 .odt 파일이 열리지 만 두 버전의 Word에서 모두 작업하기를 원했습니다. 감사합니다. –

0

명시된 것처럼 QTextDocumentWriter은 일반 텍스트, ODF 및 HTML 형식 만 지원합니다.

Windows에서 만 문서를 읽을 필요가 있다면, 당신은 대신 .DOC 생산하기 위해 노력하는 PDF를 생성 할 수 있습니다 : Word에서 문서를 수정하는 절대적 경우,

QPrinter printer; 
QTextDocument document; 

//TODO: Put stuff to print in your 'document' 

printer.setOutputFormat(QPrinter::PdfFormat); 
printer.setOutputFileName("/foobar/nonwritable.pdf"); 

document.print(printer); 

또 다른 가능한 솔루션을 ODF add-on for Word 2003으로 ODF 파일을여십시오.

1

유효한 .doc 파일을 만드는 유일한 방법은 Microsoft Office를 사용하는 것입니다. OLE 자동화를 사용하여 프로그램에서 수행 할 수 있습니다 (이 문제에 대한 자세한 내용은 Why are the Microsoft Office file formats so complicated? (And some workarounds)).

Qt는 COM 개체 작업을위한 ActiveQt 프레임 워크를 제공합니다. 따라서 Word를로드하고 COM 인터페이스를 사용하여 .html을 .doc으로 변환 할 수 있습니다. 물론 MS 오피스가 설치되어 있어야합니다.

0

다른 대안이 있습니다 ... 실제로 해킹이라고 할 수는 있지만 간단하게 찾아 볼 수 있습니다.

  1. 이 문서
  2. 열기 템플릿 (몇 가지가 잘못 조정 있음) 당신이 쓰고 싶은 장소에서
  3. 을 조정
  4. 을 Microsoft Word를 사용하여 HTML 템플릿처럼 보이는 HTML 템플릿 만들기 일부 데이터/텍스트는 마커의 일종, 예 : 넣어 문서
  5. 을 저장 HTML
  6. 열기 문서에 문서를 다시 이름 바꾸기 #
  7. offaddress #. 이 문서에는 많은 Microsoft Word 문서 코드 및 내용이 포함됩니다. 걱정마.
  8. 복사
  9. 콘텐츠
  10. 저장 확장자를 가진 파일에 내용과 키워드 (#의 offaddress #)를 교체 .doc 파일 같은 Qt는 당신의 Qt는
  11. 설정 출력의 전체 코드를 붙여 넣습니다. 의사

Voilà; .doc 파일이 있습니다.

관련 문제