1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: FontTable.cxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #include <FontTable.hxx>
32 #ifndef INCLUDED_RESOURCESIDS
33 #include <doctok/resourceids.hxx>
34 #include <ooxml/resourceids.hxx>
39 namespace writerfilter
{
45 std::vector
< FontEntry
> aFontEntries
;
46 FontEntry
* pCurrentEntry
;
50 /*-- 19.06.2006 12:04:32---------------------------------------------------
52 -----------------------------------------------------------------------*/
53 FontTable::FontTable() :
54 m_pImpl( new FontTable_Impl
)
57 /*-- 19.06.2006 12:04:33---------------------------------------------------
59 -----------------------------------------------------------------------*/
60 FontTable::~FontTable()
64 /*-- 19.06.2006 12:04:33---------------------------------------------------
66 -----------------------------------------------------------------------*/
67 void FontTable::attribute(Id Name
, Value
& val
)
69 OSL_ENSURE( m_pImpl
->pCurrentEntry
, "current entry has to be set here");
70 if(!m_pImpl
->pCurrentEntry
)
72 int nIntValue
= val
.getInt();
73 ::rtl::OUString sValue
= val
.getString();
74 //printf ( "FontTable::attribute(0x%.4x, 0x%.4x) [%s]\n", (unsigned int)Name, (unsigned int)nIntValue, ::rtl::OUStringToOString(sValue, RTL_TEXTENCODING_DONTKNOW).getStr());
75 /* WRITERFILTERSTATUS: table: FontTable_attributedata */
78 // case NS_rtf::LN_ISTD: break;
79 // case NS_rtf::LN_ISTARTAT: break;
80 // case NS_rtf::LN_NFC: break;
81 // case NS_rtf::LN_JC: break;
82 // case NS_rtf::LN_FLEGAL: break;
83 // case NS_rtf::LN_FNORESTART: break;
84 // case NS_rtf::LN_FPREV: break;
85 // case NS_rtf::LN_FPREVSPACE: break;
86 // case NS_rtf::LN_FWORD6: break;
87 // case NS_rtf::LN_UNUSED5_7: break;
88 // case NS_rtf::LN_RGBXCHNUMS: break;
89 // case NS_rtf::LN_IXCHFOLLOW: break;
90 // case NS_rtf::LN_DXASPACE: break;
91 // case NS_rtf::LN_DXAINDENT: break;
92 // case NS_rtf::LN_CBGRPPRLCHPX: break;
93 // case NS_rtf::LN_CBGRPPRLPAPX: break;
94 // case NS_rtf::LN_LSID: break;
95 // case NS_rtf::LN_TPLC: break;
96 // case NS_rtf::LN_RGISTD: break;
97 // case NS_rtf::LN_FSIMPLELIST: break;
98 // case NS_rtf::LN_FRESTARTHDN: break;
99 // case NS_rtf::LN_UNSIGNED26_2: break;
100 // case NS_rtf::LN_ILVL: break;
101 // case NS_rtf::LN_FSTARTAT: break;
102 // case NS_rtf::LN_FFORMATTING: break;
103 // case NS_rtf::LN_UNSIGNED4_6: break;
104 // case NS_rtf::LN_UNUSED4: break;
105 // case NS_rtf::LN_UNUSED8: break;
106 // case NS_rtf::LN_CLFOLVL: break;
107 /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
108 case NS_rtf::LN_CBFFNM1
:
109 m_pImpl
->pCurrentEntry
->sFontName1
= sValue
;
111 /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
113 m_pImpl
->pCurrentEntry
->nPitchRequest
= static_cast<sal_Int16
>( nIntValue
);
115 /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
116 case NS_rtf::LN_FTRUETYPE
:
117 m_pImpl
->pCurrentEntry
->bTrueType
= nIntValue
== 1 ? true : false;
119 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
120 case NS_rtf::LN_UNUSED1_3
: //unused
121 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
122 case NS_rtf::LN_FF
: //unused
123 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
124 case NS_rtf::LN_UNUSED1_7
: //unused
126 /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
127 case NS_rtf::LN_WWEIGHT
:
128 m_pImpl
->pCurrentEntry
->nBaseWeight
= nIntValue
;
130 /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
132 m_pImpl
->pCurrentEntry
->nTextEncoding
= nIntValue
;
134 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
135 case NS_rtf::LN_IXCHSZALT
:
137 /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
138 case NS_rtf::LN_PANOSE
:
139 m_pImpl
->pCurrentEntry
->sPanose
+= sValue
;
141 /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
143 m_pImpl
->pCurrentEntry
->sFontSignature
+= sValue
;
145 // case NS_rtf::LN_STI: break;
146 // case NS_rtf::LN_FSCRATCH: break;
147 // case NS_rtf::LN_FINVALHEIGHT: break;
148 // case NS_rtf::LN_FHASUPE: break;
149 // case NS_rtf::LN_FMASSCOPY: break;
150 // case NS_rtf::LN_SGC: break;
151 // case NS_rtf::LN_ISTDBASE: break;
152 // case NS_rtf::LN_CUPX: break;
153 // case NS_rtf::LN_ISTDNEXT: break;
154 // case NS_rtf::LN_BCHUPE: break;
155 // case NS_rtf::LN_FAUTOREDEF: break;
156 // case NS_rtf::LN_FHIDDEN: break;
157 // case NS_rtf::LN_UNUSED8_3: break;
158 // case NS_rtf::LN_CSTD: break;
159 // case NS_rtf::LN_CBSTDBASEINFILE: break;
160 // case NS_rtf::LN_FSTDSTYLENAMESWRITTEN: break;
161 // case NS_rtf::LN_UNUSED4_2: break;
162 // case NS_rtf::LN_STIMAXWHENSAVED: break;
163 // case NS_rtf::LN_ISTDMAXFIXEDWHENSAVED: break;
164 // case NS_rtf::LN_NVERBUILTINNAMESWHENSAVED: break;
165 // case NS_rtf::LN_RGFTCSTANDARDCHPSTSH: break;
166 // case NS_rtf::LN_WIDENT: break;
167 // case NS_rtf::LN_NFIB: break;
168 // case NS_rtf::LN_NPRODUCT: break;
169 // case NS_rtf::LN_LID: break;
170 // case NS_rtf::LN_PNNEXT: break;
171 // case NS_rtf::LN_FDOT: break;
172 // case NS_rtf::LN_FGLSY: break;
173 // case NS_rtf::LN_FCOMPLEX: break;
174 // case NS_rtf::LN_FHASPIC: break;
175 // case NS_rtf::LN_CQUICKSAVES: break;
176 // case NS_rtf::LN_FENCRYPTED: break;
177 // case NS_rtf::LN_FWHICHTBLSTM: break;
178 // case NS_rtf::LN_FREADONLYRECOMMENDED: break;
179 // case NS_rtf::LN_FWRITERESERVATION: break;
180 // case NS_rtf::LN_FEXTCHAR: break;
181 // case NS_rtf::LN_FLOADOVERRIDE: break;
182 // case NS_rtf::LN_FFAREAST: break;
183 // case NS_rtf::LN_FCRYPTO: break;
184 // case NS_rtf::LN_NFIBBACK: break;
185 // case NS_rtf::LN_LKEY: break;
186 // case NS_rtf::LN_ENVR: break;
187 // case NS_rtf::LN_FMAC: break;
188 // case NS_rtf::LN_FEMPTYSPECIAL: break;
189 // case NS_rtf::LN_FLOADOVERRIDEPAGE: break;
190 // case NS_rtf::LN_FFUTURESAVEDUNDO: break;
191 // case NS_rtf::LN_FWORD97SAVED: break;
192 // case NS_rtf::LN_FSPARE0: break;
193 // case NS_rtf::LN_CHSTABLES: break;
194 // case NS_rtf::LN_FCMIN: break;
195 // case NS_rtf::LN_FCMAC: break;
196 // case NS_rtf::LN_CSW: break;
197 // case NS_rtf::LN_WMAGICCREATED: break;
198 // case NS_rtf::LN_WMAGICREVISED: break;
199 // case NS_rtf::LN_WMAGICCREATEDPRIVATE: break;
200 // case NS_rtf::LN_WMAGICREVISEDPRIVATE: break;
201 // case NS_rtf::LN_PNFBPCHPFIRST_W6: break;
202 // case NS_rtf::LN_PNCHPFIRST_W6: break;
203 // case NS_rtf::LN_CPNBTECHP_W6: break;
204 // case NS_rtf::LN_PNFBPPAPFIRST_W6: break;
205 // case NS_rtf::LN_PNPAPFIRST_W6: break;
206 // case NS_rtf::LN_CPNBTEPAP_W6: break;
207 // case NS_rtf::LN_PNFBPLVCFIRST_W6: break;
208 // case NS_rtf::LN_PNLVCFIRST_W6: break;
209 // case NS_rtf::LN_CPNBTELVC_W6: break;
210 // case NS_rtf::LN_LIDFE: break;
211 // case NS_rtf::LN_CLW: break;
212 // case NS_rtf::LN_CBMAC: break;
213 // case NS_rtf::LN_LPRODUCTCREATED: break;
214 // case NS_rtf::LN_LPRODUCTREVISED: break;
215 // case NS_rtf::LN_CCPTEXT: break;
216 // case NS_rtf::LN_CCPFTN: break;
217 // case NS_rtf::LN_CCPHDD: break;
218 // case NS_rtf::LN_CCPMCR: break;
219 // case NS_rtf::LN_CCPATN: break;
220 // case NS_rtf::LN_CCPEDN: break;
221 // case NS_rtf::LN_CCPTXBX: break;
222 // case NS_rtf::LN_CCPHDRTXBX: break;
223 // case NS_rtf::LN_PNFBPCHPFIRST: break;
224 // case NS_rtf::LN_PNCHPFIRST: break;
225 // case NS_rtf::LN_CPNBTECHP: break;
226 // case NS_rtf::LN_PNFBPPAPFIRST: break;
227 // case NS_rtf::LN_PNPAPFIRST: break;
228 // case NS_rtf::LN_CPNBTEPAP: break;
229 // case NS_rtf::LN_PNFBPLVCFIRST: break;
230 // case NS_rtf::LN_PNLVCFIRST: break;
231 // case NS_rtf::LN_CPNBTELVC: break;
232 // case NS_rtf::LN_FCISLANDFIRST: break;
233 // case NS_rtf::LN_FCISLANDLIM: break;
234 // case NS_rtf::LN_CFCLCB: break;
235 // case NS_rtf::LN_FCSTSHFORIG: break;
236 // case NS_rtf::LN_LCBSTSHFORIG: break;
237 // case NS_rtf::LN_FCSTSHF: break;
238 // case NS_rtf::LN_LCBSTSHF: break;
239 // case NS_rtf::LN_FCPLCFFNDREF: break;
240 // case NS_rtf::LN_LCBPLCFFNDREF: break;
241 // case NS_rtf::LN_FCPLCFFNDTXT: break;
242 // case NS_rtf::LN_LCBPLCFFNDTXT: break;
243 // case NS_rtf::LN_FCPLCFANDREF: break;
244 // case NS_rtf::LN_LCBPLCFANDREF: break;
245 // case NS_rtf::LN_FCPLCFANDTXT: break;
246 // case NS_rtf::LN_LCBPLCFANDTXT: break;
247 // case NS_rtf::LN_FCPLCFSED: break;
248 // case NS_rtf::LN_LCBPLCFSED: break;
249 // case NS_rtf::LN_FCPLCFPAD: break;
250 // case NS_rtf::LN_LCBPLCFPAD: break;
251 // case NS_rtf::LN_FCPLCFPHE: break;
252 // case NS_rtf::LN_LCBPLCFPHE: break;
253 // case NS_rtf::LN_FCSTTBFGLSY: break;
254 // case NS_rtf::LN_LCBSTTBFGLSY: break;
255 // case NS_rtf::LN_FCPLCFGLSY: break;
256 // case NS_rtf::LN_LCBPLCFGLSY: break;
257 // case NS_rtf::LN_FCPLCFHDD: break;
258 // case NS_rtf::LN_LCBPLCFHDD: break;
259 // case NS_rtf::LN_FCPLCFBTECHPX: break;
260 // case NS_rtf::LN_LCBPLCFBTECHPX: break;
261 // case NS_rtf::LN_FCPLCFBTEPAPX: break;
262 // case NS_rtf::LN_LCBPLCFBTEPAPX: break;
263 // case NS_rtf::LN_FCPLCFSEA: break;
264 // case NS_rtf::LN_LCBPLCFSEA: break;
265 // case NS_rtf::LN_FCSTTBFFFN: break;
266 // case NS_rtf::LN_LCBSTTBFFFN: break;
267 // case NS_rtf::LN_FCPLCFFLDMOM: break;
268 // case NS_rtf::LN_LCBPLCFFLDMOM: break;
269 // case NS_rtf::LN_FCPLCFFLDHDR: break;
270 // case NS_rtf::LN_LCBPLCFFLDHDR: break;
271 // case NS_rtf::LN_FCPLCFFLDFTN: break;
272 // case NS_rtf::LN_LCBPLCFFLDFTN: break;
273 // case NS_rtf::LN_FCPLCFFLDATN: break;
274 // case NS_rtf::LN_LCBPLCFFLDATN: break;
275 // case NS_rtf::LN_FCPLCFFLDMCR: break;
276 // case NS_rtf::LN_LCBPLCFFLDMCR: break;
277 // case NS_rtf::LN_FCSTTBFBKMK: break;
278 // case NS_rtf::LN_LCBSTTBFBKMK: break;
279 // case NS_rtf::LN_FCPLCFBKF: break;
280 // case NS_rtf::LN_LCBPLCFBKF: break;
281 // case NS_rtf::LN_FCPLCFBKL: break;
282 // case NS_rtf::LN_LCBPLCFBKL: break;
283 // case NS_rtf::LN_FCCMDS: break;
284 // case NS_rtf::LN_LCBCMDS: break;
285 // case NS_rtf::LN_FCPLCMCR: break;
286 // case NS_rtf::LN_LCBPLCMCR: break;
287 // case NS_rtf::LN_FCSTTBFMCR: break;
288 // case NS_rtf::LN_LCBSTTBFMCR: break;
289 // case NS_rtf::LN_FCPRDRVR: break;
290 // case NS_rtf::LN_LCBPRDRVR: break;
291 // case NS_rtf::LN_FCPRENVPORT: break;
292 // case NS_rtf::LN_LCBPRENVPORT: break;
293 // case NS_rtf::LN_FCPRENVLAND: break;
294 // case NS_rtf::LN_LCBPRENVLAND: break;
295 // case NS_rtf::LN_FCWSS: break;
296 // case NS_rtf::LN_LCBWSS: break;
297 // case NS_rtf::LN_FCDOP: break;
298 // case NS_rtf::LN_LCBDOP: break;
299 // case NS_rtf::LN_FCSTTBFASSOC: break;
300 // case NS_rtf::LN_LCBSTTBFASSOC: break;
301 // case NS_rtf::LN_FCCLX: break;
302 // case NS_rtf::LN_LCBCLX: break;
303 // case NS_rtf::LN_FCPLCFPGDFTN: break;
304 // case NS_rtf::LN_LCBPLCFPGDFTN: break;
305 // case NS_rtf::LN_FCAUTOSAVESOURCE: break;
306 // case NS_rtf::LN_LCBAUTOSAVESOURCE: break;
307 // case NS_rtf::LN_FCGRPXSTATNOWNERS: break;
308 // case NS_rtf::LN_LCBGRPXSTATNOWNERS: break;
309 // case NS_rtf::LN_FCSTTBFATNBKMK: break;
310 // case NS_rtf::LN_LCBSTTBFATNBKMK: break;
311 // case NS_rtf::LN_FCPLCDOAMOM: break;
312 // case NS_rtf::LN_LCBPLCDOAMOM: break;
313 // case NS_rtf::LN_FCPLCDOAHDR: break;
314 // case NS_rtf::LN_LCBPLCDOAHDR: break;
315 // case NS_rtf::LN_FCPLCSPAMOM: break;
316 // case NS_rtf::LN_LCBPLCSPAMOM: break;
317 // case NS_rtf::LN_FCPLCSPAHDR: break;
318 // case NS_rtf::LN_LCBPLCSPAHDR: break;
319 // case NS_rtf::LN_FCPLCFATNBKF: break;
320 // case NS_rtf::LN_LCBPLCFATNBKF: break;
321 // case NS_rtf::LN_FCPLCFATNBKL: break;
322 // case NS_rtf::LN_LCBPLCFATNBKL: break;
323 // case NS_rtf::LN_FCPMS: break;
324 // case NS_rtf::LN_LCBPMS: break;
325 // case NS_rtf::LN_FCFORMFLDSTTBF: break;
326 // case NS_rtf::LN_LCBFORMFLDSTTBF: break;
327 // case NS_rtf::LN_FCPLCFENDREF: break;
328 // case NS_rtf::LN_LCBPLCFENDREF: break;
329 // case NS_rtf::LN_FCPLCFENDTXT: break;
330 // case NS_rtf::LN_LCBPLCFENDTXT: break;
331 // case NS_rtf::LN_FCPLCFFLDEDN: break;
332 // case NS_rtf::LN_LCBPLCFFLDEDN: break;
333 // case NS_rtf::LN_FCPLCFPGDEDN: break;
334 // case NS_rtf::LN_LCBPLCFPGDEDN: break;
335 // case NS_rtf::LN_FCDGGINFO: break;
336 // case NS_rtf::LN_LCBDGGINFO: break;
337 // case NS_rtf::LN_FCSTTBFRMARK: break;
338 // case NS_rtf::LN_LCBSTTBFRMARK: break;
339 // case NS_rtf::LN_FCSTTBFCAPTION: break;
340 // case NS_rtf::LN_LCBSTTBFCAPTION: break;
341 // case NS_rtf::LN_FCSTTBFAUTOCAPTION: break;
342 // case NS_rtf::LN_LCBSTTBFAUTOCAPTION: break;
343 // case NS_rtf::LN_FCPLCFWKB: break;
344 // case NS_rtf::LN_LCBPLCFWKB: break;
345 // case NS_rtf::LN_FCPLCFSPL: break;
346 // case NS_rtf::LN_LCBPLCFSPL: break;
347 // case NS_rtf::LN_FCPLCFTXBXTXT: break;
348 // case NS_rtf::LN_LCBPLCFTXBXTXT: break;
349 // case NS_rtf::LN_FCPLCFFLDTXBX: break;
350 // case NS_rtf::LN_LCBPLCFFLDTXBX: break;
351 // case NS_rtf::LN_FCPLCFHDRTXBXTXT: break;
352 // case NS_rtf::LN_LCBPLCFHDRTXBXTXT: break;
353 // case NS_rtf::LN_FCPLCFFLDHDRTXBX: break;
354 // case NS_rtf::LN_LCBPLCFFLDHDRTXBX: break;
355 // case NS_rtf::LN_FCSTWUSER: break;
356 // case NS_rtf::LN_LCBSTWUSER: break;
357 // case NS_rtf::LN_FCSTTBTTMBD: break;
358 // case NS_rtf::LN_LCBSTTBTTMBD: break;
359 // case NS_rtf::LN_FCUNUSED: break;
360 // case NS_rtf::LN_LCBUNUSED: break;
361 // case NS_rtf::LN_FCPGDMOTHER: break;
362 // case NS_rtf::LN_LCBPGDMOTHER: break;
363 // case NS_rtf::LN_FCBKDMOTHER: break;
364 // case NS_rtf::LN_LCBBKDMOTHER: break;
365 // case NS_rtf::LN_FCPGDFTN: break;
366 // case NS_rtf::LN_LCBPGDFTN: break;
367 // case NS_rtf::LN_FCBKDFTN: break;
368 // case NS_rtf::LN_LCBBKDFTN: break;
369 // case NS_rtf::LN_FCPGDEDN: break;
370 // case NS_rtf::LN_LCBPGDEDN: break;
371 // case NS_rtf::LN_FCBKDEDN: break;
372 // case NS_rtf::LN_LCBBKDEDN: break;
373 // case NS_rtf::LN_FCSTTBFINTLFLD: break;
374 // case NS_rtf::LN_LCBSTTBFINTLFLD: break;
375 // case NS_rtf::LN_FCROUTESLIP: break;
376 // case NS_rtf::LN_LCBROUTESLIP: break;
377 // case NS_rtf::LN_FCSTTBSAVEDBY: break;
378 // case NS_rtf::LN_LCBSTTBSAVEDBY: break;
379 // case NS_rtf::LN_FCSTTBFNM: break;
380 // case NS_rtf::LN_LCBSTTBFNM: break;
381 // case NS_rtf::LN_FCPLCFLST: break;
382 // case NS_rtf::LN_LCBPLCFLST: break;
383 // case NS_rtf::LN_FCPLFLFO: break;
384 // case NS_rtf::LN_LCBPLFLFO: break;
385 // case NS_rtf::LN_FCPLCFTXBXBKD: break;
386 // case NS_rtf::LN_LCBPLCFTXBXBKD: break;
387 // case NS_rtf::LN_FCPLCFTXBXHDRBKD: break;
388 // case NS_rtf::LN_LCBPLCFTXBXHDRBKD: break;
389 // case NS_rtf::LN_FCDOCUNDO: break;
390 // case NS_rtf::LN_LCBDOCUNDO: break;
391 // case NS_rtf::LN_FCRGBUSE: break;
392 // case NS_rtf::LN_LCBRGBUSE: break;
393 // case NS_rtf::LN_FCUSP: break;
394 // case NS_rtf::LN_LCBUSP: break;
395 // case NS_rtf::LN_FCUSKF: break;
396 // case NS_rtf::LN_LCBUSKF: break;
397 // case NS_rtf::LN_FCPLCUPCRGBUSE: break;
398 // case NS_rtf::LN_LCBPLCUPCRGBUSE: break;
399 // case NS_rtf::LN_FCPLCUPCUSP: break;
400 // case NS_rtf::LN_LCBPLCUPCUSP: break;
401 // case NS_rtf::LN_FCSTTBGLSYSTYLE: break;
402 // case NS_rtf::LN_LCBSTTBGLSYSTYLE: break;
403 // case NS_rtf::LN_FCPLGOSL: break;
404 // case NS_rtf::LN_LCBPLGOSL: break;
405 // case NS_rtf::LN_FCPLCOCX: break;
406 // case NS_rtf::LN_LCBPLCOCX: break;
407 // case NS_rtf::LN_FCPLCFBTELVC: break;
408 // case NS_rtf::LN_LCBPLCFBTELVC: break;
409 // case NS_rtf::LN_DWLOWDATETIME: break;
410 // case NS_rtf::LN_DWHIGHDATETIME: break;
411 // case NS_rtf::LN_FCPLCFLVC: break;
412 // case NS_rtf::LN_LCBPLCFLVC: break;
413 // case NS_rtf::LN_FCPLCASUMY: break;
414 // case NS_rtf::LN_LCBPLCASUMY: break;
415 // case NS_rtf::LN_FCPLCFGRAM: break;
416 // case NS_rtf::LN_LCBPLCFGRAM: break;
417 // case NS_rtf::LN_FCSTTBLISTNAMES: break;
418 // case NS_rtf::LN_LCBSTTBLISTNAMES: break;
419 // case NS_rtf::LN_FCSTTBFUSSR: break;
420 // case NS_rtf::LN_LCBSTTBFUSSR: break;
421 // case NS_rtf::LN_FN: break;
422 // case NS_rtf::LN_FCSEPX: break;
423 // case NS_rtf::LN_FNMPR: break;
424 // case NS_rtf::LN_FCMPR: break;
425 // case NS_rtf::LN_ICOFORE: break;
426 // case NS_rtf::LN_ICOBACK: break;
427 // case NS_rtf::LN_IPAT: break;
428 // case NS_rtf::LN_SHDFORECOLOR: break;
429 // case NS_rtf::LN_SHDBACKCOLOR: break;
430 // case NS_rtf::LN_SHDPATTERN: break;
431 // case NS_rtf::LN_DPTLINEWIDTH: break;
432 // case NS_rtf::LN_BRCTYPE: break;
433 // case NS_rtf::LN_ICO: break;
434 // case NS_rtf::LN_DPTSPACE: break;
435 // case NS_rtf::LN_FSHADOW: break;
436 // case NS_rtf::LN_FFRAME: break;
437 // case NS_rtf::LN_UNUSED2_15: break;
438 // case NS_rtf::LN_FFIRSTMERGED: break;
439 // case NS_rtf::LN_FMERGED: break;
440 // case NS_rtf::LN_FVERTICAL: break;
441 // case NS_rtf::LN_FBACKWARD: break;
442 // case NS_rtf::LN_FROTATEFONT: break;
443 // case NS_rtf::LN_FVERTMERGE: break;
444 // case NS_rtf::LN_FVERTRESTART: break;
445 // case NS_rtf::LN_VERTALIGN: break;
446 // case NS_rtf::LN_FUNUSED: break;
447 // case NS_rtf::LN_WUNUSED: break;
448 // case NS_rtf::LN_BRCTOP: break;
449 // case NS_rtf::LN_BRCLEFT: break;
450 // case NS_rtf::LN_BRCBOTTOM: break;
451 // case NS_rtf::LN_BRCRIGHT: break;
452 // case NS_rtf::LN_IBKL: break;
453 // case NS_rtf::LN_ITCFIRST: break;
454 // case NS_rtf::LN_FPUB: break;
455 // case NS_rtf::LN_ITCLIM: break;
456 // case NS_rtf::LN_FCOL: break;
457 // case NS_rtf::LN_LINECOLOR: break;
458 // case NS_rtf::LN_LINEWIDTH: break;
459 // case NS_rtf::LN_LINETYPE: break;
460 // case NS_rtf::LN_MM: break;
461 // case NS_rtf::LN_XEXT: break;
462 // case NS_rtf::LN_YEXT: break;
463 // case NS_rtf::LN_HMF: break;
464 // case NS_rtf::LN_LCB: break;
465 // case NS_rtf::LN_CBHEADER: break;
466 // case NS_rtf::LN_MFP: break;
467 // case NS_rtf::LN_BM_RCWINMF: break;
468 // case NS_rtf::LN_DXAGOAL: break;
469 // case NS_rtf::LN_DYAGOAL: break;
470 // case NS_rtf::LN_MX: break;
471 // case NS_rtf::LN_MY: break;
472 // case NS_rtf::LN_DXACROPLEFT: break;
473 // case NS_rtf::LN_DYACROPTOP: break;
474 // case NS_rtf::LN_DXACROPRIGHT: break;
475 // case NS_rtf::LN_DYACROPBOTTOM: break;
476 // case NS_rtf::LN_BRCL: break;
477 // case NS_rtf::LN_FFRAMEEMPTY: break;
478 // case NS_rtf::LN_FBITMAP: break;
479 // case NS_rtf::LN_FDRAWHATCH: break;
480 // case NS_rtf::LN_FERROR: break;
481 // case NS_rtf::LN_BPP: break;
482 // case NS_rtf::LN_DXAORIGIN: break;
483 // case NS_rtf::LN_DYAORIGIN: break;
484 // case NS_rtf::LN_CPROPS: break;
485 // case NS_rtf::LN_LINEPROPSTOP: break;
486 // case NS_rtf::LN_LINEPROPSLEFT: break;
487 // case NS_rtf::LN_LINEPROPSBOTTOM: break;
488 // case NS_rtf::LN_LINEPROPSRIGHT: break;
489 // case NS_rtf::LN_LINEPROPSHORIZONTAL: break;
490 // case NS_rtf::LN_LINEPROPSVERTICAL: break;
491 // case NS_rtf::LN_headerr: break;
492 // case NS_rtf::LN_footerr: break;
493 // case NS_rtf::LN_endnote: break;
494 // case NS_rtf::LN_BOOKMARKNAME: break;
496 // case NS_rtf::LN_LISTLEVEL: break;
497 // case NS_rtf::LN_LFO: break;
500 /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
501 case NS_rtf::LN_ALTFONTNAME
:
502 m_pImpl
->pCurrentEntry
->sAlternativeFont
= sValue
;
504 /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
505 case NS_rtf::LN_XSZFFN
:
506 /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
507 case NS_ooxml::LN_CT_Font_name
:
508 m_pImpl
->pCurrentEntry
->sFontName
= sValue
;
510 // case NS_rtf::LN_XSTZNAME: break;
511 // case NS_rtf::LN_XSTZNAME1: break;
512 // case NS_rtf::LN_UPXSTART: break;
513 // case NS_rtf::LN_UPX: break;
514 // case NS_rtf::LN_sed: break;
515 // case NS_rtf::LN_picf: break;
516 // case NS_rtf::LN_rgbrc: break;
517 // case NS_rtf::LN_shd: break;
518 // case NS_rtf::LN_cellShd: break;
519 // case NS_rtf::LN_cellTopColor: break;
520 // case NS_rtf::LN_cellLeftColor: break;
521 // case NS_rtf::LN_cellBottomColor: break;
522 // case NS_rtf::LN_cellRightColor: break;
524 // case NS_rtf::LN_LISTTABLE: break;
525 // case NS_rtf::LN_LFOTABLE: break;
526 // case NS_rtf::LN_FONTTABLE: break;
527 // case NS_rtf::LN_STYLESHEET: break;
531 int nVal
= val
.getInt();
537 /*-- 19.06.2006 12:04:33---------------------------------------------------
539 -----------------------------------------------------------------------*/
540 void FontTable::sprm(Sprm
& rSprm
)
542 OSL_ENSURE( m_pImpl
->pCurrentEntry
, "current entry has to be set here");
543 if(!m_pImpl
->pCurrentEntry
)
545 sal_uInt32 nSprmId
= rSprm
.getId();
548 Value::Pointer_t pValue
= rSprm
.getValue();
549 sal_Int32 nIntValue
= pValue
->getInt();
551 rtl::OUString sStringValue
= pValue
->getString();
553 //printf ( "FontTable::sprm(0x%.4x, 0x%.4x) [%s]\n", (unsigned int)nSprmId, (unsigned int)nIntValue, ::rtl::OUStringToOString(sStringValue, RTL_TEXTENCODING_DONTKNOW).getStr());
559 OSL_ENSURE( false, "FontTable::sprm()"); //
560 //Value::Pointer_t pValue_ = rSprm.getValue();
565 /*-- 19.06.2006 12:04:33---------------------------------------------------
567 -----------------------------------------------------------------------*/
568 void FontTable::entry(int /*pos*/, writerfilter::Reference
<Properties
>::Pointer_t ref
)
570 //create a new font entry
571 OSL_ENSURE( !m_pImpl
->pCurrentEntry
, "current entry has to be NULL here");
572 m_pImpl
->pCurrentEntry
= new FontEntry
;
574 //append it to the table
575 m_pImpl
->aFontEntries
.push_back( *m_pImpl
->pCurrentEntry
);
576 m_pImpl
->pCurrentEntry
= 0;
578 /*-- 19.06.2006 12:04:34---------------------------------------------------
580 -----------------------------------------------------------------------*/
581 void FontTable::startSectionGroup()
584 /*-- 19.06.2006 12:04:35---------------------------------------------------
586 -----------------------------------------------------------------------*/
587 void FontTable::endSectionGroup()
590 /*-- 19.06.2006 12:04:35---------------------------------------------------
592 -----------------------------------------------------------------------*/
593 void FontTable::startParagraphGroup()
596 /*-- 19.06.2006 12:04:35---------------------------------------------------
598 -----------------------------------------------------------------------*/
599 void FontTable::endParagraphGroup()
602 /*-- 19.06.2006 12:04:35---------------------------------------------------
604 -----------------------------------------------------------------------*/
605 void FontTable::startCharacterGroup()
608 /*-- 19.06.2006 12:04:35---------------------------------------------------
610 -----------------------------------------------------------------------*/
611 void FontTable::endCharacterGroup()
614 /*-- 19.06.2006 12:04:36---------------------------------------------------
616 -----------------------------------------------------------------------*/
617 void FontTable::text(const sal_uInt8
*, size_t )
620 /*-- 19.06.2006 12:04:36---------------------------------------------------
622 -----------------------------------------------------------------------*/
623 void FontTable::utext(const sal_uInt8
* , size_t)
626 /*-- 19.06.2006 12:04:37---------------------------------------------------
628 -----------------------------------------------------------------------*/
629 void FontTable::props(writerfilter::Reference
<Properties
>::Pointer_t
)
632 /*-- 19.06.2006 12:04:37---------------------------------------------------
634 -----------------------------------------------------------------------*/
635 void FontTable::table(Id
, writerfilter::Reference
<Table
>::Pointer_t
)
638 /*-- 19.06.2006 12:04:38---------------------------------------------------
640 -----------------------------------------------------------------------*/
641 void FontTable::substream(Id
, ::writerfilter::Reference
<Stream
>::Pointer_t
)
644 /*-- 19.06.2006 12:04:39---------------------------------------------------
646 -----------------------------------------------------------------------*/
647 void FontTable::info(const string
& )
650 /*-- 21.06.2006 11:21:38---------------------------------------------------
652 -----------------------------------------------------------------------*/
653 const FontEntry
* FontTable::getFontEntry(sal_uInt32 nIndex
)
655 const FontEntry
* pRet
= 0;
656 if(m_pImpl
->aFontEntries
.size() > nIndex
)
658 pRet
= &m_pImpl
->aFontEntries
[nIndex
];
662 /*-- 21.06.2006 11:21:38---------------------------------------------------
664 -----------------------------------------------------------------------*/
665 sal_uInt32
FontTable::size()
667 return m_pImpl
->aFontEntries
.size();
671 }//namespace writerfilter