其中两个文件关于编码和字体(下面例子会用到)。
cjkencodings.properties
UniGB-UCS2-H=UniGB-UCS2-H
UniGB-UCS2-V=UniGB-UCS2-HUniGB-UCS2-V
cjkfonts.properties
STSong-Light=Adobe-GB1-UCS2_UniGB-UCS2-H_UniGB-UCS2-V_
STSongStd-Light=Adobe-GB1-UCS2_UniGB-UCS2-H_UniGB-UCS2-V_
我下载的是目前最新的包——itext-1.4.7.jar 一个简单的示例代码如下:
package powerwind;
import java.io.*;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
// 功能:把文本文件的文字读出来,然后写到PDF文件
publicclass TxtToPdf {
publicstaticvoid main(String[] args) {
Document doc = null;
BufferedReader br = null;
final String pdfFilename = "PdfFile.pdf";
final String txtFilename = "TxtFile.txt";
// 设置纸张为A5
try {
doc = new Document();
doc.setPageSize(PageSize.A5);
PdfWriter.getInstance(doc, new FileOutputStream(pdfFilename));
// 设置字体和编码:
BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font font = new Font(baseFont, 8, Font.NORMAL);
doc.open();
br = new BufferedReader(new FileReader(txtFilename));
String str = null;
// 从txt文件读出一行,加入到Document的段落
while ((str = br.readLine()) != null) {
doc.add(new Paragraph(str, font));
}
} catch (DocumentException de) {
System.out.println(de);
} catch (IOException ioe) {
System.out.println(ioe);
} finally {
if (doc != null)
doc.close();
try {
if (br != null)
br.close();
} catch (IOException ioe) {
System.out.println(ioe);
}
}
System.out.println("done");
}
}