LibreOffice Module svtools (master) 1
htmlout.cxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20
21#include <svl/numformat.hxx>
22#include <svl/zformat.hxx>
23#include <svl/macitem.hxx>
24#include <vcl/svapp.hxx>
25#include <vcl/settings.hxx>
26
28#include <svtools/htmlout.hxx>
29#include <svtools/htmlkywd.hxx>
30#include <vcl/imap.hxx>
31#include <vcl/imaprect.hxx>
32#include <vcl/imapcirc.hxx>
33#include <vcl/imappoly.hxx>
34#include <svl/urihelper.hxx>
35#include <rtl/character.hxx>
36#include <tools/debug.hxx>
37
38#include <sstream>
39
40#define TXTCONV_BUFFER_SIZE 20
41
42static sal_Size convertUnicodeToText(const sal_Unicode* pSrcBuf, sal_Size nSrcChars, char* pDestBuf,
43 sal_Size nDestBytes, sal_uInt32 nFlags, sal_uInt32* pInfo,
44 sal_Size* pSrcCvtChars)
45{
46 static rtl_UnicodeToTextConverter hConverter
47 = rtl_createUnicodeToTextConverter(RTL_TEXTENCODING_UTF8);
48 static rtl_UnicodeToTextContext hContext = hConverter
49 ? rtl_createUnicodeToTextContext(hConverter)
50 : reinterpret_cast<rtl_TextToUnicodeContext>(1);
51
52 return rtl_convertUnicodeToText(hConverter, hContext, pSrcBuf, nSrcChars, pDestBuf, nDestBytes,
53 nFlags, pInfo, pSrcCvtChars);
54}
55
56static const char *lcl_svhtml_GetEntityForChar( sal_uInt32 c,
57 rtl_TextEncoding eDestEnc )
58{
59 const char* pStr = nullptr;
60
61 // Note: We currently handle special cases for ISO-8859-2 here simply because
62 // the code was already submitted. But we should also handle other code pages
63 // as well as the code becomes available.
64
65 if( eDestEnc == RTL_TEXTENCODING_ISO_8859_2 || eDestEnc == RTL_TEXTENCODING_MS_1250 )
66 {
67 // Don't handle the following characters for Easter European (ISO-8859-2).
68 switch ( c )
69 {
70 case 164: // curren
71 case 184: // ccedil
72 case 193: // Aacute
73 case 194: // Acirc
74 case 196: // Auml
75 case 199: // Ccedil
76 case 201: // Eacute
77 case 203: // Euml
78 case 205: // Iacute
79 case 206: // Icirc
80 case 211: // Oacute
81 case 212: // Ocirc
82 case 214: // Ouml
83 case 215: // times
84 case 218: // Uacute
85 case 220: // Uuml
86 case 221: // Yacute
87 case 225: // aacute
88 case 226: // acirc
89 case 228: // auml
90 case 233: // eacute
91 case 235: // euml
92 case 237: // iacute
93 case 238: // icirc
94 case 243: // oacute
95 case 244: // ocirc
96 case 246: // ouml
97 case 247: // divide
98 case 250: // uacute
99 case 252: // uuml
100 case 253: // yacute
101 case 352: // Scaron
102 case 353: // scaron
103 return pStr;
104 }
105 }
106
107 // TODO: handle more special cases for other code pages.
108
109 switch( c )
110 {
111// case '\x0a': return HTMLOutFuncs::Out_Tag( rStream, OOO_STRING_SVTOOLS_HTML_linebreak );
112
113 case '<': pStr = OOO_STRING_SVTOOLS_HTML_C_lt; break;
114 case '>': pStr = OOO_STRING_SVTOOLS_HTML_C_gt; break;
115 case '&': pStr = OOO_STRING_SVTOOLS_HTML_C_amp; break;
116 case '"': pStr = OOO_STRING_SVTOOLS_HTML_C_quot; break;
117
118 case 161: pStr = OOO_STRING_SVTOOLS_HTML_S_iexcl; break;
119 case 162: pStr = OOO_STRING_SVTOOLS_HTML_S_cent; break;
120 case 163: pStr = OOO_STRING_SVTOOLS_HTML_S_pound; break;
121 case 164: pStr = OOO_STRING_SVTOOLS_HTML_S_curren; break;
122 case 165: pStr = OOO_STRING_SVTOOLS_HTML_S_yen; break;
123 case 166: pStr = OOO_STRING_SVTOOLS_HTML_S_brvbar; break;
124 case 167: pStr = OOO_STRING_SVTOOLS_HTML_S_sect; break;
125 case 168: pStr = OOO_STRING_SVTOOLS_HTML_S_uml; break;
126 case 169: pStr = OOO_STRING_SVTOOLS_HTML_S_copy; break;
127 case 170: pStr = OOO_STRING_SVTOOLS_HTML_S_ordf; break;
128 case 171: pStr = OOO_STRING_SVTOOLS_HTML_S_laquo; break;
129 case 172: pStr = OOO_STRING_SVTOOLS_HTML_S_not; break;
130 case 174: pStr = OOO_STRING_SVTOOLS_HTML_S_reg; break;
131 case 175: pStr = OOO_STRING_SVTOOLS_HTML_S_macr; break;
132 case 176: pStr = OOO_STRING_SVTOOLS_HTML_S_deg; break;
133 case 177: pStr = OOO_STRING_SVTOOLS_HTML_S_plusmn; break;
134 case 178: pStr = OOO_STRING_SVTOOLS_HTML_S_sup2; break;
135 case 179: pStr = OOO_STRING_SVTOOLS_HTML_S_sup3; break;
136 case 180: pStr = OOO_STRING_SVTOOLS_HTML_S_acute; break;
137 case 181: pStr = OOO_STRING_SVTOOLS_HTML_S_micro; break;
138 case 182: pStr = OOO_STRING_SVTOOLS_HTML_S_para; break;
139 case 183: pStr = OOO_STRING_SVTOOLS_HTML_S_middot; break;
140 case 184: pStr = OOO_STRING_SVTOOLS_HTML_S_cedil; break;
141 case 185: pStr = OOO_STRING_SVTOOLS_HTML_S_sup1; break;
142 case 186: pStr = OOO_STRING_SVTOOLS_HTML_S_ordm; break;
143 case 187: pStr = OOO_STRING_SVTOOLS_HTML_S_raquo; break;
144 case 188: pStr = OOO_STRING_SVTOOLS_HTML_S_frac14; break;
145 case 189: pStr = OOO_STRING_SVTOOLS_HTML_S_frac12; break;
146 case 190: pStr = OOO_STRING_SVTOOLS_HTML_S_frac34; break;
147 case 191: pStr = OOO_STRING_SVTOOLS_HTML_S_iquest; break;
148
149 case 192: pStr = OOO_STRING_SVTOOLS_HTML_C_Agrave; break;
150 case 193: pStr = OOO_STRING_SVTOOLS_HTML_C_Aacute; break;
151 case 194: pStr = OOO_STRING_SVTOOLS_HTML_C_Acirc; break;
152 case 195: pStr = OOO_STRING_SVTOOLS_HTML_C_Atilde; break;
153 case 196: pStr = OOO_STRING_SVTOOLS_HTML_C_Auml; break;
154 case 197: pStr = OOO_STRING_SVTOOLS_HTML_C_Aring; break;
155 case 198: pStr = OOO_STRING_SVTOOLS_HTML_C_AElig; break;
156 case 199: pStr = OOO_STRING_SVTOOLS_HTML_C_Ccedil; break;
157 case 200: pStr = OOO_STRING_SVTOOLS_HTML_C_Egrave; break;
158 case 201: pStr = OOO_STRING_SVTOOLS_HTML_C_Eacute; break;
159 case 202: pStr = OOO_STRING_SVTOOLS_HTML_C_Ecirc; break;
160 case 203: pStr = OOO_STRING_SVTOOLS_HTML_C_Euml; break;
161 case 204: pStr = OOO_STRING_SVTOOLS_HTML_C_Igrave; break;
162 case 205: pStr = OOO_STRING_SVTOOLS_HTML_C_Iacute; break;
163 case 206: pStr = OOO_STRING_SVTOOLS_HTML_C_Icirc; break;
164 case 207: pStr = OOO_STRING_SVTOOLS_HTML_C_Iuml; break;
165 case 208: pStr = OOO_STRING_SVTOOLS_HTML_C_ETH; break;
166 case 209: pStr = OOO_STRING_SVTOOLS_HTML_C_Ntilde; break;
167 case 210: pStr = OOO_STRING_SVTOOLS_HTML_C_Ograve; break;
168 case 211: pStr = OOO_STRING_SVTOOLS_HTML_C_Oacute; break;
169 case 212: pStr = OOO_STRING_SVTOOLS_HTML_C_Ocirc; break;
170 case 213: pStr = OOO_STRING_SVTOOLS_HTML_C_Otilde; break;
171 case 214: pStr = OOO_STRING_SVTOOLS_HTML_C_Ouml; break;
172 case 215: pStr = OOO_STRING_SVTOOLS_HTML_S_times; break;
173 case 216: pStr = OOO_STRING_SVTOOLS_HTML_C_Oslash; break;
174 case 217: pStr = OOO_STRING_SVTOOLS_HTML_C_Ugrave; break;
175 case 218: pStr = OOO_STRING_SVTOOLS_HTML_C_Uacute; break;
176 case 219: pStr = OOO_STRING_SVTOOLS_HTML_C_Ucirc; break;
177 case 220: pStr = OOO_STRING_SVTOOLS_HTML_C_Uuml; break;
178 case 221: pStr = OOO_STRING_SVTOOLS_HTML_C_Yacute; break;
179
180 case 222: pStr = OOO_STRING_SVTOOLS_HTML_C_THORN; break;
181 case 223: pStr = OOO_STRING_SVTOOLS_HTML_C_szlig; break;
182
183 case 224: pStr = OOO_STRING_SVTOOLS_HTML_S_agrave; break;
184 case 225: pStr = OOO_STRING_SVTOOLS_HTML_S_aacute; break;
185 case 226: pStr = OOO_STRING_SVTOOLS_HTML_S_acirc; break;
186 case 227: pStr = OOO_STRING_SVTOOLS_HTML_S_atilde; break;
187 case 228: pStr = OOO_STRING_SVTOOLS_HTML_S_auml; break;
188 case 229: pStr = OOO_STRING_SVTOOLS_HTML_S_aring; break;
189 case 230: pStr = OOO_STRING_SVTOOLS_HTML_S_aelig; break;
190 case 231: pStr = OOO_STRING_SVTOOLS_HTML_S_ccedil; break;
191 case 232: pStr = OOO_STRING_SVTOOLS_HTML_S_egrave; break;
192 case 233: pStr = OOO_STRING_SVTOOLS_HTML_S_eacute; break;
193 case 234: pStr = OOO_STRING_SVTOOLS_HTML_S_ecirc; break;
194 case 235: pStr = OOO_STRING_SVTOOLS_HTML_S_euml; break;
195 case 236: pStr = OOO_STRING_SVTOOLS_HTML_S_igrave; break;
196 case 237: pStr = OOO_STRING_SVTOOLS_HTML_S_iacute; break;
197 case 238: pStr = OOO_STRING_SVTOOLS_HTML_S_icirc; break;
198 case 239: pStr = OOO_STRING_SVTOOLS_HTML_S_iuml; break;
199 case 240: pStr = OOO_STRING_SVTOOLS_HTML_S_eth; break;
200 case 241: pStr = OOO_STRING_SVTOOLS_HTML_S_ntilde; break;
201 case 242: pStr = OOO_STRING_SVTOOLS_HTML_S_ograve; break;
202 case 243: pStr = OOO_STRING_SVTOOLS_HTML_S_oacute; break;
203 case 244: pStr = OOO_STRING_SVTOOLS_HTML_S_ocirc; break;
204 case 245: pStr = OOO_STRING_SVTOOLS_HTML_S_otilde; break;
205 case 246: pStr = OOO_STRING_SVTOOLS_HTML_S_ouml; break;
206 case 247: pStr = OOO_STRING_SVTOOLS_HTML_S_divide; break;
207 case 248: pStr = OOO_STRING_SVTOOLS_HTML_S_oslash; break;
208 case 249: pStr = OOO_STRING_SVTOOLS_HTML_S_ugrave; break;
209 case 250: pStr = OOO_STRING_SVTOOLS_HTML_S_uacute; break;
210 case 251: pStr = OOO_STRING_SVTOOLS_HTML_S_ucirc; break;
211 case 252: pStr = OOO_STRING_SVTOOLS_HTML_S_uuml; break;
212 case 253: pStr = OOO_STRING_SVTOOLS_HTML_S_yacute; break;
213 case 254: pStr = OOO_STRING_SVTOOLS_HTML_S_thorn; break;
214 case 255: pStr = OOO_STRING_SVTOOLS_HTML_S_yuml; break;
215
216 case 338: pStr = OOO_STRING_SVTOOLS_HTML_S_OElig; break;
217 case 339: pStr = OOO_STRING_SVTOOLS_HTML_S_oelig; break;
218 case 352: pStr = OOO_STRING_SVTOOLS_HTML_S_Scaron; break;
219 case 353: pStr = OOO_STRING_SVTOOLS_HTML_S_scaron; break;
220 case 376: pStr = OOO_STRING_SVTOOLS_HTML_S_Yuml; break;
221 case 402: pStr = OOO_STRING_SVTOOLS_HTML_S_fnof; break;
222 case 710: pStr = OOO_STRING_SVTOOLS_HTML_S_circ; break;
223 case 732: pStr = OOO_STRING_SVTOOLS_HTML_S_tilde; break;
224
225 // Greek chars are handled later,
226 // since they should *not* be transformed to entities
227 // when generating Greek text (== using Greek encoding)
228
229 case 8194: pStr = OOO_STRING_SVTOOLS_HTML_S_ensp; break;
230 case 8195: pStr = OOO_STRING_SVTOOLS_HTML_S_emsp; break;
231 case 8201: pStr = OOO_STRING_SVTOOLS_HTML_S_thinsp; break;
232 case 8204: pStr = OOO_STRING_SVTOOLS_HTML_S_zwnj; break;
233 case 8205: pStr = OOO_STRING_SVTOOLS_HTML_S_zwj; break;
234 case 8206: pStr = OOO_STRING_SVTOOLS_HTML_S_lrm; break;
235 case 8207: pStr = OOO_STRING_SVTOOLS_HTML_S_rlm; break;
236 case 8211: pStr = OOO_STRING_SVTOOLS_HTML_S_ndash; break;
237 case 8212: pStr = OOO_STRING_SVTOOLS_HTML_S_mdash; break;
238 case 8216: pStr = OOO_STRING_SVTOOLS_HTML_S_lsquo; break;
239 case 8217: pStr = OOO_STRING_SVTOOLS_HTML_S_rsquo; break;
240 case 8218: pStr = OOO_STRING_SVTOOLS_HTML_S_sbquo; break;
241 case 8220: pStr = OOO_STRING_SVTOOLS_HTML_S_ldquo; break;
242 case 8221: pStr = OOO_STRING_SVTOOLS_HTML_S_rdquo; break;
243 case 8222: pStr = OOO_STRING_SVTOOLS_HTML_S_bdquo; break;
244 case 8224: pStr = OOO_STRING_SVTOOLS_HTML_S_dagger; break;
245 case 8225: pStr = OOO_STRING_SVTOOLS_HTML_S_Dagger; break;
246 case 8226: pStr = OOO_STRING_SVTOOLS_HTML_S_bull; break;
247 case 8230: pStr = OOO_STRING_SVTOOLS_HTML_S_hellip; break;
248 case 8240: pStr = OOO_STRING_SVTOOLS_HTML_S_permil; break;
249 case 8242: pStr = OOO_STRING_SVTOOLS_HTML_S_prime; break;
250 case 8243: pStr = OOO_STRING_SVTOOLS_HTML_S_Prime; break;
251 case 8249: pStr = OOO_STRING_SVTOOLS_HTML_S_lsaquo; break;
252 case 8250: pStr = OOO_STRING_SVTOOLS_HTML_S_rsaquo; break;
253 case 8254: pStr = OOO_STRING_SVTOOLS_HTML_S_oline; break;
254 case 8260: pStr = OOO_STRING_SVTOOLS_HTML_S_frasl; break;
255 case 8364: pStr = OOO_STRING_SVTOOLS_HTML_S_euro; break;
256 case 8465: pStr = OOO_STRING_SVTOOLS_HTML_S_image; break;
257 case 8472: pStr = OOO_STRING_SVTOOLS_HTML_S_weierp; break;
258 case 8476: pStr = OOO_STRING_SVTOOLS_HTML_S_real; break;
259 case 8482: pStr = OOO_STRING_SVTOOLS_HTML_S_trade; break;
260 case 8501: pStr = OOO_STRING_SVTOOLS_HTML_S_alefsym; break;
261 case 8592: pStr = OOO_STRING_SVTOOLS_HTML_S_larr; break;
262 case 8593: pStr = OOO_STRING_SVTOOLS_HTML_S_uarr; break;
263 case 8594: pStr = OOO_STRING_SVTOOLS_HTML_S_rarr; break;
264 case 8595: pStr = OOO_STRING_SVTOOLS_HTML_S_darr; break;
265 case 8596: pStr = OOO_STRING_SVTOOLS_HTML_S_harr; break;
266 case 8629: pStr = OOO_STRING_SVTOOLS_HTML_S_crarr; break;
267 case 8656: pStr = OOO_STRING_SVTOOLS_HTML_S_lArr; break;
268 case 8657: pStr = OOO_STRING_SVTOOLS_HTML_S_uArr; break;
269 case 8658: pStr = OOO_STRING_SVTOOLS_HTML_S_rArr; break;
270 case 8659: pStr = OOO_STRING_SVTOOLS_HTML_S_dArr; break;
271 case 8660: pStr = OOO_STRING_SVTOOLS_HTML_S_hArr; break;
272 case 8704: pStr = OOO_STRING_SVTOOLS_HTML_S_forall; break;
273 case 8706: pStr = OOO_STRING_SVTOOLS_HTML_S_part; break;
274 case 8707: pStr = OOO_STRING_SVTOOLS_HTML_S_exist; break;
275 case 8709: pStr = OOO_STRING_SVTOOLS_HTML_S_empty; break;
276 case 8711: pStr = OOO_STRING_SVTOOLS_HTML_S_nabla; break;
277 case 8712: pStr = OOO_STRING_SVTOOLS_HTML_S_isin; break;
278 case 8713: pStr = OOO_STRING_SVTOOLS_HTML_S_notin; break;
279 case 8715: pStr = OOO_STRING_SVTOOLS_HTML_S_ni; break;
280 case 8719: pStr = OOO_STRING_SVTOOLS_HTML_S_prod; break;
281 case 8721: pStr = OOO_STRING_SVTOOLS_HTML_S_sum; break;
282 case 8722: pStr = OOO_STRING_SVTOOLS_HTML_S_minus; break;
283 case 8727: pStr = OOO_STRING_SVTOOLS_HTML_S_lowast; break;
284 case 8730: pStr = OOO_STRING_SVTOOLS_HTML_S_radic; break;
285 case 8733: pStr = OOO_STRING_SVTOOLS_HTML_S_prop; break;
286 case 8734: pStr = OOO_STRING_SVTOOLS_HTML_S_infin; break;
287 case 8736: pStr = OOO_STRING_SVTOOLS_HTML_S_ang; break;
288 case 8743: pStr = OOO_STRING_SVTOOLS_HTML_S_and; break;
289 case 8744: pStr = OOO_STRING_SVTOOLS_HTML_S_or; break;
290 case 8745: pStr = OOO_STRING_SVTOOLS_HTML_S_cap; break;
291 case 8746: pStr = OOO_STRING_SVTOOLS_HTML_S_cup; break;
292 case 8747: pStr = OOO_STRING_SVTOOLS_HTML_S_int; break;
293 case 8756: pStr = OOO_STRING_SVTOOLS_HTML_S_there4; break;
294 case 8764: pStr = OOO_STRING_SVTOOLS_HTML_S_sim; break;
295 case 8773: pStr = OOO_STRING_SVTOOLS_HTML_S_cong; break;
296 case 8776: pStr = OOO_STRING_SVTOOLS_HTML_S_asymp; break;
297 case 8800: pStr = OOO_STRING_SVTOOLS_HTML_S_ne; break;
298 case 8801: pStr = OOO_STRING_SVTOOLS_HTML_S_equiv; break;
299 case 8804: pStr = OOO_STRING_SVTOOLS_HTML_S_le; break;
300 case 8805: pStr = OOO_STRING_SVTOOLS_HTML_S_ge; break;
301 case 8834: pStr = OOO_STRING_SVTOOLS_HTML_S_sub; break;
302 case 8835: pStr = OOO_STRING_SVTOOLS_HTML_S_sup; break;
303 case 8836: pStr = OOO_STRING_SVTOOLS_HTML_S_nsub; break;
304 case 8838: pStr = OOO_STRING_SVTOOLS_HTML_S_sube; break;
305 case 8839: pStr = OOO_STRING_SVTOOLS_HTML_S_supe; break;
306 case 8853: pStr = OOO_STRING_SVTOOLS_HTML_S_oplus; break;
307 case 8855: pStr = OOO_STRING_SVTOOLS_HTML_S_otimes; break;
308 case 8869: pStr = OOO_STRING_SVTOOLS_HTML_S_perp; break;
309 case 8901: pStr = OOO_STRING_SVTOOLS_HTML_S_sdot; break;
310 case 8968: pStr = OOO_STRING_SVTOOLS_HTML_S_lceil; break;
311 case 8969: pStr = OOO_STRING_SVTOOLS_HTML_S_rceil; break;
312 case 8970: pStr = OOO_STRING_SVTOOLS_HTML_S_lfloor; break;
313 case 8971: pStr = OOO_STRING_SVTOOLS_HTML_S_rfloor; break;
314 case 9001: pStr = OOO_STRING_SVTOOLS_HTML_S_lang; break;
315 case 9002: pStr = OOO_STRING_SVTOOLS_HTML_S_rang; break;
316 case 9674: pStr = OOO_STRING_SVTOOLS_HTML_S_loz; break;
317 case 9824: pStr = OOO_STRING_SVTOOLS_HTML_S_spades; break;
318 case 9827: pStr = OOO_STRING_SVTOOLS_HTML_S_clubs; break;
319 case 9829: pStr = OOO_STRING_SVTOOLS_HTML_S_hearts; break;
320 case 9830: pStr = OOO_STRING_SVTOOLS_HTML_S_diams; break;
321 }
322
323 // Greek chars: if we do not produce a Greek encoding,
324 // transform them into entities
325 if( !pStr &&
326 ( eDestEnc != RTL_TEXTENCODING_ISO_8859_7 ) &&
327 ( eDestEnc != RTL_TEXTENCODING_MS_1253 ) )
328 {
329 switch( c )
330 {
331 case 913: pStr = OOO_STRING_SVTOOLS_HTML_S_Alpha; break;
332 case 914: pStr = OOO_STRING_SVTOOLS_HTML_S_Beta; break;
333 case 915: pStr = OOO_STRING_SVTOOLS_HTML_S_Gamma; break;
334 case 916: pStr = OOO_STRING_SVTOOLS_HTML_S_Delta; break;
335 case 917: pStr = OOO_STRING_SVTOOLS_HTML_S_Epsilon; break;
336 case 918: pStr = OOO_STRING_SVTOOLS_HTML_S_Zeta; break;
337 case 919: pStr = OOO_STRING_SVTOOLS_HTML_S_Eta; break;
338 case 920: pStr = OOO_STRING_SVTOOLS_HTML_S_Theta; break;
339 case 921: pStr = OOO_STRING_SVTOOLS_HTML_S_Iota; break;
340 case 922: pStr = OOO_STRING_SVTOOLS_HTML_S_Kappa; break;
341 case 923: pStr = OOO_STRING_SVTOOLS_HTML_S_Lambda; break;
342 case 924: pStr = OOO_STRING_SVTOOLS_HTML_S_Mu; break;
343 case 925: pStr = OOO_STRING_SVTOOLS_HTML_S_Nu; break;
344 case 926: pStr = OOO_STRING_SVTOOLS_HTML_S_Xi; break;
345 case 927: pStr = OOO_STRING_SVTOOLS_HTML_S_Omicron; break;
346 case 928: pStr = OOO_STRING_SVTOOLS_HTML_S_Pi; break;
347 case 929: pStr = OOO_STRING_SVTOOLS_HTML_S_Rho; break;
348 case 931: pStr = OOO_STRING_SVTOOLS_HTML_S_Sigma; break;
349 case 932: pStr = OOO_STRING_SVTOOLS_HTML_S_Tau; break;
350 case 933: pStr = OOO_STRING_SVTOOLS_HTML_S_Upsilon; break;
351 case 934: pStr = OOO_STRING_SVTOOLS_HTML_S_Phi; break;
352 case 935: pStr = OOO_STRING_SVTOOLS_HTML_S_Chi; break;
353 case 936: pStr = OOO_STRING_SVTOOLS_HTML_S_Psi; break;
354 case 937: pStr = OOO_STRING_SVTOOLS_HTML_S_Omega; break;
355 case 945: pStr = OOO_STRING_SVTOOLS_HTML_S_alpha; break;
356 case 946: pStr = OOO_STRING_SVTOOLS_HTML_S_beta; break;
357 case 947: pStr = OOO_STRING_SVTOOLS_HTML_S_gamma; break;
358 case 948: pStr = OOO_STRING_SVTOOLS_HTML_S_delta; break;
359 case 949: pStr = OOO_STRING_SVTOOLS_HTML_S_epsilon; break;
360 case 950: pStr = OOO_STRING_SVTOOLS_HTML_S_zeta; break;
361 case 951: pStr = OOO_STRING_SVTOOLS_HTML_S_eta; break;
362 case 952: pStr = OOO_STRING_SVTOOLS_HTML_S_theta; break;
363 case 953: pStr = OOO_STRING_SVTOOLS_HTML_S_iota; break;
364 case 954: pStr = OOO_STRING_SVTOOLS_HTML_S_kappa; break;
365 case 955: pStr = OOO_STRING_SVTOOLS_HTML_S_lambda; break;
366 case 956: pStr = OOO_STRING_SVTOOLS_HTML_S_mu; break;
367 case 957: pStr = OOO_STRING_SVTOOLS_HTML_S_nu; break;
368 case 958: pStr = OOO_STRING_SVTOOLS_HTML_S_xi; break;
369 case 959: pStr = OOO_STRING_SVTOOLS_HTML_S_omicron; break;
370 case 960: pStr = OOO_STRING_SVTOOLS_HTML_S_pi; break;
371 case 961: pStr = OOO_STRING_SVTOOLS_HTML_S_rho; break;
372 case 962: pStr = OOO_STRING_SVTOOLS_HTML_S_sigmaf; break;
373 case 963: pStr = OOO_STRING_SVTOOLS_HTML_S_sigma; break;
374 case 964: pStr = OOO_STRING_SVTOOLS_HTML_S_tau; break;
375 case 965: pStr = OOO_STRING_SVTOOLS_HTML_S_upsilon; break;
376 case 966: pStr = OOO_STRING_SVTOOLS_HTML_S_phi; break;
377 case 967: pStr = OOO_STRING_SVTOOLS_HTML_S_chi; break;
378 case 968: pStr = OOO_STRING_SVTOOLS_HTML_S_psi; break;
379 case 969: pStr = OOO_STRING_SVTOOLS_HTML_S_omega; break;
380 case 977: pStr = OOO_STRING_SVTOOLS_HTML_S_thetasym;break;
381 case 978: pStr = OOO_STRING_SVTOOLS_HTML_S_upsih; break;
382 case 982: pStr = OOO_STRING_SVTOOLS_HTML_S_piv; break;
383 }
384 }
385
386 return pStr;
387}
388
389static sal_Size lcl_FlushContext(char* pBuffer, sal_uInt32 nFlags)
390{
391 sal_uInt32 nInfo = 0;
392 sal_Size nSrcChars;
393 sal_Size nLen = convertUnicodeToText(nullptr, 0,
394 pBuffer, TXTCONV_BUFFER_SIZE, nFlags|RTL_UNICODETOTEXT_FLAGS_FLUSH,
395 &nInfo, &nSrcChars);
396 DBG_ASSERT((nInfo & (RTL_UNICODETOTEXT_INFO_ERROR|RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL)) == 0, "HTMLOut: error while flushing");
397 return nLen;
398}
399
400static OString lcl_ConvertCharToHTML( sal_uInt32 c,
401 OUString *pNonConvertableChars )
402{
403 assert(rtl::isUnicodeCodePoint(c));
404
405 OStringBuffer aDest;
406 const char *pStr = nullptr;
407 switch( c )
408 {
409 case 0xA0: // is a hard blank
411 break;
412 case 0x2011: // is a hard hyphen
413 pStr = "#8209";
414 break;
415 case 0xAD: // is a soft hyphen
417 break;
418 default:
419 // There may be an entity for the character.
420 // The new HTML4 entities above 255 are not used for UTF-8,
421 // because Netscape 4 does support UTF-8 but does not support
422 // these entities.
423 if( c < 128 )
424 pStr = lcl_svhtml_GetEntityForChar( c, RTL_TEXTENCODING_UTF8 );
425 break;
426 }
427
428 char cBuffer[TXTCONV_BUFFER_SIZE];
429 const sal_uInt32 nFlags = RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE|
430 RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE|
431 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR|
432 RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR;
433 if( pStr )
434 {
435 sal_Size nLen = lcl_FlushContext(cBuffer, nFlags);
436 char *pBuffer = cBuffer;
437 while( nLen-- )
438 aDest.append(*pBuffer++);
439 aDest.append(OString::Concat("&") + pStr + ";");
440 }
441 else
442 {
443 sal_uInt32 nInfo = 0;
444 sal_Size nSrcChars;
445
446 sal_Unicode utf16[2];
447 auto n = rtl::splitSurrogates(c, utf16);
448 sal_Size nLen = convertUnicodeToText(utf16, n,
449 cBuffer, TXTCONV_BUFFER_SIZE,
450 nFlags, &nInfo, &nSrcChars);
451 if( nLen > 0 && (nInfo & (RTL_UNICODETOTEXT_INFO_ERROR|RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL)) == 0 )
452 {
453 char *pBuffer = cBuffer;
454 while( nLen-- )
455 aDest.append(*pBuffer++);
456 }
457 else
458 {
459 // If the character could not be converted to the destination
460 // character set, the UNICODE character is exported as character
461 // entity.
462 // coverity[callee_ptr_arith] - its ok
463 nLen = lcl_FlushContext(cBuffer, nFlags);
464 char *pBuffer = cBuffer;
465 while( nLen-- )
466 aDest.append(*pBuffer++);
467
468 aDest.append("&#" + OString::number(static_cast<sal_Int32>(c))
469 // Unicode code points guaranteed to fit into sal_Int32
470 + ";");
471 if( pNonConvertableChars )
472 {
473 OUString cs(&c, 1);
474 if( -1 == pNonConvertableChars->indexOf( cs ) )
475 (*pNonConvertableChars) += cs;
476 }
477 }
478 }
479 return aDest.makeStringAndClear();
480}
481
482static OString lcl_FlushToAscii()
483{
484 OStringBuffer aDest;
485
486 char cBuffer[TXTCONV_BUFFER_SIZE];
487 const sal_uInt32 nFlags = RTL_UNICODETOTEXT_FLAGS_NONSPACING_IGNORE|
488 RTL_UNICODETOTEXT_FLAGS_CONTROL_IGNORE|
489 RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR|
490 RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR;
491 sal_Size nLen = lcl_FlushContext(cBuffer, nFlags);
492 char *pBuffer = cBuffer;
493 while( nLen-- )
494 aDest.append(*pBuffer++);
495 return aDest.makeStringAndClear();
496}
497
498OString HTMLOutFuncs::ConvertStringToHTML( const OUString& rSrc,
499 OUString *pNonConvertableChars )
500{
501 OStringBuffer aDest;
502 for( sal_Int32 i=0, nLen = rSrc.getLength(); i < nLen; )
503 aDest.append(lcl_ConvertCharToHTML(
504 rSrc.iterateCodePoints(&i), pNonConvertableChars));
505 aDest.append(lcl_FlushToAscii());
506 return aDest.makeStringAndClear();
507}
508
509SvStream& HTMLOutFuncs::Out_AsciiTag( SvStream& rStream, std::string_view rStr,
510 bool bOn )
511{
512 if(bOn)
513 rStream.WriteOString("<");
514 else
515 rStream.WriteOString("</");
516
517 rStream.WriteOString(rStr).WriteChar('>');
518
519 return rStream;
520}
521
522SvStream& HTMLOutFuncs::Out_Char( SvStream& rStream, sal_uInt32 c,
523 OUString *pNonConvertableChars )
524{
525 OString sOut = lcl_ConvertCharToHTML( c, pNonConvertableChars );
526 rStream.WriteOString( sOut );
527 return rStream;
528}
529
530SvStream& HTMLOutFuncs::Out_String( SvStream& rStream, const OUString& rOUStr,
531 OUString *pNonConvertableChars )
532{
533 sal_Int32 nLen = rOUStr.getLength();
534 for( sal_Int32 n = 0; n < nLen; )
535 HTMLOutFuncs::Out_Char( rStream, rOUStr.iterateCodePoints(&n),
536 pNonConvertableChars );
538 return rStream;
539}
540
542{
543 OString sOut = lcl_FlushToAscii();
544
545 if (!sOut.isEmpty())
546 rStream.WriteOString( sOut );
547
548 return rStream;
549}
550
551SvStream& HTMLOutFuncs::Out_Hex( SvStream& rStream, sal_uInt32 nHex, sal_uInt8 nLen )
552{ // out into a stream
553 char aNToABuf[] = "0000000000000000";
554
555 DBG_ASSERT( nLen < sizeof(aNToABuf), "too many places" );
556 if( nLen>=sizeof(aNToABuf) )
557 nLen = (sizeof(aNToABuf)-1);
558
559 // set pointer to end of buffer
560 char *pStr = aNToABuf + (sizeof(aNToABuf)-1);
561 for( sal_uInt8 n = 0; n < nLen; ++n )
562 {
563 *(--pStr) = static_cast<char>(nHex & 0xf ) + 48;
564 if( *pStr > '9' )
565 *pStr += 39;
566 nHex >>= 4;
567 }
568 return rStream.WriteOString( pStr );
569}
570
571
572SvStream& HTMLOutFuncs::Out_Color( SvStream& rStream, const Color& rColor, bool bXHTML )
573{
574 rStream.WriteOString( "\"" );
575 if (bXHTML)
576 rStream.WriteOString( "color: " );
577 rStream.WriteOString( "#" );
578 if( rColor == COL_AUTO )
579 {
580 rStream.WriteOString( "000000" );
581 }
582 else
583 {
584 Out_Hex( rStream, rColor.GetRed(), 2 );
585 Out_Hex( rStream, rColor.GetGreen(), 2 );
586 Out_Hex( rStream, rColor.GetBlue(), 2 );
587 }
588 rStream.WriteChar( '\"' );
589
590 return rStream;
591}
592
594 const OUString& rBaseURL,
595 const ImageMap& rIMap,
596 const OUString& rName,
597 const HTMLOutEvent *pEventTable,
598 bool bOutStarBasic,
599 const char *pDelim,
600 const char *pIndentArea,
601 const char *pIndentMap )
602{
603 const OUString& rOutName = !rName.isEmpty() ? rName : rIMap.GetName();
604 DBG_ASSERT( !rOutName.isEmpty(), "No ImageMap-Name" );
605 if( rOutName.isEmpty() )
606 return rStream;
607
608 OStringBuffer sOut =
609 OString::Concat("<") +
611 " "
613 "=\"";
614 rStream.WriteOString( sOut );
615 sOut.setLength(0);
616 Out_String( rStream, rOutName );
617 rStream.WriteOString( "\">" );
618
619 for( size_t i=0; i<rIMap.GetIMapObjectCount(); i++ )
620 {
621 const IMapObject* pObj = rIMap.GetIMapObject( i );
622 DBG_ASSERT( pObj, "Where is the ImageMap-Object?" );
623
624 if( pObj )
625 {
626 const char *pShape = nullptr;
627 OString aCoords;
628 switch( pObj->GetType() )
629 {
630 case IMapObjectType::Rectangle:
631 {
632 const IMapRectangleObject* pRectObj =
633 static_cast<const IMapRectangleObject *>(pObj);
635 tools::Rectangle aRect( pRectObj->GetRectangle() );
636
637 aCoords =
638 OString::number(static_cast<sal_Int32>(aRect.Left()))
639 + ","
640 + OString::number(static_cast<sal_Int32>(aRect.Top()))
641 + ","
642 + OString::number(static_cast<sal_Int32>(aRect.Right()))
643 + ","
644 + OString::number(static_cast<sal_Int32>(aRect.Bottom()));;
645 }
646 break;
647 case IMapObjectType::Circle:
648 {
649 const IMapCircleObject* pCirc =
650 static_cast<const IMapCircleObject *>(pObj);
652 Point aCenter( pCirc->GetCenter() );
653 tools::Long nOff = pCirc->GetRadius();
654
655 aCoords =
656 OString::number(static_cast<sal_Int32>(aCenter.X()))
657 + ","
658 + OString::number(static_cast<sal_Int32>(aCenter.Y()))
659 + ","
660 + OString::number(static_cast<sal_Int32>(nOff));
661 }
662 break;
663 case IMapObjectType::Polygon:
664 {
665 const IMapPolygonObject* pPolyObj =
666 static_cast<const IMapPolygonObject *>(pObj);
668 tools::Polygon aPoly( pPolyObj->GetPolygon() );
669 sal_uInt16 nCount = aPoly.GetSize();
670 OString aTmpBuf;
671 if( nCount>0 )
672 {
673 const Point& rPoint = aPoly[0];
674 aTmpBuf = OString::number(static_cast<sal_Int32>(rPoint.X()))
675 + ","
676 + OString::number(static_cast<sal_Int32>(rPoint.Y()));
677 }
678 for( sal_uInt16 j=1; j<nCount; j++ )
679 {
680 const Point& rPoint = aPoly[j];
681 aTmpBuf =
682 ","
683 + OString::number(static_cast<sal_Int32>(rPoint.X()))
684 + ","
685 + OString::number(static_cast<sal_Int32>(rPoint.Y()));
686 }
687 aCoords = aTmpBuf;
688 }
689 break;
690 default:
691 DBG_ASSERT( pShape, "unknown IMapObject" );
692 break;
693 }
694
695 if( pShape )
696 {
697 if( pDelim )
698 rStream.WriteOString( pDelim );
699 if( pIndentArea )
700 rStream.WriteOString( pIndentArea );
701
702 sOut.append(OString::Concat("<") + OOO_STRING_SVTOOLS_HTML_area
704 "=" + pShape + " "
706 aCoords + "\" ");
707 rStream.WriteOString( sOut );
708 sOut.setLength(0);
709
710 OUString aURL( pObj->GetURL() );
711 if( !aURL.isEmpty() && pObj->IsActive() )
712 {
714 rBaseURL, aURL );
715 sOut.append(OOO_STRING_SVTOOLS_HTML_O_href "=\"");
716 rStream.WriteOString( sOut );
717 sOut.setLength(0);
718 Out_String( rStream, aURL ).WriteChar( '\"' );
719 }
720 else
722
723 const OUString& rObjName = pObj->GetName();
724 if( !rObjName.isEmpty() )
725 {
726 sOut.append(" " OOO_STRING_SVTOOLS_HTML_O_name "=\"");
727 rStream.WriteOString( sOut );
728 sOut.setLength(0);
729 Out_String( rStream, rObjName ).WriteChar( '\"' );
730 }
731
732 const OUString& rTarget = pObj->GetTarget();
733 if( !rTarget.isEmpty() && pObj->IsActive() )
734 {
735 sOut.append(" " OOO_STRING_SVTOOLS_HTML_O_target "=\"");
736 rStream.WriteOString( sOut );
737 sOut.setLength(0);
738 Out_String( rStream, rTarget ).WriteChar( '\"' );
739 }
740
741 OUString rDesc( pObj->GetAltText() );
742 if( rDesc.isEmpty() )
743 rDesc = pObj->GetDesc();
744
745 if( !rDesc.isEmpty() )
746 {
747 sOut.append(" " OOO_STRING_SVTOOLS_HTML_O_alt "=\"");
748 rStream.WriteOString( sOut );
749 sOut.setLength(0);
750 Out_String( rStream, rDesc ).WriteChar( '\"' );
751 }
752
753 const SvxMacroTableDtor& rMacroTab = pObj->GetMacroTable();
754 if( pEventTable && !rMacroTab.empty() )
755 Out_Events( rStream, rMacroTab, pEventTable,
756 bOutStarBasic );
757
758 rStream.WriteChar( '>' );
759 }
760 }
761
762 }
763
764 if( pDelim )
765 rStream.WriteOString( pDelim );
766 if( pIndentMap )
767 rStream.WriteOString( pIndentMap );
768 Out_AsciiTag( rStream, OOO_STRING_SVTOOLS_HTML_map, false );
769
770 return rStream;
771}
772
774 const OUString& rBaseURL,
775 std::u16string_view rSource,
776 const OUString& rLanguage,
777 ScriptType eScriptType,
778 const OUString& rSrc,
779 const OUString *pSBLibrary,
780 const OUString *pSBModule )
781{
782 // script is not indented!
783 OStringBuffer sOut("<" OOO_STRING_SVTOOLS_HTML_script);
784
785 if( !rLanguage.isEmpty() )
786 {
787 sOut.append(" " OOO_STRING_SVTOOLS_HTML_O_language "=\"");
788 rStrm.WriteOString( sOut );
789 sOut.setLength(0);
790 Out_String( rStrm, rLanguage );
791 sOut.append('\"');
792 }
793
794 if( !rSrc.isEmpty() )
795 {
796 sOut.append(" " OOO_STRING_SVTOOLS_HTML_O_src "=\"");
797 rStrm.WriteOString( sOut );
798 sOut.setLength(0);
800 sOut.append('\"');
801 }
802
803 if( STARBASIC != eScriptType && pSBLibrary )
804 {
805 sOut.append(" " OOO_STRING_SVTOOLS_HTML_O_sdlibrary "=\"");
806 rStrm.WriteOString( sOut );
807 sOut.setLength(0);
808 Out_String( rStrm, *pSBLibrary );
809 sOut.append('\"');
810 }
811
812 if( STARBASIC != eScriptType && pSBModule )
813 {
814 sOut.append(" " OOO_STRING_SVTOOLS_HTML_O_sdmodule "=\"");
815 rStrm.WriteOString( sOut );
816 sOut.setLength(0);
817 Out_String( rStrm, *pSBModule );
818 sOut.append('\"');
819 }
820
821 sOut.append('>');
822
823 rStrm.WriteOString( sOut );
824 sOut.setLength(0);
825
826 if( !rSource.empty() || pSBLibrary || pSBModule )
827 {
829
830 if( JAVASCRIPT != eScriptType )
831 {
832 rStrm.WriteOString( "<!--" )
834 }
835
836 if( STARBASIC == eScriptType )
837 {
838 if( pSBLibrary )
839 {
840 sOut.append("' " OOO_STRING_SVTOOLS_HTML_SB_library " " +
841 OUStringToOString(*pSBLibrary, RTL_TEXTENCODING_UTF8));
843 sOut.setLength(0);
844 }
845
846 if( pSBModule )
847 {
848 sOut.append("' " OOO_STRING_SVTOOLS_HTML_SB_module " " +
849 OUStringToOString(*pSBModule, RTL_TEXTENCODING_UTF8));
851 sOut.setLength(0);
852 }
853 }
854
855 if( !rSource.empty() )
856 {
857 // we write the module in ANSI-charset, but with
858 // the system new line.
859 const OString sSource(OUStringToOString(rSource, RTL_TEXTENCODING_UTF8));
861 }
863
864 if( JAVASCRIPT != eScriptType )
865 {
866 // MIB/MM: if it is not StarBasic, a // could be wrong.
867 // As the comment is removed during reading, it is not helping us...
868 rStrm.WriteOString( STARBASIC == eScriptType ? "' -->" : "// -->" )
870 }
871 }
872
874
875 return rStrm;
876}
877
878
880 const SvxMacroTableDtor& rMacroTable,
881 const HTMLOutEvent *pEventTable,
882 bool bOutStarBasic,
883 OUString *pNonConvertableChars )
884{
885 sal_uInt16 i=0;
886 while( pEventTable[i].pBasicName || pEventTable[i].pJavaName )
887 {
888 const SvxMacro *pMacro =
889 rMacroTable.Get( pEventTable[i].nEvent );
890
891 if( pMacro && pMacro->HasMacro() &&
892 ( JAVASCRIPT == pMacro->GetScriptType() || bOutStarBasic ))
893 {
894 const char *pStr = STARBASIC == pMacro->GetScriptType()
895 ? pEventTable[i].pBasicName
896 : pEventTable[i].pJavaName;
897
898 if( pStr )
899 {
900 OString sOut = OString::Concat(" ") + pStr + "=\"";
901 rStrm.WriteOString( sOut );
902
903 Out_String( rStrm, pMacro->GetMacName(), pNonConvertableChars ).WriteChar( '\"' );
904 }
905 }
906 i++;
907 }
908
909 return rStrm;
910}
911
913 bool bValue,
914 double fVal, sal_uInt32 nFormat, SvNumberFormatter& rFormatter,
915 OUString* pNonConvertableChars)
916{
917 OStringBuffer aStrTD;
918
919 if ( bValue )
920 {
921 // printf / scanf is not precise enough
922 OUString aValStr;
923 rFormatter.GetInputLineString( fVal, 0, aValStr );
924 OString sTmp(OUStringToOString(aValStr, RTL_TEXTENCODING_UTF8));
925 aStrTD.append(" " OOO_STRING_SVTOOLS_HTML_O_SDval "=\"" +
926 sTmp + "\"");
927 }
928 if ( bValue || nFormat )
929 {
930 aStrTD.append(" " OOO_STRING_SVTOOLS_HTML_O_SDnum "=\"" +
931 OString::number(static_cast<sal_uInt16>(
932 Application::GetSettings().GetLanguageTag().getLanguageType())) +
933 ";"); // Language for Format 0
934 if ( nFormat )
935 {
936 OString aNumStr;
937 LanguageType nLang;
938 const SvNumberformat* pFormatEntry = rFormatter.GetEntry( nFormat );
939 if ( pFormatEntry )
940 {
941 aNumStr = ConvertStringToHTML( pFormatEntry->GetFormatstring(),
942 pNonConvertableChars );
943 nLang = pFormatEntry->GetLanguage();
944 }
945 else
946 nLang = LANGUAGE_SYSTEM;
947 aStrTD.append(
948 OString::number(static_cast<sal_Int32>(static_cast<sal_uInt16>(nLang)))
949 + ";"
950 + aNumStr);
951 }
952 aStrTD.append('\"');
953 }
954 return aStrTD.makeStringAndClear();
955}
956
958{
959 if( rURL.startsWith(OOO_STRING_SVTOOLS_HTML_private_image) )
960 {
961 rURL = rURL.copy( strlen(OOO_STRING_SVTOOLS_HTML_private_image) );
962 return true;
963 }
964
965 return false;
966}
967
968void HtmlWriterHelper::applyColor(HtmlWriter& rHtmlWriter, std::string_view aAttributeName, const Color& rColor)
969{
970 OStringBuffer sBuffer;
971
972 if( rColor == COL_AUTO )
973 {
974 sBuffer.append("#000000");
975 }
976 else
977 {
978 sBuffer.append('#');
979 std::ostringstream sStringStream;
980 sStringStream
981 << std::right
982 << std::setfill('0')
983 << std::setw(6)
984 << std::hex
985 << sal_uInt32(rColor.GetRGBColor());
986 sBuffer.append(sStringStream.str().c_str());
987 }
988
989 rHtmlWriter.attribute(aAttributeName, sBuffer);
990}
991
992
993void HtmlWriterHelper::applyEvents(HtmlWriter& rHtmlWriter, const SvxMacroTableDtor& rMacroTable, const HTMLOutEvent* pEventTable, bool bOutStarBasic)
994{
995 sal_uInt16 i = 0;
996 while (pEventTable[i].pBasicName || pEventTable[i].pJavaName)
997 {
998 const SvxMacro* pMacro = rMacroTable.Get(pEventTable[i].nEvent);
999
1000 if (pMacro && pMacro->HasMacro() && (JAVASCRIPT == pMacro->GetScriptType() || bOutStarBasic))
1001 {
1002 const char* pAttributeName = nullptr;
1003 if (STARBASIC == pMacro->GetScriptType())
1004 pAttributeName = pEventTable[i].pBasicName;
1005 else
1006 pAttributeName = pEventTable[i].pJavaName;
1007
1008 if (pAttributeName)
1009 {
1010 rHtmlWriter.attribute(pAttributeName, OUStringToOString(pMacro->GetMacName(), RTL_TEXTENCODING_UTF8));
1011 }
1012 }
1013 i++;
1014 }
1015}
1016
1017/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
static const AllSettings & GetSettings()
Color GetRGBColor() const
sal_uInt8 GetBlue() const
sal_uInt8 GetRed() const
sal_uInt8 GetGreen() const
void attribute(std::string_view aAttribute, const char *aValue)
Definition: HtmlWriter.cxx:149
sal_Int32 GetRadius(bool bPixelCoords=true) const
Point GetCenter(bool bPixelCoords=true) const
const OUString & GetAltText() const
const OUString & GetName() const
virtual IMapObjectType GetType() const=0
bool IsActive() const
const OUString & GetURL() const
const SvxMacroTableDtor & GetMacroTable() const
const OUString & GetTarget() const
const OUString & GetDesc() const
tools::Polygon GetPolygon(bool bPixelCoords=true) const
tools::Rectangle GetRectangle(bool bPixelCoords=true) const
const OUString & GetName() const
IMapObject * GetIMapObject(size_t nPos) const
size_t GetIMapObjectCount() const
constexpr tools::Long Y() const
constexpr tools::Long X() const
void GetInputLineString(const double &fOutNumber, sal_uInt32 nFIndex, OUString &rOutString, bool bFiltering=false, bool bForceSystemLocale=false)
const SvNumberformat * GetEntry(sal_uInt32 nKey) const
LanguageType GetLanguage() const
const OUString & GetFormatstring() const
SvStream & WriteOString(std::string_view rStr)
SvStream & WriteChar(char nChar)
bool empty() const
const SvxMacro * Get(SvMacroItemId nEvent) const
const OUString & GetMacName() const
ScriptType GetScriptType() const
bool HasMacro() const
sal_uInt16 GetSize() const
constexpr tools::Long Top() const
constexpr tools::Long Right() const
constexpr tools::Long Left() const
constexpr tools::Long Bottom() const
constexpr ::Color COL_AUTO(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
#define SAL_NEWLINE_STRING
int nCount
#define DBG_ASSERT(sCon, aError)
URL aURL
FilterGroup & rTarget
#define OOO_STRING_SVTOOLS_HTML_S_hearts
Definition: htmlkywd.hxx:296
#define OOO_STRING_SVTOOLS_HTML_S_circ
Definition: htmlkywd.hxx:266
#define OOO_STRING_SVTOOLS_HTML_S_larr
Definition: htmlkywd.hxx:309
#define OOO_STRING_SVTOOLS_HTML_S_Psi
Definition: htmlkywd.hxx:354
#define OOO_STRING_SVTOOLS_HTML_S_Sigma
Definition: htmlkywd.hxx:373
#define OOO_STRING_SVTOOLS_HTML_S_uml
Definition: htmlkywd.hxx:249
#define OOO_STRING_SVTOOLS_HTML_S_pi
Definition: htmlkywd.hxx:348
#define OOO_STRING_SVTOOLS_HTML_S_theta
Definition: htmlkywd.hxx:387
#define OOO_STRING_SVTOOLS_HTML_C_Eacute
Definition: htmlkywd.hxx:163
#define OOO_STRING_SVTOOLS_HTML_S_oelig
Definition: htmlkywd.hxx:333
#define OOO_STRING_SVTOOLS_HTML_S_Eta
Definition: htmlkywd.hxx:284
#define OOO_STRING_SVTOOLS_HTML_S_mdash
Definition: htmlkywd.hxx:320
#define OOO_STRING_SVTOOLS_HTML_O_target
Definition: htmlkywd.hxx:456
#define OOO_STRING_SVTOOLS_HTML_S_lsaquo
Definition: htmlkywd.hxx:318
#define OOO_STRING_SVTOOLS_HTML_S_supe
Definition: htmlkywd.hxx:382
#define OOO_STRING_SVTOOLS_HTML_S_oslash
Definition: htmlkywd.hxx:209
#define OOO_STRING_SVTOOLS_HTML_S_sube
Definition: htmlkywd.hxx:379
#define OOO_STRING_SVTOOLS_HTML_S_Omega
Definition: htmlkywd.hxx:335
#define OOO_STRING_SVTOOLS_HTML_C_Aacute
Definition: htmlkywd.hxx:155
#define OOO_STRING_SVTOOLS_HTML_C_Ucirc
Definition: htmlkywd.hxx:181
#define OOO_STRING_SVTOOLS_HTML_S_alefsym
Definition: htmlkywd.hxx:253
#define OOO_STRING_SVTOOLS_HTML_S_laquo
Definition: htmlkywd.hxx:230
#define OOO_STRING_SVTOOLS_HTML_S_rlm
Definition: htmlkywd.hxx:366
#define OOO_STRING_SVTOOLS_HTML_S_para
Definition: htmlkywd.hxx:238
#define OOO_STRING_SVTOOLS_HTML_S_auml
Definition: htmlkywd.hxx:191
#define OOO_STRING_SVTOOLS_HTML_S_trade
Definition: htmlkywd.hxx:391
#define OOO_STRING_SVTOOLS_HTML_S_diams
Definition: htmlkywd.hxx:277
#define OOO_STRING_SVTOOLS_HTML_S_Tau
Definition: htmlkywd.hxx:383
#define OOO_STRING_SVTOOLS_HTML_S_alpha
Definition: htmlkywd.hxx:255
#define OOO_STRING_SVTOOLS_HTML_S_Nu
Definition: htmlkywd.hxx:330
#define OOO_STRING_SVTOOLS_HTML_S_lrm
Definition: htmlkywd.hxx:317
#define OOO_STRING_SVTOOLS_HTML_S_asymp
Definition: htmlkywd.hxx:258
#define OOO_STRING_SVTOOLS_HTML_S_uArr
Definition: htmlkywd.hxx:393
#define OOO_STRING_SVTOOLS_HTML_S_le
Definition: htmlkywd.hxx:313
#define OOO_STRING_SVTOOLS_HTML_S_rsquo
Definition: htmlkywd.hxx:368
#define OOO_STRING_SVTOOLS_HTML_O_coords
Definition: htmlkywd.hxx:434
#define OOO_STRING_SVTOOLS_HTML_S_notin
Definition: htmlkywd.hxx:328
#define OOO_STRING_SVTOOLS_HTML_C_lt
Definition: htmlkywd.hxx:150
#define OOO_STRING_SVTOOLS_HTML_S_Pi
Definition: htmlkywd.hxx:347
#define OOO_STRING_SVTOOLS_HTML_S_yuml
Definition: htmlkywd.hxx:216
#define OOO_STRING_SVTOOLS_HTML_S_bull
Definition: htmlkywd.hxx:262
#define OOO_STRING_SVTOOLS_HTML_S_Gamma
Definition: htmlkywd.hxx:291
#define OOO_STRING_SVTOOLS_HTML_S_nu
Definition: htmlkywd.hxx:331
#define OOO_STRING_SVTOOLS_HTML_S_aring
Definition: htmlkywd.hxx:190
#define OOO_STRING_SVTOOLS_HTML_S_sigmaf
Definition: htmlkywd.hxx:375
#define OOO_STRING_SVTOOLS_HTML_S_phi
Definition: htmlkywd.hxx:346
#define OOO_STRING_SVTOOLS_HTML_S_gamma
Definition: htmlkywd.hxx:292
#define OOO_STRING_SVTOOLS_HTML_S_curren
Definition: htmlkywd.hxx:222
#define OOO_STRING_SVTOOLS_HTML_area
Definition: htmlkywd.hxx:31
#define OOO_STRING_SVTOOLS_HTML_C_gt
Definition: htmlkywd.hxx:151
#define OOO_STRING_SVTOOLS_HTML_S_oplus
Definition: htmlkywd.hxx:339
#define OOO_STRING_SVTOOLS_HTML_S_or
Definition: htmlkywd.hxx:340
#define OOO_STRING_SVTOOLS_HTML_S_there4
Definition: htmlkywd.hxx:385
#define OOO_STRING_SVTOOLS_HTML_S_dArr
Definition: htmlkywd.hxx:274
#define OOO_STRING_SVTOOLS_HTML_S_image
Definition: htmlkywd.hxx:298
#define OOO_STRING_SVTOOLS_HTML_C_Oslash
Definition: htmlkywd.hxx:178
#define OOO_STRING_SVTOOLS_HTML_S_nabla
Definition: htmlkywd.hxx:324
#define OOO_STRING_SVTOOLS_HTML_S_Theta
Definition: htmlkywd.hxx:386
#define OOO_STRING_SVTOOLS_HTML_S_times
Definition: htmlkywd.hxx:248
#define OOO_STRING_SVTOOLS_HTML_S_deg
Definition: htmlkywd.hxx:223
#define OOO_STRING_SVTOOLS_HTML_S_prime
Definition: htmlkywd.hxx:350
#define OOO_STRING_SVTOOLS_HTML_C_THORN
Definition: htmlkywd.hxx:184
#define OOO_STRING_SVTOOLS_HTML_S_xi
Definition: htmlkywd.hxx:399
#define OOO_STRING_SVTOOLS_HTML_C_ETH
Definition: htmlkywd.hxx:171
#define OOO_STRING_SVTOOLS_HTML_S_cap
Definition: htmlkywd.hxx:263
#define OOO_STRING_SVTOOLS_HTML_S_ordf
Definition: htmlkywd.hxx:236
#define OOO_STRING_SVTOOLS_HTML_S_raquo
Definition: htmlkywd.hxx:241
#define OOO_STRING_SVTOOLS_HTML_S_frasl
Definition: htmlkywd.hxx:290
#define OOO_STRING_SVTOOLS_HTML_S_otilde
Definition: htmlkywd.hxx:207
#define OOO_STRING_SVTOOLS_HTML_S_delta
Definition: htmlkywd.hxx:276
#define OOO_STRING_SVTOOLS_HTML_S_forall
Definition: htmlkywd.hxx:289
#define OOO_STRING_SVTOOLS_HTML_S_rfloor
Definition: htmlkywd.hxx:363
#define OOO_STRING_SVTOOLS_HTML_S_sim
Definition: htmlkywd.hxx:376
#define OOO_STRING_SVTOOLS_HTML_S_rang
Definition: htmlkywd.hxx:357
#define OOO_STRING_SVTOOLS_HTML_S_lceil
Definition: htmlkywd.hxx:311
#define OOO_STRING_SVTOOLS_HTML_S_aacute
Definition: htmlkywd.hxx:186
#define OOO_STRING_SVTOOLS_HTML_C_Otilde
Definition: htmlkywd.hxx:176
#define OOO_STRING_SVTOOLS_HTML_S_Yuml
Definition: htmlkywd.hxx:400
#define OOO_STRING_SVTOOLS_HTML_S_zwnj
Definition: htmlkywd.hxx:404
#define OOO_STRING_SVTOOLS_HTML_S_hArr
Definition: htmlkywd.hxx:295
#define OOO_STRING_SVTOOLS_HTML_C_Ntilde
Definition: htmlkywd.hxx:172
#define OOO_STRING_SVTOOLS_HTML_S_sup1
Definition: htmlkywd.hxx:245
#define OOO_STRING_SVTOOLS_HTML_C_Egrave
Definition: htmlkywd.hxx:164
#define OOO_STRING_SVTOOLS_HTML_S_lowast
Definition: htmlkywd.hxx:315
#define OOO_STRING_SVTOOLS_HTML_S_ang
Definition: htmlkywd.hxx:257
#define OOO_STRING_SVTOOLS_HTML_S_iacute
Definition: htmlkywd.hxx:198
#define OOO_STRING_SVTOOLS_HTML_S_icirc
Definition: htmlkywd.hxx:200
#define OOO_STRING_SVTOOLS_HTML_S_atilde
Definition: htmlkywd.hxx:189
#define OOO_STRING_SVTOOLS_HTML_S_ccedil
Definition: htmlkywd.hxx:193
#define OOO_STRING_SVTOOLS_HTML_S_radic
Definition: htmlkywd.hxx:356
#define OOO_STRING_SVTOOLS_HTML_S_sum
Definition: htmlkywd.hxx:380
#define OOO_STRING_SVTOOLS_HTML_O_sdmodule
Definition: htmlkywd.hxx:450
#define OOO_STRING_SVTOOLS_HTML_S_fnof
Definition: htmlkywd.hxx:288
#define OOO_STRING_SVTOOLS_HTML_S_mu
Definition: htmlkywd.hxx:323
#define OOO_STRING_SVTOOLS_HTML_S_ecirc
Definition: htmlkywd.hxx:196
#define OOO_STRING_SVTOOLS_HTML_S_euml
Definition: htmlkywd.hxx:197
#define OOO_STRING_SVTOOLS_HTML_S_kappa
Definition: htmlkywd.hxx:305
#define OOO_STRING_SVTOOLS_HTML_S_sup3
Definition: htmlkywd.hxx:247
#define OOO_STRING_SVTOOLS_HTML_S_uarr
Definition: htmlkywd.hxx:392
#define OOO_STRING_SVTOOLS_HTML_S_plusmn
Definition: htmlkywd.hxx:239
#define OOO_STRING_SVTOOLS_HTML_S_iquest
Definition: htmlkywd.hxx:229
#define OOO_STRING_SVTOOLS_HTML_S_chi
Definition: htmlkywd.hxx:264
#define OOO_STRING_SVTOOLS_HTML_S_macr
Definition: htmlkywd.hxx:231
#define OOO_STRING_SVTOOLS_HTML_S_eth
Definition: htmlkywd.hxx:202
#define OOO_STRING_SVTOOLS_HTML_C_Iuml
Definition: htmlkywd.hxx:170
#define OOO_STRING_SVTOOLS_HTML_S_harr
Definition: htmlkywd.hxx:294
#define OOO_STRING_SVTOOLS_HTML_C_Acirc
Definition: htmlkywd.hxx:157
#define OOO_STRING_SVTOOLS_HTML_S_ni
Definition: htmlkywd.hxx:327
#define OOO_STRING_SVTOOLS_HTML_S_Scaron
Definition: htmlkywd.hxx:370
#define OOO_STRING_SVTOOLS_HTML_S_tilde
Definition: htmlkywd.hxx:390
#define OOO_STRING_SVTOOLS_HTML_S_dagger
Definition: htmlkywd.hxx:271
#define OOO_STRING_SVTOOLS_HTML_S_permil
Definition: htmlkywd.hxx:343
#define OOO_STRING_SVTOOLS_HTML_O_language
Definition: htmlkywd.hxx:439
#define OOO_STRING_SVTOOLS_HTML_C_Uuml
Definition: htmlkywd.hxx:182
#define OOO_STRING_SVTOOLS_HTML_S_rceil
Definition: htmlkywd.hxx:360
#define OOO_STRING_SVTOOLS_HTML_C_Aring
Definition: htmlkywd.hxx:159
#define OOO_STRING_SVTOOLS_HTML_S_rsaquo
Definition: htmlkywd.hxx:367
#define OOO_STRING_SVTOOLS_HTML_S_piv
Definition: htmlkywd.hxx:349
#define OOO_STRING_SVTOOLS_HTML_S_ge
Definition: htmlkywd.hxx:293
#define OOO_STRING_SVTOOLS_HTML_C_Ecirc
Definition: htmlkywd.hxx:165
#define OOO_STRING_SVTOOLS_HTML_S_divide
Definition: htmlkywd.hxx:224
#define OOO_STRING_SVTOOLS_HTML_S_agrave
Definition: htmlkywd.hxx:187
#define OOO_STRING_SVTOOLS_HTML_S_micro
Definition: htmlkywd.hxx:232
#define OOO_STRING_SVTOOLS_HTML_S_int
Definition: htmlkywd.hxx:300
#define OOO_STRING_SVTOOLS_HTML_S_nsub
Definition: htmlkywd.hxx:329
#define OOO_STRING_SVTOOLS_HTML_S_part
Definition: htmlkywd.hxx:342
#define OOO_STRING_SVTOOLS_HTML_SH_circ
Definition: htmlkywd.hxx:615
#define OOO_STRING_SVTOOLS_HTML_S_crarr
Definition: htmlkywd.hxx:269
#define OOO_STRING_SVTOOLS_HTML_C_Icirc
Definition: htmlkywd.hxx:169
#define OOO_STRING_SVTOOLS_HTML_S_Iota
Definition: htmlkywd.hxx:301
#define OOO_STRING_SVTOOLS_HTML_private_image
Definition: htmlkywd.hxx:665
#define OOO_STRING_SVTOOLS_HTML_S_emsp
Definition: htmlkywd.hxx:279
#define OOO_STRING_SVTOOLS_HTML_S_thetasym
Definition: htmlkywd.hxx:388
#define OOO_STRING_SVTOOLS_HTML_S_rarr
Definition: htmlkywd.hxx:358
#define OOO_STRING_SVTOOLS_HTML_S_ldquo
Definition: htmlkywd.hxx:312
#define OOO_STRING_SVTOOLS_HTML_O_sdlibrary
Definition: htmlkywd.hxx:449
#define OOO_STRING_SVTOOLS_HTML_S_Lambda
Definition: htmlkywd.hxx:306
#define OOO_STRING_SVTOOLS_HTML_S_lArr
Definition: htmlkywd.hxx:310
#define OOO_STRING_SVTOOLS_HTML_C_Euml
Definition: htmlkywd.hxx:166
#define OOO_STRING_SVTOOLS_HTML_S_Prime
Definition: htmlkywd.hxx:351
#define OOO_STRING_SVTOOLS_HTML_O_SDnum
Definition: htmlkywd.hxx:448
#define OOO_STRING_SVTOOLS_HTML_S_uacute
Definition: htmlkywd.hxx:210
#define OOO_STRING_SVTOOLS_HTML_S_oline
Definition: htmlkywd.hxx:334
#define OOO_STRING_SVTOOLS_HTML_S_scaron
Definition: htmlkywd.hxx:371
#define OOO_STRING_SVTOOLS_HTML_S_reg
Definition: htmlkywd.hxx:242
#define OOO_STRING_SVTOOLS_HTML_S_weierp
Definition: htmlkywd.hxx:397
#define OOO_STRING_SVTOOLS_HTML_S_iexcl
Definition: htmlkywd.hxx:228
#define OOO_STRING_SVTOOLS_HTML_S_frac12
Definition: htmlkywd.hxx:225
#define OOO_STRING_SVTOOLS_HTML_C_Uacute
Definition: htmlkywd.hxx:179
#define OOO_STRING_SVTOOLS_HTML_S_sbquo
Definition: htmlkywd.hxx:369
#define OOO_STRING_SVTOOLS_HTML_S_egrave
Definition: htmlkywd.hxx:195
#define OOO_STRING_SVTOOLS_HTML_S_zeta
Definition: htmlkywd.hxx:402
#define OOO_STRING_SVTOOLS_HTML_S_exist
Definition: htmlkywd.hxx:287
#define OOO_STRING_SVTOOLS_HTML_S_clubs
Definition: htmlkywd.hxx:267
#define OOO_STRING_SVTOOLS_HTML_O_src
Definition: htmlkywd.hxx:468
#define OOO_STRING_SVTOOLS_HTML_S_Delta
Definition: htmlkywd.hxx:275
#define OOO_STRING_SVTOOLS_HTML_S_rho
Definition: htmlkywd.hxx:365
#define OOO_STRING_SVTOOLS_HTML_S_ntilde
Definition: htmlkywd.hxx:203
#define OOO_STRING_SVTOOLS_HTML_S_ocirc
Definition: htmlkywd.hxx:206
#define OOO_STRING_SVTOOLS_HTML_S_Epsilon
Definition: htmlkywd.hxx:281
#define OOO_STRING_SVTOOLS_HTML_S_and
Definition: htmlkywd.hxx:256
#define OOO_STRING_SVTOOLS_HTML_S_thinsp
Definition: htmlkywd.hxx:389
#define OOO_STRING_SVTOOLS_HTML_S_lambda
Definition: htmlkywd.hxx:307
#define OOO_STRING_SVTOOLS_HTML_O_SDval
Definition: htmlkywd.hxx:447
#define OOO_STRING_SVTOOLS_HTML_C_Ccedil
Definition: htmlkywd.hxx:162
#define OOO_STRING_SVTOOLS_HTML_S_darr
Definition: htmlkywd.hxx:273
#define OOO_STRING_SVTOOLS_HTML_C_Yacute
Definition: htmlkywd.hxx:183
#define OOO_STRING_SVTOOLS_HTML_SH_rect
Definition: htmlkywd.hxx:613
#define OOO_STRING_SVTOOLS_HTML_S_ensp
Definition: htmlkywd.hxx:280
#define OOO_STRING_SVTOOLS_HTML_S_middot
Definition: htmlkywd.hxx:233
#define OOO_STRING_SVTOOLS_HTML_S_cedil
Definition: htmlkywd.hxx:219
#define OOO_STRING_SVTOOLS_HTML_S_prod
Definition: htmlkywd.hxx:352
#define OOO_STRING_SVTOOLS_HTML_C_Ouml
Definition: htmlkywd.hxx:177
#define OOO_STRING_SVTOOLS_HTML_S_rArr
Definition: htmlkywd.hxx:359
#define OOO_STRING_SVTOOLS_HTML_S_spades
Definition: htmlkywd.hxx:377
#define OOO_STRING_SVTOOLS_HTML_S_not
Definition: htmlkywd.hxx:235
#define OOO_STRING_SVTOOLS_HTML_C_szlig
Definition: htmlkywd.hxx:185
#define OOO_STRING_SVTOOLS_HTML_S_frac14
Definition: htmlkywd.hxx:226
#define OOO_STRING_SVTOOLS_HTML_S_ndash
Definition: htmlkywd.hxx:325
#define OOO_STRING_SVTOOLS_HTML_S_hellip
Definition: htmlkywd.hxx:297
#define OOO_STRING_SVTOOLS_HTML_S_Zeta
Definition: htmlkywd.hxx:401
#define OOO_STRING_SVTOOLS_HTML_map
Definition: htmlkywd.hxx:98
#define OOO_STRING_SVTOOLS_HTML_S_Chi
Definition: htmlkywd.hxx:265
#define OOO_STRING_SVTOOLS_HTML_S_yacute
Definition: htmlkywd.hxx:214
#define OOO_STRING_SVTOOLS_HTML_S_sdot
Definition: htmlkywd.hxx:372
#define OOO_STRING_SVTOOLS_HTML_O_href
Definition: htmlkywd.hxx:466
#define OOO_STRING_SVTOOLS_HTML_S_sup
Definition: htmlkywd.hxx:381
#define OOO_STRING_SVTOOLS_HTML_S_copy
Definition: htmlkywd.hxx:221
#define OOO_STRING_SVTOOLS_HTML_S_prop
Definition: htmlkywd.hxx:353
#define OOO_STRING_SVTOOLS_HTML_S_Alpha
Definition: htmlkywd.hxx:254
#define OOO_STRING_SVTOOLS_HTML_S_lsquo
Definition: htmlkywd.hxx:319
#define OOO_STRING_SVTOOLS_HTML_SB_module
Definition: htmlkywd.hxx:627
#define OOO_STRING_SVTOOLS_HTML_S_isin
Definition: htmlkywd.hxx:303
#define OOO_STRING_SVTOOLS_HTML_S_lang
Definition: htmlkywd.hxx:308
#define OOO_STRING_SVTOOLS_HTML_S_frac34
Definition: htmlkywd.hxx:227
#define OOO_STRING_SVTOOLS_HTML_C_Ocirc
Definition: htmlkywd.hxx:175
#define OOO_STRING_SVTOOLS_HTML_S_omega
Definition: htmlkywd.hxx:336
#define OOO_STRING_SVTOOLS_HTML_S_Mu
Definition: htmlkywd.hxx:322
#define OOO_STRING_SVTOOLS_HTML_C_amp
Definition: htmlkywd.hxx:152
#define OOO_STRING_SVTOOLS_HTML_S_rdquo
Definition: htmlkywd.hxx:361
#define OOO_STRING_SVTOOLS_HTML_S_Upsilon
Definition: htmlkywd.hxx:395
#define OOO_STRING_SVTOOLS_HTML_S_cong
Definition: htmlkywd.hxx:268
#define OOO_STRING_SVTOOLS_HTML_S_Phi
Definition: htmlkywd.hxx:345
#define OOO_STRING_SVTOOLS_HTML_C_Atilde
Definition: htmlkywd.hxx:158
#define OOO_STRING_SVTOOLS_HTML_S_eacute
Definition: htmlkywd.hxx:194
#define OOO_STRING_SVTOOLS_HTML_S_cup
Definition: htmlkywd.hxx:270
#define OOO_STRING_SVTOOLS_HTML_S_ouml
Definition: htmlkywd.hxx:208
#define OOO_STRING_SVTOOLS_HTML_S_Dagger
Definition: htmlkywd.hxx:272
#define OOO_STRING_SVTOOLS_HTML_S_ne
Definition: htmlkywd.hxx:326
#define OOO_STRING_SVTOOLS_HTML_S_beta
Definition: htmlkywd.hxx:261
#define OOO_STRING_SVTOOLS_HTML_S_minus
Definition: htmlkywd.hxx:321
#define OOO_STRING_SVTOOLS_HTML_S_otimes
Definition: htmlkywd.hxx:341
#define OOO_STRING_SVTOOLS_HTML_C_Igrave
Definition: htmlkywd.hxx:168
#define OOO_STRING_SVTOOLS_HTML_S_pound
Definition: htmlkywd.hxx:240
#define OOO_STRING_SVTOOLS_HTML_S_sub
Definition: htmlkywd.hxx:378
#define OOO_STRING_SVTOOLS_HTML_script
Definition: htmlkywd.hxx:113
#define OOO_STRING_SVTOOLS_HTML_S_real
Definition: htmlkywd.hxx:362
#define OOO_STRING_SVTOOLS_HTML_S_tau
Definition: htmlkywd.hxx:384
#define OOO_STRING_SVTOOLS_HTML_S_ordm
Definition: htmlkywd.hxx:237
#define OOO_STRING_SVTOOLS_HTML_O_nohref
Definition: htmlkywd.hxx:416
#define OOO_STRING_SVTOOLS_HTML_S_igrave
Definition: htmlkywd.hxx:199
#define OOO_STRING_SVTOOLS_HTML_S_loz
Definition: htmlkywd.hxx:316
#define OOO_STRING_SVTOOLS_HTML_S_iota
Definition: htmlkywd.hxx:302
#define OOO_STRING_SVTOOLS_HTML_S_acute
Definition: htmlkywd.hxx:217
#define OOO_STRING_SVTOOLS_HTML_S_upsilon
Definition: htmlkywd.hxx:396
#define OOO_STRING_SVTOOLS_HTML_C_Ugrave
Definition: htmlkywd.hxx:180
#define OOO_STRING_SVTOOLS_HTML_O_name
Definition: htmlkywd.hxx:440
#define OOO_STRING_SVTOOLS_HTML_C_quot
Definition: htmlkywd.hxx:154
#define OOO_STRING_SVTOOLS_HTML_S_omicron
Definition: htmlkywd.hxx:338
#define OOO_STRING_SVTOOLS_HTML_S_perp
Definition: htmlkywd.hxx:344
#define OOO_STRING_SVTOOLS_HTML_O_shape
Definition: htmlkywd.hxx:442
#define OOO_STRING_SVTOOLS_HTML_S_zwj
Definition: htmlkywd.hxx:403
#define OOO_STRING_SVTOOLS_HTML_S_oacute
Definition: htmlkywd.hxx:204
#define OOO_STRING_SVTOOLS_HTML_S_nbsp
Definition: htmlkywd.hxx:234
#define OOO_STRING_SVTOOLS_HTML_S_sect
Definition: htmlkywd.hxx:243
#define OOO_STRING_SVTOOLS_HTML_C_AElig
Definition: htmlkywd.hxx:161
#define OOO_STRING_SVTOOLS_HTML_S_sup2
Definition: htmlkywd.hxx:246
#define OOO_STRING_SVTOOLS_HTML_S_sigma
Definition: htmlkywd.hxx:374
#define OOO_STRING_SVTOOLS_HTML_S_ucirc
Definition: htmlkywd.hxx:212
#define OOO_STRING_SVTOOLS_HTML_SH_poly
Definition: htmlkywd.hxx:617
#define OOO_STRING_SVTOOLS_HTML_S_epsilon
Definition: htmlkywd.hxx:282
#define OOO_STRING_SVTOOLS_HTML_S_Rho
Definition: htmlkywd.hxx:364
#define OOO_STRING_SVTOOLS_HTML_C_Agrave
Definition: htmlkywd.hxx:156
#define OOO_STRING_SVTOOLS_HTML_SB_library
Definition: htmlkywd.hxx:626
#define OOO_STRING_SVTOOLS_HTML_S_aelig
Definition: htmlkywd.hxx:192
#define OOO_STRING_SVTOOLS_HTML_S_Kappa
Definition: htmlkywd.hxx:304
#define OOO_STRING_SVTOOLS_HTML_C_Iacute
Definition: htmlkywd.hxx:167
#define OOO_STRING_SVTOOLS_HTML_S_euro
Definition: htmlkywd.hxx:286
#define OOO_STRING_SVTOOLS_HTML_S_empty
Definition: htmlkywd.hxx:278
#define OOO_STRING_SVTOOLS_HTML_S_psi
Definition: htmlkywd.hxx:355
#define OOO_STRING_SVTOOLS_HTML_S_infin
Definition: htmlkywd.hxx:299
#define OOO_STRING_SVTOOLS_HTML_S_eta
Definition: htmlkywd.hxx:285
#define OOO_STRING_SVTOOLS_HTML_S_Beta
Definition: htmlkywd.hxx:260
#define OOO_STRING_SVTOOLS_HTML_S_upsih
Definition: htmlkywd.hxx:394
#define OOO_STRING_SVTOOLS_HTML_C_Auml
Definition: htmlkywd.hxx:160
#define OOO_STRING_SVTOOLS_HTML_S_ograve
Definition: htmlkywd.hxx:205
#define OOO_STRING_SVTOOLS_HTML_S_ugrave
Definition: htmlkywd.hxx:211
#define OOO_STRING_SVTOOLS_HTML_S_OElig
Definition: htmlkywd.hxx:332
#define OOO_STRING_SVTOOLS_HTML_S_acirc
Definition: htmlkywd.hxx:188
#define OOO_STRING_SVTOOLS_HTML_S_thorn
Definition: htmlkywd.hxx:215
#define OOO_STRING_SVTOOLS_HTML_S_yen
Definition: htmlkywd.hxx:250
#define OOO_STRING_SVTOOLS_HTML_S_cent
Definition: htmlkywd.hxx:220
#define OOO_STRING_SVTOOLS_HTML_O_alt
Definition: htmlkywd.hxx:426
#define OOO_STRING_SVTOOLS_HTML_S_uuml
Definition: htmlkywd.hxx:213
#define OOO_STRING_SVTOOLS_HTML_S_shy
Definition: htmlkywd.hxx:244
#define OOO_STRING_SVTOOLS_HTML_S_Xi
Definition: htmlkywd.hxx:398
#define OOO_STRING_SVTOOLS_HTML_C_Ograve
Definition: htmlkywd.hxx:174
#define OOO_STRING_SVTOOLS_HTML_S_Omicron
Definition: htmlkywd.hxx:337
#define OOO_STRING_SVTOOLS_HTML_S_brvbar
Definition: htmlkywd.hxx:218
#define OOO_STRING_SVTOOLS_HTML_S_lfloor
Definition: htmlkywd.hxx:314
#define OOO_STRING_SVTOOLS_HTML_C_Oacute
Definition: htmlkywd.hxx:173
#define OOO_STRING_SVTOOLS_HTML_S_equiv
Definition: htmlkywd.hxx:283
#define OOO_STRING_SVTOOLS_HTML_S_bdquo
Definition: htmlkywd.hxx:259
#define OOO_STRING_SVTOOLS_HTML_S_iuml
Definition: htmlkywd.hxx:201
static sal_Size lcl_FlushContext(char *pBuffer, sal_uInt32 nFlags)
Definition: htmlout.cxx:389
static OString lcl_ConvertCharToHTML(sal_uInt32 c, OUString *pNonConvertableChars)
Definition: htmlout.cxx:400
static OString lcl_FlushToAscii()
Definition: htmlout.cxx:482
static const char * lcl_svhtml_GetEntityForChar(sal_uInt32 c, rtl_TextEncoding eDestEnc)
Definition: htmlout.cxx:56
static sal_Size convertUnicodeToText(const sal_Unicode *pSrcBuf, sal_Size nSrcChars, char *pDestBuf, sal_Size nDestBytes, sal_uInt32 nFlags, sal_uInt32 *pInfo, sal_Size *pSrcCvtChars)
Definition: htmlout.cxx:42
#define TXTCONV_BUFFER_SIZE
Definition: htmlout.cxx:40
sal_Int64 n
#define LANGUAGE_SYSTEM
ScriptType
JAVASCRIPT
STARBASIC
SVL_DLLPUBLIC OUString simpleNormalizedMakeRelative(OUString const &baseUriReference, OUString const &uriReference)
int i
void SvStream & rStrm
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
long Long
const char * pBasicName
Definition: htmlout.hxx:39
const char * pJavaName
Definition: htmlout.hxx:40
static SVT_DLLPUBLIC SvStream & Out_AsciiTag(SvStream &, std::string_view rStr, bool bOn=true)
Definition: htmlout.cxx:509
static SVT_DLLPUBLIC SvStream & Out_String(SvStream &, const OUString &, OUString *pNonConvertableChars=nullptr)
Definition: htmlout.cxx:530
static SVT_DLLPUBLIC bool PrivateURLToInternalImg(OUString &rURL)
Definition: htmlout.cxx:957
static SVT_DLLPUBLIC SvStream & Out_Hex(SvStream &, sal_uInt32 nHex, sal_uInt8 nLen)
Definition: htmlout.cxx:551
static SVT_DLLPUBLIC OString CreateTableDataOptionsValNum(bool bValue, double fVal, sal_uInt32 nFormat, SvNumberFormatter &rFormatter, OUString *pNonConvertableChars=nullptr)
Definition: htmlout.cxx:912
static SVT_DLLPUBLIC SvStream & OutScript(SvStream &rStrm, const OUString &rBaseURL, std::u16string_view rSource, const OUString &rLanguage, ScriptType eScriptType, const OUString &rSrc, const OUString *pSBLibrary, const OUString *pSBModule)
Definition: htmlout.cxx:773
static SVT_DLLPUBLIC SvStream & Out_Char(SvStream &, sal_uInt32 cChar, OUString *pNonConvertableChars=nullptr)
Definition: htmlout.cxx:522
static SVT_DLLPUBLIC SvStream & Out_ImageMap(SvStream &, const OUString &, const ImageMap &, const OUString &, const HTMLOutEvent *pEventTable, bool bOutStarBasic, const char *pDelim, const char *pIndentArea, const char *pIndentMap)
Definition: htmlout.cxx:593
static SVT_DLLPUBLIC SvStream & Out_Color(SvStream &, const Color &, bool bXHTML=false)
Definition: htmlout.cxx:572
static SVT_DLLPUBLIC SvStream & FlushToAscii(SvStream &)
Definition: htmlout.cxx:541
static SVT_DLLPUBLIC SvStream & Out_Events(SvStream &, const SvxMacroTableDtor &, const HTMLOutEvent *, bool bOutStarBasic, OUString *pNonConvertableChars=nullptr)
Definition: htmlout.cxx:879
static SVT_DLLPUBLIC OString ConvertStringToHTML(const OUString &sSrc, OUString *pNonConvertableChars=nullptr)
Definition: htmlout.cxx:498
static SVT_DLLPUBLIC void applyEvents(HtmlWriter &rHtmlWriter, const SvxMacroTableDtor &rMacroTable, const HTMLOutEvent *pEventTable, bool bOutStarBasic)
Definition: htmlout.cxx:993
static SVT_DLLPUBLIC void applyColor(HtmlWriter &rHtmlWriter, std::string_view aAttributeName, const Color &rColor)
Definition: htmlout.cxx:968
unsigned char sal_uInt8
sal_uInt16 sal_Unicode