當前位置: 首頁>>代碼示例>>Java>>正文


Java Font.getBaseFont方法代碼示例

本文整理匯總了Java中com.lowagie.text.Font.getBaseFont方法的典型用法代碼示例。如果您正苦於以下問題:Java Font.getBaseFont方法的具體用法?Java Font.getBaseFont怎麽用?Java Font.getBaseFont使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在com.lowagie.text.Font的用法示例。


在下文中一共展示了Font.getBaseFont方法的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: createfont

import com.lowagie.text.Font; //導入方法依賴的package包/類
/**
 * Create a font via the <code>FontFactory</code>
 * 
 * @param fontName The font name to create
 * @return The created <code>Font</code> object
 * 
 * @since 2.0.8
 */
private Font createfont(String fontName) {
	Font f1 = null;
	int pos=-1;
	do {
		f1 = FontFactory.getFont(fontName);
		
		if(f1.getBaseFont() != null) break;	// found a font, exit the do/while
		
		pos = fontName.lastIndexOf(' ');	// find the last space
		if(pos>0) {
			fontName = fontName.substring(0, pos );	// truncate it to the last space
		}
	} while(pos>0);
	return f1;
}
 
開發者ID:albfernandez,項目名稱:itext2,代碼行數:24,代碼來源:RtfDestinationFontTable.java

示例2: addFont

import com.lowagie.text.Font; //導入方法依賴的package包/類
/**
 * Adds a <CODE>Font</CODE> to be searched for valid characters.
 * @param font the <CODE>Font</CODE>
 */    
public void addFont(Font font) {
    if (font.getBaseFont() != null) {
        fonts.add(font);
        return;
    }
    BaseFont bf = font.getCalculatedBaseFont(true);
    Font f2 = new Font(bf, font.getSize(), font.getCalculatedStyle(), font.getColor());
    fonts.add(f2);
}
 
開發者ID:albfernandez,項目名稱:itext2,代碼行數:14,代碼來源:FontSelector.java

示例3: RtfFont

import com.lowagie.text.Font; //導入方法依賴的package包/類
/**
 * Constructs a RtfFont from a com.lowagie.text.Font
 * @param doc The RtfDocument this font appears in
 * @param font The Font to use as a base
 */
public RtfFont(RtfDocument doc, Font font) {
    this.document = doc;
    if(font != null) {
        if(font instanceof RtfFont) {
            this.fontName = ((RtfFont) font).getFontName();
            this.charset = ((RtfFont) font).getCharset();
        } else {
            setToDefaultFamily(font.getFamilyname());
        }
        if(font.getBaseFont() != null) {
            String[][] fontNames = font.getBaseFont().getFullFontName();
            for(int i = 0; i < fontNames.length; i++) {
                if(fontNames[i][2].equals("0")) {
                    this.fontName = fontNames[i][3];
                    break;
                } else if(fontNames[i][2].equals("1033") || fontNames[i][2].equals("")) {
                    this.fontName = fontNames[i][3];
                }
            }
        }

        if(this.fontName.equalsIgnoreCase("unknown")) {
            this.fontName = DEFAULT_FONT;
        }
        
        setSize(font.getSize());
        setStyle(font.getStyle());
        setColor(font.getColor());
        if(document != null) {
        	this.fontNumber = document.getDocumentHeader().getFontNumber(this);
        }
    }

    if(document != null) {
        setRtfDocument(document);
    }
}
 
開發者ID:albfernandez,項目名稱:itext2,代碼行數:43,代碼來源:RtfFont.java

示例4: addTextVertical

import com.lowagie.text.Font; //導入方法依賴的package包/類
public void addTextVertical(PdfPCell cell, String text, boolean bold) throws Exception  {
	if (text==null) return;
       if (text.indexOf("<span")>=0)
           text = text.replaceAll("</span>","").replaceAll("<span .*>", "");
       Font font = PdfFont.getFont(bold);
	BaseFont bf = font.getBaseFont();
	float width = bf.getWidthPoint(text, font.getSize());
	PdfTemplate template = iWriter.getDirectContent().createTemplate(2 * font.getSize() + 4, width);
	template.beginText();
	template.setColorFill(Color.BLACK);
	template.setFontAndSize(bf, font.getSize());
	template.setTextMatrix(0, 2);
	template.showText(text);
	template.endText();
	template.setWidth(width);
	template.setHeight(font.getSize() + 2);
	//make an Image object from the template
	Image img = Image.getInstance(template);
	img.setRotationDegrees(270);
	//embed the image in a Chunk
	Chunk ck = new Chunk(img, 0, 0);
	
	if (cell.getPhrase()==null) {
		cell.setPhrase(new Paragraph(ck));
		cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
		cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
	} else {
		cell.getPhrase().add(ck);
	}
}
 
開發者ID:Jenner4S,項目名稱:unitimes,代碼行數:31,代碼來源:PdfTimetableGridTable.java

示例5: getFont

import com.lowagie.text.Font; //導入方法依賴的package包/類
public BaseFont getFont() {
    if (font != null)
        return font;
    Font ff2 = FontFactory.getFont(faceName, BaseFont.CP1252, true, 10, ((italic != 0) ? Font.ITALIC : 0) | ((bold != 0) ? Font.BOLD : 0));
    font = ff2.getBaseFont();
    if (font != null)
        return font;
    String fontName;
    if (faceName.indexOf("courier") != -1 || faceName.indexOf("terminal") != -1
        || faceName.indexOf("fixedsys") != -1) {
        fontName = fontNames[MARKER_COURIER + italic + bold];
    }
    else if (faceName.indexOf("ms sans serif") != -1 || faceName.indexOf("arial") != -1
        || faceName.indexOf("system") != -1) {
        fontName = fontNames[MARKER_HELVETICA + italic + bold];
    }
    else if (faceName.indexOf("arial black") != -1) {
        fontName = fontNames[MARKER_HELVETICA + italic + MARKER_BOLD];
    }
    else if (faceName.indexOf("times") != -1 || faceName.indexOf("ms serif") != -1
        || faceName.indexOf("roman") != -1) {
        fontName = fontNames[MARKER_TIMES + italic + bold];
    }
    else if (faceName.indexOf("symbol") != -1) {
        fontName = fontNames[MARKER_SYMBOL];
    }
    else {
        int pitch = pitchAndFamily & 3;
        int family = (pitchAndFamily >> 4) & 7;
        switch (family) {
            case FF_MODERN:
                fontName = fontNames[MARKER_COURIER + italic + bold];
                break;
            case FF_ROMAN:
                fontName = fontNames[MARKER_TIMES + italic + bold];
                break;
            case FF_SWISS:
            case FF_SCRIPT:
            case FF_DECORATIVE:
                fontName = fontNames[MARKER_HELVETICA + italic + bold];
                break;
            default:
            {
                switch (pitch) {
                    case FIXED_PITCH:
                        fontName = fontNames[MARKER_COURIER + italic + bold];
                        break;
                    default:
                        fontName = fontNames[MARKER_HELVETICA + italic + bold];
                        break;
                }
            }
        }
    }
    try {
        font = BaseFont.createFont(fontName, "Cp1252", false);
    }
    catch (Exception e) {
        throw new ExceptionConverter(e);
    }
    
    return font;
}
 
開發者ID:albfernandez,項目名稱:itext2,代碼行數:64,代碼來源:MetaFont.java

示例6: processFont

import com.lowagie.text.Font; //導入方法依賴的package包/類
/**
 * Process the font information that was parsed from the input.
 * 
 * @since 2.0.8
 */
private void processFont() {
	this.fontName = this.fontName.trim();
	if(fontName.length() == 0) return;
	if(fontNr.length() == 0) return;
	
	if(fontName.length()>0 && fontName.indexOf(';') >= 0) {
		fontName = fontName.substring(0,fontName.indexOf(';'));
	}

	if(this.rtfParser.isImport()) {
		//TODO: If primary font fails, use the alternate
			//TODO: Problem: RtfFont defaults family to \froman and doesn't allow any other family.
			// if you set the family, it changes the font name and not the family in the Font.java class.
			
//			if(this.fontFamily.length() > 0) {
//				if(this.importHeader.importFont(this.fontNr, this.fontName, this.fontFamily, Integer.parseInt(this.charset)) == false) {
//					if(this.falt.length() > 0) {
//						this.importHeader.importFont(this.fontNr, this.falt, this.fontFamily, Integer.parseInt(this.charset));
//					}
//				}
//			} else {
				if(!this.importHeader.importFont(this.fontNr, this.fontName, Integer.parseInt("".equals(this.charset)?CHARSET_DEFAULT:this.charset))) {
					if(this.falt.length() > 0) {
						this.importHeader.importFont(this.fontNr, this.falt, Integer.parseInt("".equals(this.charset)?CHARSET_DEFAULT:this.charset));
					}
				}
//			}
		}
	if(this.rtfParser.isConvert()) {
		// This could probably be written as a better font matching function
		
		String fName = this.fontName;	// work variable for trimming name if needed.
		Font f1 = createfont(fName);
		if(f1.getBaseFont() == null && this.falt.length()>0)
			f1 = createfont(this.falt);
		
		if(f1.getBaseFont() == null) {
			// Did not find a font, let's try a substring of the first name.
			if(FontFactory.COURIER.indexOf(fName) > -1 ) {
				f1 = FontFactory.getFont(FontFactory.COURIER);
			} else if(FontFactory.HELVETICA.indexOf(fName) > -1 ) {
				f1 = FontFactory.getFont(FontFactory.HELVETICA);
			} else if(FontFactory.TIMES.indexOf(fName) > -1 ) {
				f1 = FontFactory.getFont(FontFactory.TIMES);
			} else if(FontFactory.SYMBOL.indexOf(fName) > -1 ) {
				f1 = FontFactory.getFont(FontFactory.SYMBOL);
			} else if(FontFactory.ZAPFDINGBATS.indexOf(fName) > -1 ) {
				f1 = FontFactory.getFont(FontFactory.ZAPFDINGBATS);
			} else {
				// we did not find a matching font in any form.
				// default to HELVETICA for now.
				f1 = FontFactory.getFont(FontFactory.HELVETICA);
			}
		}
		fontMap.put(this.fontNr, f1);
		//System.out.println(f1.getFamilyname());
	}
	this.setToDefaults();
}
 
開發者ID:albfernandez,項目名稱:itext2,代碼行數:65,代碼來源:RtfDestinationFontTable.java

示例7: write

import com.lowagie.text.Font; //導入方法依賴的package包/類
/**
 * Writes the representation of a <CODE>Font</CODE>.
 *
 * @param font              a <CODE>Font</CODE>
 * @param styleAttributes   the style of the font
 * @throws IOException
 */

protected void write(Font font, Properties styleAttributes) throws IOException {
    if (font == null || !isOtherFont(font) /* || styleAttributes == null*/) return;
    write(" ");
    write(HtmlTags.STYLE);
    write("=\"");
    if (styleAttributes != null) {
        String key;
        for (Enumeration e = styleAttributes.propertyNames(); e.hasMoreElements(); ) {
            key = (String)e.nextElement();
            writeCssProperty(key, styleAttributes.getProperty(key));
        }
    }
    if (isOtherFont(font)) {
        writeCssProperty(Markup.CSS_KEY_FONTFAMILY, font.getFamilyname());
        
        if (font.getSize() != Font.UNDEFINED) {
            writeCssProperty(Markup.CSS_KEY_FONTSIZE, font.getSize() + "pt");
        }
        if (font.getColor() != null) {
            writeCssProperty(Markup.CSS_KEY_COLOR, HtmlEncoder.encode(font.getColor()));
        }
        
        int fontstyle = font.getStyle();
        BaseFont bf = font.getBaseFont();
        if (bf != null) {
            String ps = bf.getPostscriptFontName().toLowerCase();
            if (ps.indexOf("bold") >= 0) {
                if (fontstyle == Font.UNDEFINED)
                    fontstyle = 0;
                fontstyle |= Font.BOLD;
            }
            if (ps.indexOf("italic") >= 0 || ps.indexOf("oblique") >= 0) {
                if (fontstyle == Font.UNDEFINED)
                    fontstyle = 0;
                fontstyle |= Font.ITALIC;
            }
        }
        if (fontstyle != Font.UNDEFINED && fontstyle != Font.NORMAL) {
            switch (fontstyle & Font.BOLDITALIC) {
                case Font.BOLD:
                    writeCssProperty(Markup.CSS_KEY_FONTWEIGHT, Markup.CSS_VALUE_BOLD);
                    break;
                case Font.ITALIC:
                    writeCssProperty(Markup.CSS_KEY_FONTSTYLE, Markup.CSS_VALUE_ITALIC);
                    break;
                case Font.BOLDITALIC:
                    writeCssProperty(Markup.CSS_KEY_FONTWEIGHT, Markup.CSS_VALUE_BOLD);
                    writeCssProperty(Markup.CSS_KEY_FONTSTYLE, Markup.CSS_VALUE_ITALIC);
                    break;
            }
            
            // CSS only supports one decoration tag so if both are specified
            // only one of the two will display
            if ((fontstyle & Font.UNDERLINE) > 0) {
                writeCssProperty(Markup.CSS_KEY_TEXTDECORATION, Markup.CSS_VALUE_UNDERLINE);
            }
            if ((fontstyle & Font.STRIKETHRU) > 0) {
                writeCssProperty(Markup.CSS_KEY_TEXTDECORATION, Markup.CSS_VALUE_LINETHROUGH);
            }
        }
    }
    write("\"");
}
 
開發者ID:albfernandez,項目名稱:itext2,代碼行數:72,代碼來源:HtmlWriter.java

示例8: canUseGlyphRendering

import com.lowagie.text.Font; //導入方法依賴的package包/類
protected boolean canUseGlyphRendering(FontKey fontKey) 
{
	Map<Attribute, Object> fontAttributes = new HashMap<Attribute, Object>();
	fontKey.fontAttribute.putAttributes(fontAttributes);
	fontAttributes.put(TextAttribute.SIZE, 10f);

	int style = 0;
	if (fontKey.italic)
	{
		style |= java.awt.Font.ITALIC;
		fontAttributes.put(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE);
	}
	if (fontKey.bold)
	{
		style |= java.awt.Font.BOLD;
		fontAttributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD);
	}
	
	Font pdfFont = getFont(fontAttributes, fontKey.locale, false);
	BaseFont baseFont = pdfFont.getBaseFont();
	if (baseFont.getFontType() != BaseFont.FONT_TYPE_TTUNI
			|| baseFont.isFontSpecific())
	{
		if (log.isDebugEnabled())
		{
			log.debug("pdf font for " + fontKey + " has type " + baseFont.getFontType()
					+ ", symbol " + baseFont.isFontSpecific()
					+ ", cannot use glyph rendering");
		}
		return false;
	}
	
	java.awt.Font awtFont = fontUtil.getAwtFontFromBundles(fontKey.fontAttribute, style,
			10f, fontKey.locale, awtIgnoreMissingFont);
	if (awtFont == null)
	{
		awtFont = new java.awt.Font(fontAttributes);
	}
	String awtFontName = awtFont.getFontName();
	
	if (log.isDebugEnabled())
	{
		log.debug(fontKey + " resolved to awt font " + awtFontName);
	}
	
	// we need the fonts to be identical.
	// it would be safer to only allow fonts from extensions, 
	// but for now we are just checking the font names.
	// we need to compare full names because we can't get the base name from awt.
	String[][] pdfFontNames = baseFont.getFullFontName();
	boolean nameMatch = false;
	for (String[] nameArray : pdfFontNames)
	{
		if (nameArray.length >= 4)
		{
			if (log.isDebugEnabled())
			{
				log.debug(fontKey + " resolved to pdf font " + nameArray[3]);
			}
			
			if (awtFontName.equals(nameArray[3]))
			{
				nameMatch = true;
				break;
			}
		}
	}
	
	return nameMatch;
}
 
開發者ID:TIBCOSoftware,項目名稱:jasperreports,代碼行數:71,代碼來源:JRPdfExporter.java


注:本文中的com.lowagie.text.Font.getBaseFont方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。