incubator-ooo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Armin Le Grand <Armin.Le.Gr...@me.com>
Subject Re: a question of Export custom file format?
Date Wed, 06 Jun 2012 09:02:32 GMT
	Hi 蜗牛 (had to copy-paste, cannot read, hope it's correct)

On 06.06.2012 06:23, 蜗牛 wrote:
> HI:
>
> I need to develop an extension program of openoffice's write,
> the extended function is export a custom file format
> , the file format similar as PDF file format ,
> But not the PDF file format.
>
> I analyzed the export of PDF files ,the Function  through VCL output.
> I have two question as below:
>
> 1)Such  need can be achieved in extension of openoffice's write?

Yes, when You use the UNO API. This means to get the document, iterate 
over pages and objects and export them.

> 2) Can I use
> calss VirtualDevice
> calss GDIMetaFile
> interface---   Reference<XRenderable>  xRenderable (mxSrcDoc, UNO_QUERY)
> in openoffice's write?

I do not know too much from it by heart, but a starting point is to get 
the document as handle.
More important: Using VirtualDevice and GDIMetaFile will work, but is 
somehow the older way to do things. With the current state of the core i 
would suggest to use primitives for SdrObjects when you need to export 
graphical representations (as in PDF export, and not the model data as 
in PPT export). Primitives give you all the geometry data in double 
precision and in a tree structure with some automatisms. For each 
SdrObject you may get a sequence of primitives (over UNO API from 
xShape). Examples how to proccess them can be found in 
drawinglayer/source/processor2d. E.g. vclmetafileprocessor2d is the 
instance which currently is used in the core to create GDIMetaFiles from 
primitives (these are not created from 'painting' SdrObjects since some 
time, this already shows that primitives contain more information than 
the GDIMetaFIles). Or e.g. vclpixelprocessor2d is the current renderer 
for pixel output (screen display).
In principle all exporters using geometry information as base data 
can/should be rewritten to use primitives. Thus, when doing a new 
exporter, I would recommend using them from the beginning.
To see how to get primitives from xShape grep for XPrimitiveFactory2D 
and createPrimitivesFromXShape.

HTH!
Sincerely,
	Armin
--
ALG


Mime
View raw message