mirror of
https://github.com/apache/poi.git
synced 2026-02-27 20:40:08 +08:00
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353467 13f79535-47bb-0310-9956-ffa450edef68
390 lines
9.4 KiB
Java
390 lines
9.4 KiB
Java
|
|
/* ====================================================================
|
|
* The Apache Software License, Version 1.1
|
|
*
|
|
* Copyright (c) 2003 The Apache Software Foundation. All rights
|
|
* reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
*
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
*
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in
|
|
* the documentation and/or other materials provided with the
|
|
* distribution.
|
|
*
|
|
* 3. The end-user documentation included with the redistribution,
|
|
* if any, must include the following acknowledgment:
|
|
* "This product includes software developed by the
|
|
* Apache Software Foundation (http://www.apache.org/)."
|
|
* Alternately, this acknowledgment may appear in the software itself,
|
|
* if and wherever such third-party acknowledgments normally appear.
|
|
*
|
|
* 4. The names "Apache" and "Apache Software Foundation" and
|
|
* "Apache POI" must not be used to endorse or promote products
|
|
* derived from this software without prior written permission. For
|
|
* written permission, please contact apache@apache.org.
|
|
*
|
|
* 5. Products derived from this software may not be called "Apache",
|
|
* "Apache POI", nor may "Apache" appear in their name, without
|
|
* prior written permission of the Apache Software Foundation.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
|
|
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
|
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
* SUCH DAMAGE.
|
|
* ====================================================================
|
|
*
|
|
* This software consists of voluntary contributions made by many
|
|
* individuals on behalf of the Apache Software Foundation. For more
|
|
* information on the Apache Software Foundation, please see
|
|
* <http://www.apache.org/>.
|
|
*/
|
|
|
|
/*
|
|
* HSSFFont.java
|
|
*
|
|
* Created on December 9, 2001, 10:34 AM
|
|
*/
|
|
package org.apache.poi.hssf.usermodel;
|
|
|
|
import org.apache.poi.hssf.record.FontRecord;
|
|
|
|
/**
|
|
* Represents a Font used in a workbook.
|
|
*
|
|
* @version 1.0-pre
|
|
* @author Andrew C. Oliver
|
|
* @see org.apache.poi.hssf.usermodel.HSSFWorkbook#createFont()
|
|
* @see org.apache.poi.hssf.usermodel.HSSFWorkbook#getFontAt(short)
|
|
* @see org.apache.poi.hssf.usermodel.HSSFCellStyle#setFont(HSSFFont)
|
|
*/
|
|
|
|
public class HSSFFont
|
|
{
|
|
|
|
/**
|
|
* Arial font
|
|
*/
|
|
|
|
public final static String FONT_ARIAL = "Arial";
|
|
|
|
/**
|
|
* Normal boldness (not bold)
|
|
*/
|
|
|
|
public final static short BOLDWEIGHT_NORMAL = 0x190;
|
|
|
|
/**
|
|
* Bold boldness (bold)
|
|
*/
|
|
|
|
public final static short BOLDWEIGHT_BOLD = 0x2bc;
|
|
|
|
/**
|
|
* normal type of black color
|
|
*/
|
|
|
|
public final static short COLOR_NORMAL = 0x7fff;
|
|
|
|
/**
|
|
* Dark Red color
|
|
*/
|
|
|
|
public final static short COLOR_RED = 0xa;
|
|
|
|
/**
|
|
* no type offsetting (not super or subscript)
|
|
*/
|
|
|
|
public final static short SS_NONE = 0;
|
|
|
|
/**
|
|
* superscript
|
|
*/
|
|
|
|
public final static short SS_SUPER = 1;
|
|
|
|
/**
|
|
* subscript
|
|
*/
|
|
|
|
public final static short SS_SUB = 2;
|
|
|
|
/**
|
|
* not underlined
|
|
*/
|
|
|
|
public final static byte U_NONE = 0;
|
|
|
|
/**
|
|
* single (normal) underline
|
|
*/
|
|
|
|
public final static byte U_SINGLE = 1;
|
|
|
|
/**
|
|
* double underlined
|
|
*/
|
|
|
|
public final static byte U_DOUBLE = 2;
|
|
|
|
/**
|
|
* accounting style single underline
|
|
*/
|
|
|
|
public final static byte U_SINGLE_ACCOUNTING = 0x21;
|
|
|
|
/**
|
|
* accounting style double underline
|
|
*/
|
|
|
|
public final static byte U_DOUBLE_ACCOUNTING = 0x22;
|
|
private FontRecord font;
|
|
private short index;
|
|
|
|
/** Creates a new instance of HSSFFont */
|
|
|
|
protected HSSFFont(short index, FontRecord rec)
|
|
{
|
|
font = rec;
|
|
this.index = index;
|
|
}
|
|
|
|
/**
|
|
* set the name for the font (i.e. Arial)
|
|
* @param name the name of the font to use
|
|
* @see #FONT_ARIAL
|
|
*/
|
|
|
|
public void setFontName(String name)
|
|
{
|
|
font.setFontName(name);
|
|
font.setFontNameLength(( byte ) name.length());
|
|
}
|
|
|
|
/**
|
|
* get the name for the font (i.e. Arial)
|
|
* @return String representing the name of the font to use
|
|
* @see #FONT_ARIAL
|
|
*/
|
|
|
|
public String getFontName()
|
|
{
|
|
return font.getFontName();
|
|
}
|
|
|
|
/**
|
|
* get the index within the HSSFWorkbook (sequence within the collection of Font objects)
|
|
* @return unique index number of the underlying record this Font represents (probably you don't care
|
|
* unless you're comparing which one is which)
|
|
*/
|
|
|
|
public short getIndex()
|
|
{
|
|
return index;
|
|
}
|
|
|
|
/**
|
|
* set the font height in unit's of 1/20th of a point. Maybe you might want to
|
|
* use the setFontHeightInPoints which matches to the familiar 10, 12, 14 etc..
|
|
* @param height in 1/20ths of a point
|
|
* @see #setFontHeightInPoints(short)
|
|
*/
|
|
|
|
public void setFontHeight(short height)
|
|
{
|
|
font.setFontHeight(height);
|
|
}
|
|
|
|
/**
|
|
* set the font height
|
|
* @param height in the familiar unit of measure - points
|
|
* @see #setFontHeight(short)
|
|
*/
|
|
|
|
public void setFontHeightInPoints(short height)
|
|
{
|
|
font.setFontHeight(( short ) (height * 20));
|
|
}
|
|
|
|
/**
|
|
* get the font height in unit's of 1/20th of a point. Maybe you might want to
|
|
* use the getFontHeightInPoints which matches to the familiar 10, 12, 14 etc..
|
|
* @return short - height in 1/20ths of a point
|
|
* @see #getFontHeightInPoints()
|
|
*/
|
|
|
|
public short getFontHeight()
|
|
{
|
|
return font.getFontHeight();
|
|
}
|
|
|
|
/**
|
|
* get the font height
|
|
* @return short - height in the familiar unit of measure - points
|
|
* @see #getFontHeight()
|
|
*/
|
|
|
|
public short getFontHeightInPoints()
|
|
{
|
|
return ( short ) (font.getFontHeight() / 20);
|
|
}
|
|
|
|
/**
|
|
* set whether to use italics or not
|
|
* @param italic use italics or not
|
|
*/
|
|
|
|
public void setItalic(boolean italic)
|
|
{
|
|
font.setItalic(italic);
|
|
}
|
|
|
|
/**
|
|
* get whether to use italics or not
|
|
* @return italics or not
|
|
*/
|
|
|
|
public boolean getItalic()
|
|
{
|
|
return font.isItalic();
|
|
}
|
|
|
|
/**
|
|
* set whether to use a strikeout horizontal line through the text or not
|
|
* @param strikeout or not
|
|
*/
|
|
|
|
public void setStrikeout(boolean strikeout)
|
|
{
|
|
font.setStrikeout(strikeout);
|
|
}
|
|
|
|
/**
|
|
* get whether to use a strikeout horizontal line through the text or not
|
|
* @return strikeout or not
|
|
*/
|
|
|
|
public boolean getStrikeout()
|
|
{
|
|
return font.isStruckout();
|
|
}
|
|
|
|
/**
|
|
* set the color for the font
|
|
* @param color to use
|
|
* @see #COLOR_NORMAL
|
|
* @see #COLOR_RED
|
|
*/
|
|
|
|
public void setColor(short color)
|
|
{
|
|
font.setColorPaletteIndex(color);
|
|
}
|
|
|
|
/**
|
|
* get the color for the font
|
|
* @return color to use
|
|
* @see #COLOR_NORMAL
|
|
* @see #COLOR_RED
|
|
*/
|
|
|
|
public short getColor()
|
|
{
|
|
return font.getColorPaletteIndex();
|
|
}
|
|
|
|
/**
|
|
* set the boldness to use
|
|
* @param boldweight
|
|
* @see #BOLDWEIGHT_NORMAL
|
|
* @see #BOLDWEIGHT_BOLD
|
|
*/
|
|
|
|
public void setBoldweight(short boldweight)
|
|
{
|
|
font.setBoldWeight(boldweight);
|
|
}
|
|
|
|
/**
|
|
* get the boldness to use
|
|
* @return boldweight
|
|
* @see #BOLDWEIGHT_NORMAL
|
|
* @see #BOLDWEIGHT_BOLD
|
|
*/
|
|
|
|
public short getBoldweight()
|
|
{
|
|
return font.getBoldWeight();
|
|
}
|
|
|
|
/**
|
|
* set normal,super or subscript.
|
|
* @param offset type to use (none,super,sub)
|
|
* @see #SS_NONE
|
|
* @see #SS_SUPER
|
|
* @see #SS_SUB
|
|
*/
|
|
|
|
public void setTypeOffset(short offset)
|
|
{
|
|
font.setSuperSubScript(offset);
|
|
}
|
|
|
|
/**
|
|
* get normal,super or subscript.
|
|
* @return offset type to use (none,super,sub)
|
|
* @see #SS_NONE
|
|
* @see #SS_SUPER
|
|
* @see #SS_SUB
|
|
*/
|
|
|
|
public short getTypeOffset()
|
|
{
|
|
return font.getSuperSubScript();
|
|
}
|
|
|
|
/**
|
|
* set type of text underlining to use
|
|
* @param underline the underlining type to use
|
|
* @see #U_NONE
|
|
* @see #U_SINGLE
|
|
* @see #U_DOUBLE
|
|
* @see #U_SINGLE_ACCOUNTING
|
|
* @see #U_DOUBLE_ACCOUNTING
|
|
*/
|
|
|
|
public void setUnderline(byte underline)
|
|
{
|
|
font.setUnderline(underline);
|
|
}
|
|
|
|
/**
|
|
* get type of text underlining to use
|
|
* @return underlining type
|
|
* @see #U_NONE
|
|
* @see #U_SINGLE
|
|
* @see #U_DOUBLE
|
|
* @see #U_SINGLE_ACCOUNTING
|
|
* @see #U_DOUBLE_ACCOUNTING
|
|
*/
|
|
|
|
public byte getUnderline()
|
|
{
|
|
return font.getUnderline();
|
|
}
|
|
}
|