2008-10-25 3 views
7

내 Qt 응용 프로그램이 간단한 벡터 그래픽을 호환되는 방식으로 클립 보드에 저장할 수있게하려고합니다. Windows에서는 Microsoft Word 또는 Powerpoint에 그래픽을 붙여 넣을 수 있기를 원합니다. Linux에서 Open Office와 호환되기를 원합니다.Qt 용 벡터 그래픽 클립 보드 형식

어떤 형식을 권장합니까? Qt가 EMF를 쉽게 생성 할 수 있습니까? SVG는 옵션입니까?

는 업데이트 :

나의 현재 계획은 창에 EMF하기 위해 그래픽을 렌더링하기 위해 네이티브는 Win32 코드의 조각을 추가하는 것입니다. 이 코드는 리눅스에서 사용할 수 없습니다.

답변

4

The QGraphicsView 클래스와 관련 헬퍼는 QSVGGenerator 클래스를 통해 SVG하고 QPrinter을 통해/PDF 파일을 포스트 스크립트로는 QPicture 클래스 (있는 당신이 EMF에 번역기를 작성할 수)를 통해 QT 메타 파일 형식으로 렌더링 할 수 있습니다. 또한 비트 맵 형식과 다양한 다른 대상을 렌더링 할 수 있습니다.

AFAIK 일반 '렌더링 - EMF'기능이 없습니다. QT 메타 파일과 같은 다른 프로그램에 작성하여 EMF로 변환해야합니다. 그래픽 프리미티브의 하위 집합 만 필요하면 번역기에서 해당 하위 집합 만 지원하면됩니다. 그렇지 않으면 SVG에서 갈 수 있습니다. SVG는 QSVGGenerator를 통해 QT에서 직접 얻을 수 있습니다.

+0

나는 이것을 쉬운 해결책이라고 생각하지 않습니다. 그런 일반 번역기를 쓰는 데 몇 주가 걸릴 것입니다. EMF 사양은 310 페이지입니다. EMF를 직접 생성하는 것이 훨씬 쉬울 것입니다 (EMF의 작은 하위 집합 만 필요합니다). – danatel

3

여기 EMF 생성 PyQt QPaintEngine 클래스가 있습니다 : https://github.com/jeremysanders/veusz/blob/master/document/emf_export.py. 그것은 pyemf 라이브러리를 사용하지만 C++로 이식하는 것이 상당히 쉽다고 생각합니다. 불행하게도 OO는 EMF 파일에서 경로 지원이 상당히 손상되어 OpenOffice와 호환되지 않습니다. 또한 텍스트를 WYSIWYG의 경로로 변환합니다.