E:\>javac pp.javaE:\>java pp
null源码如下import java.io.*;
import java.io.IOException;
import java.io.FileOutputStream;
import java.lang.*;
import java.lang.String;
import java.util.*;
import java.text.*;
import java.awt.Color;
import com.lowagie.text.*;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.PageSize;
import com.lowagie.text.Document;
import com.lowagie.text.pdf.ColumnText;
import com.lowagie.text.Phrase;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.Rectangle;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Element;
import com.lowagie.text.pdf.PdfPageEventHelper;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.DocumentException;
import com.lowagie.text.ExceptionConverter;
import com.lowagie.text.Image;
public class pp extends PdfPageEventHelper
{
public static void main(String[] args) throws Exception
{
Document document = new Document(PageSize.A4, 20, 20, 90, 30);
try
{
PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream("aa.pdf"));
writer.setViewerPreferences(PdfWriter.PageModeUseOutlines);
writer.setPageEvent(new pdf());
document.open();
BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese,12,Font.NORMAL);
Paragraph chunk = new Paragraph("我们是害虫", FontChinese);
document.add(chunk);
document.close();
}catch (Exception e) {System.out.println(e.getMessage());}
}
}
null源码如下import java.io.*;
import java.io.IOException;
import java.io.FileOutputStream;
import java.lang.*;
import java.lang.String;
import java.util.*;
import java.text.*;
import java.awt.Color;
import com.lowagie.text.*;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.PageSize;
import com.lowagie.text.Document;
import com.lowagie.text.pdf.ColumnText;
import com.lowagie.text.Phrase;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.Rectangle;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Element;
import com.lowagie.text.pdf.PdfPageEventHelper;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.DocumentException;
import com.lowagie.text.ExceptionConverter;
import com.lowagie.text.Image;
public class pp extends PdfPageEventHelper
{
public static void main(String[] args) throws Exception
{
Document document = new Document(PageSize.A4, 20, 20, 90, 30);
try
{
PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream("aa.pdf"));
writer.setViewerPreferences(PdfWriter.PageModeUseOutlines);
writer.setPageEvent(new pdf());
document.open();
BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese,12,Font.NORMAL);
Paragraph chunk = new Paragraph("我们是害虫", FontChinese);
document.add(chunk);
document.close();
}catch (Exception e) {System.out.println(e.getMessage());}
}
}
如: BaseFont bfChinese = BaseFont.createFont("../webapps/CMCS3.1/business/overDraft/SIMYOU.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
com.lowagie.text.Font FontChinese = new com.lowagie.text.Font(bfChinese, 12, com.lowagie.text.Font.NORMAL);SIMYOU.TTF这个文件在windows的系统目录中可以找到的,
Volume in drive C has no label.
Volume Serial Number is 4CDE-FFB0 Directory of C:\WINDOWS\Fonts1999-03-17 15:07 168,756 SCHLBKB.TTF
1999-03-17 15:07 160,964 SCHLBKBI.TTF
1999-03-17 15:07 163,164 SCHLBKI.TTF
1999-06-24 09:33 55,500 SCRIPTBL.TTF
2004-08-04 20:00 234,280 shruti.ttf
2004-08-04 20:00 10,044,356 simhei.ttf
2004-08-04 20:00 221,676 sylfaen.ttf
2004-08-04 20:00 69,464 symbol.ttf
8 File(s) 11,118,160 bytes
0 Dir(s) 15,229,747,200 bytes freeC:\WINDOWS\Fonts>cd /C:\WINDOWS\Fonts>cd \C:\>dir sim*.ttf /a/s
Volume in drive C has no label.
Volume Serial Number is 4CDE-FFB0 Directory of C:\WINDOWS\Fonts2004-08-04 20:00 10,044,356 simhei.ttf
1 File(s) 10,044,356 bytes Total Files Listed:
1 File(s) 10,044,356 bytes
0 Dir(s) 15,229,747,200 bytes free
找不到pdf类,所以将此句引掉。
然后执行,能够正确地生成aa.pdf。
我的环境运行环境是:jdk1.5.0。是不是jdk版本问题?
=================================
跟这个没关系
public static final String RESOURCE_PATH = "com/itextpdf/text/pdf/fonts/";
但是在iTextAsian.jar里你会发现 iTextAsian的包名是 "com.itextpdf.text.pdf.fonts"程序在加载的过程中会根据 RESOURCE_PATH的路径去寻找下面的peoperties文件,它的font和encoding文件都是从String RESOURCE_PATH = "com/itextpdf/text/pdf/fonts/"; 这里加载的,而老itextasian.jar的包名是com.lowagie.text.pdf.fonts, 应该是包名重新命名了, 而没有及时更新itextasian.jar, 改了一下itextasian.jar包路径, 重新运行程序, OK, 搞定.
更改iTextAsian.jar包名的方法如下
1)使用winrar解压缩程序将原来的iTextAsian.jar解压,目录结构如下
iTextAsian
--com
--lowagie
--text
--pdf
--fonts
--...(字体属性文件)
2)将加压后com目录下的包名lowagie更改为itextpdf
3)在命令行转至iTextAsian目录,重新打包为iTextAsian.jar文件
命令如下:
jar cvf iTextAsian.jar .