From: Olivier G. <og...@us...> - 2005-12-19 22:03:28
|
Update of /cvsroot/osmose-dev/osmose/src/osmose/application/export In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32404/src/osmose/application/export Modified Files: OSMExportHTML.java Log Message: Use correct fonts when exporting to HTML (bug #1277552) Index: OSMExportHTML.java =================================================================== RCS file: /cvsroot/osmose-dev/osmose/src/osmose/application/export/OSMExportHTML.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** OSMExportHTML.java 20 Nov 2005 21:45:30 -0000 1.3 --- OSMExportHTML.java 19 Dec 2005 22:03:16 -0000 1.4 *************** *** 356,360 **** styleStr += " {position:absolute;left:"+(x)+"px;top:"+(y)+"px;"; styleStr += "width:"+(w)+"px;height:"+(h)+"px;"; ! styleStr += "font-family:"+f.getName()+";font-size:"+nf.getSize()+"pt;"; styleStr += "color : #" + getHexaColor(c) + ";"; if(nf.isBold()) --- 356,361 ---- styleStr += " {position:absolute;left:"+(x)+"px;top:"+(y)+"px;"; styleStr += "width:"+(w)+"px;height:"+(h)+"px;"; ! styleStr += "font-family:"+convertJavaFontToCSSFont(f)+",sans-serif;"; ! styleStr += "font-size:"+nf.getSize()+"pt;"; styleStr += "color : #" + getHexaColor(c) + ";"; if(nf.isBold()) *************** *** 456,460 **** styleStr += " {position:absolute;left:"+(x)+"px;top:"+(y)+"px;"; styleStr += "width:"+(w)+"px;height:"+(h)+"px;"; ! styleStr += "font-family:"+f.getName()+";font-size:"+nf.getSize()+"pt;"; styleStr += "color : #" + getHexaColor(c) + ";"; if(nf.isBold()) --- 457,462 ---- styleStr += " {position:absolute;left:"+(x)+"px;top:"+(y)+"px;"; styleStr += "width:"+(w)+"px;height:"+(h)+"px;"; ! styleStr += "font-family:"+convertJavaFontToCSSFont(f)+",sans-serif;"; ! styleStr += "font-size:"+nf.getSize()+"pt;"; styleStr += "color : #" + getHexaColor(c) + ";"; if(nf.isBold()) *************** *** 599,604 **** (y) + "px;"; styleStr += "width:" + (w) + "px;height:" + (h) + "px;"; ! styleStr += "font-family:" + nf.getName() + ";font-size:" + ! nf.getSize() + "pt;"; styleStr += "color : #" + getHexaColor(c) + ";"; if (nf.isBold()) --- 601,606 ---- (y) + "px;"; styleStr += "width:" + (w) + "px;height:" + (h) + "px;"; ! styleStr += "font-family:" + convertJavaFontToCSSFont(nf) + ",sans-serif;"; ! styleStr += "font-size:" + nf.getSize() + "pt;"; styleStr += "color : #" + getHexaColor(c) + ";"; if (nf.isBold()) *************** *** 717,721 **** styleStr += " {position:absolute;left:"+(x)+"px;top:"+(y)+"px;"; styleStr += "width:"+(w)+"px;height:"+(h)+"px;"; ! styleStr += "font-family:"+f.getName()+";font-size:"+nf.getSize()+"pt;"; styleStr += "color : #" + getHexaColor(c) + ";"; if(nf.isBold()) --- 719,724 ---- styleStr += " {position:absolute;left:"+(x)+"px;top:"+(y)+"px;"; styleStr += "width:"+(w)+"px;height:"+(h)+"px;"; ! styleStr += "font-family:"+convertJavaFontToCSSFont(f)+",sans-serif;"; ! styleStr += "font-size:"+nf.getSize()+"pt;"; styleStr += "color : #" + getHexaColor(c) + ";"; if(nf.isBold()) *************** *** 730,736 **** ! styleStr+= " .liennavig {font-family:Verdana; font-size:8pt; text-decoration: none}\n"; ! styleStr+= " .lienexterne{font-family:Verdana; font-size:8pt; text-decoration: none}\n"; ! styleStr+= " .titlenavig {font-family:Verdana; font-size:9pt;}\n"; styleStr += " #body {position:absolute;left:0;top:0;width:800;height:640;"; --- 733,739 ---- ! styleStr+= " .liennavig {font-family:Verdana,sans-serif; font-size:8pt; text-decoration: none}\n"; ! styleStr+= " .lienexterne{font-family:Verdana,sans-serif; font-size:8pt; text-decoration: none}\n"; ! styleStr+= " .titlenavig {font-family:Verdana,sans-serif; font-size:9pt;}\n"; styleStr += " #body {position:absolute;left:0;top:0;width:800;height:640;"; *************** *** 1092,1095 **** --- 1095,1132 ---- /** + * This method converts a Java font to a CSS font + * For a Java physical font, there is nothing to do. + * For a Java logical font, translate it to a CSS font. + * + * By default, Java logical fonts are mapped to Lucida fonts (in Sun JRE). + * These fonts can't be used in web browsers, so these fonts are translated. + * + * There are 5 Java logical fonts : + * serif, sansserif, monospaced, dialog, dialoginput + * and 5 generic font families in CSS : + * serif, sans-serif, monospace, cursive, fantasy + * + * Dialog and dialoginput are different from cursive and fantasy, but in Sun + * JRE they use the same font as sansserif and monospaced (respectively). + * + * Physical fonts are quoted, but not generic CSS fonts, according to CSS + * specifications. + * + * @param javaFont the Java font to be converted + * @return the CSS font corresponding to the Java font + */ + public String convertJavaFontToCSSFont(Font javaFont) + { + String javaFt = javaFont.getName(); + String cssFont = "\"" + javaFt + "\""; + if (javaFt.equals("sansserif")) cssFont = "sans-serif"; + else if (javaFt.equals("serif")) cssFont = "serif"; + else if (javaFt.equals("monospaced")) cssFont = "monospace"; + else if (javaFt.equals("dialog")) cssFont = "sans-serif"; + else if (javaFt.equals("dialoginput")) cssFont = "monospace"; + return cssFont; + } + + /** * it transforms specific caracters (for instance : é to é) * to be properly display in a html browser |