fontlistloader.java
来自「iReport-0.4.1-src是iReport的源代码,iReport是一个」· Java 代码 · 共 146 行
JAVA
146 行
/*
* FontListLoader.java
*
* iReport -- Visual designer for generating JasperReports Documents
* Copyright (C) 2002-2003 Giulio Toffoli gt@businesslogic.it
*
* This program is free software; you can redistribute and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* Giulio Toffoli
* Via T.Aspetti, 233
* 35100 Padova ITALY
* gt@businesslogic.it
*
*
* Created on 22 maggio 2003, 18.45
*/
package it.businesslogic.ireport;
import java.util.*;
/**
*
* @author Administrator
*/
public class FontListLoader {
/** Creates a new instance of FontListLoader */
public FontListLoader() {
}
public static java.awt.Font loadFont(String file)
{
java.awt.Font f = null;
try {
f = java.awt.Font.createFont(f.TRUETYPE_FONT, new java.io.FileInputStream(file));
}
catch (IllegalArgumentException ett)
{
System.out.println(ett.getMessage() +" No TrueType font");
}
catch (java.awt.FontFormatException ef)
{
System.out.println(ef.getMessage() +" FontFormatException");
}
catch (java.io.IOException ioex)
{
System.out.println(ioex.getMessage() +" IOException");
}
catch (Exception ex)
{
System.out.println(ex.getMessage() +" General Exception");
}
return f;
}
public static Vector loadTTFFonts()
{
Vector fonts = new Vector();
String path = System.getProperty("java.class.path");
//path += System.getProperty("path.separator") + "C:\\winnt\\fonts";
if (path != null && path.length()>0)
{
StringTokenizer st = new StringTokenizer(path, System.getProperty("path.separator") );
while (st.hasMoreTokens())
{
String path_str = (String)st.nextToken();
java.io.File file = new java.io.File(path_str);
if (!file.exists()) {
continue;
}
if (file.isDirectory())
{
String[] files = file.list( new java.io.FilenameFilter(){
public boolean accept(java.io.File dir, String filename)
{
// modified
// return filename.toUpperCase().endsWith(".TTF") ;
return filename.toUpperCase().endsWith(".TTF") || filename.toUpperCase().endsWith(".TTC");
}
});
//added begin
com.lowagie.text.pdf.FontMapper fontMapper = new com.lowagie.text.pdf.DefaultFontMapper();
for (int i=0; i<files.length; ++i)
{
if (files[i].toUpperCase().endsWith(".TTC")) {
try {
String[] names = com.lowagie.text.pdf.BaseFont.enumerateTTCNames(file.getPath() + file.separator + files[i]);
for (int a = 0; a < names.length; a++) {
java.awt.Font f = fontMapper.pdfToAwt( com.lowagie.text.FontFactory.getFont( file.getPath() + file.separator + files[i] + "," + a).getBaseFont(), 10 );
if (f != null) {
fonts.addElement(new IRFont(f, new java.io.File( file.getPath() + file.separator +files[i]+","+a)));
}
else
System.out.println("Failed to load font "+file.getPath() + file.separator +files[i]);
}
} catch(com.lowagie.text.DocumentException de) {
System.out.println(de);
} catch(java.io.IOException ioe) {
System.out.println(ioe);
}
} else {
//added end
java.awt.Font f = loadFont( file.getPath() + file.separator + files[i]);
if (f != null)
{
fonts.addElement(new IRFont(f, new java.io.File( file.getPath() + file.separator +files[i])));
//System.out.println(""+ f.getFamily() + " " + f.getFontName() +" ("+file.getPath() + file.separator +files[i]+")");
}
else
System.out.println("Failed to load font "+file.getPath() + file.separator +files[i]);
}
}
} else if (path_str.toUpperCase().endsWith(".TTF"))
{
// Try to load this file...
System.out.println(""+ path_str);
}
else if (path_str.toUpperCase().endsWith(".TTC"))
{
// Try to load this file...
System.out.println("TTC: "+ path_str);
}
}
}
return fonts;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?