KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > fop > fonts > FontUtil


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17
18 /* $Id: FontUtil.java 426576 2006-07-28 15:44:37Z jeremias $ */
19  
20 package org.apache.fop.fonts;
21
22 /**
23  * Font utilities.
24  */

25 public class FontUtil {
26
27     /**
28      * Parses an CSS2 (SVG and XSL-FO) font weight (normal, bold, 100-900) to
29      * an integer.
30      * See http://www.w3.org/TR/REC-CSS2/fonts.html#propdef-font-weight
31      * TODO: Implement "lighter" and "bolder".
32      * @param text the font weight to parse
33      * @return an integer between 100 and 900 (100, 200, 300...)
34      */

35     public static int parseCSS2FontWeight(String JavaDoc text) {
36         int weight = 400;
37         try {
38             weight = Integer.parseInt(text);
39             weight = ((int)weight / 100) * 100;
40             weight = Math.max(weight, 100);
41             weight = Math.min(weight, 900);
42         } catch (NumberFormatException JavaDoc nfe) {
43             //weight is no number, so convert symbolic name to number
44
if (text.equals("normal")) {
45                 weight = 400;
46             } else if (text.equals("bold")) {
47                 weight = 700;
48             } else {
49                 throw new IllegalArgumentException JavaDoc(
50                     "Illegal value for font weight: '"
51                     + text
52                     + "'. Use one of: 100, 200, 300, "
53                     + "400, 500, 600, 700, 800, 900, "
54                     + "normal (=400), bold (=700)");
55             }
56         }
57         return weight;
58     }
59
60 }
61
Popular Tags