在使用itext过程中,我需要把数据存储到xml文件中去,方法如下:
package itext;import com.lowagie.text.*;
import com.lowagie.text.xml.*;
import com.lowagie.text.html.*;
import com.lowagie.text.pdf.*;
import java.io.*;
import java.util.*;
import java.text.*;public class test1 {
public void testDocement() {
Document document = new Document(PageSize.A4, 50, 50, 50, 50);
try {
// creation of the different writers
HtmlWriter.getInstance(document, new FileOutputStream("text1.htm"));
PdfWriter.getInstance(document, new FileOutputStream("text.pdf"));
XmlWriter xw = XmlWriter.getInstance(document, new FileOutputStream("text.xml"));
// we add some meta information to the document
document.addAuthor("Bruno Lowagie");
document.addSubject("This is the result of a Test.");
// we define a header and a footer
HeaderFooter header = new HeaderFooter(new Phrase(
"This is a header."), false);
HeaderFooter footer = new HeaderFooter(new Phrase("This is page "),
new Phrase("."));
footer.setAlignment(Element.ALIGN_CENTER);
document.setHeader(header);
document.setFooter(footer); // we open the document for writing
document.open();
SimpleDateFormat sdf =new SimpleDateFormat("yyyy'年'MM'月'dd'日' kk':'mm':'ss");
BaseFont bfChinese = BaseFont.createFont("STSong-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);
document.add(new Paragraph("Hello world ,当前时间 "+ sdf.format(new Date()),FontChinese));
} catch (DocumentException de) {
de.printStackTrace();
} catch (IOException excp) {
excp.printStackTrace();
} catch (Exception excp) {
excp.printStackTrace();
}
document.close();
}
public void parseXml(){
com.lowagie.text.xml.XmlParser xpser = new XmlParser();
Document doc = new Document();
try{
XmlWriter.getInstance(doc, new FileOutputStream("text2.xml"));
}catch(Exception excp){
excp.printStackTrace();
}
xpser.go(doc,"test.xml");
doc.close();
} public static void main(String arg[]) {
test1 tt = new test1();
tt.testDocement();
// tt.parseXml();
}
}在运行过程中却出现下列错误:
java.lang.ArrayIndexOutOfBoundsException: 24403
at com.lowagie.text.xml.XmlWriter.encode(Unknown Source)
at com.lowagie.text.xml.XmlWriter.write(Unknown Source)
at com.lowagie.text.xml.XmlWriter.write(Unknown Source)
at com.lowagie.text.xml.XmlWriter.add(Unknown Source)
at com.lowagie.text.Document.add(Unknown Source)
at itext.test1.testDocement(test1.java:37)
at itext.test1.main(test1.java:62)
该如何解决?
谢谢
package itext;import com.lowagie.text.*;
import com.lowagie.text.xml.*;
import com.lowagie.text.html.*;
import com.lowagie.text.pdf.*;
import java.io.*;
import java.util.*;
import java.text.*;public class test1 {
public void testDocement() {
Document document = new Document(PageSize.A4, 50, 50, 50, 50);
try {
// creation of the different writers
HtmlWriter.getInstance(document, new FileOutputStream("text1.htm"));
PdfWriter.getInstance(document, new FileOutputStream("text.pdf"));
XmlWriter xw = XmlWriter.getInstance(document, new FileOutputStream("text.xml"));
// we add some meta information to the document
document.addAuthor("Bruno Lowagie");
document.addSubject("This is the result of a Test.");
// we define a header and a footer
HeaderFooter header = new HeaderFooter(new Phrase(
"This is a header."), false);
HeaderFooter footer = new HeaderFooter(new Phrase("This is page "),
new Phrase("."));
footer.setAlignment(Element.ALIGN_CENTER);
document.setHeader(header);
document.setFooter(footer); // we open the document for writing
document.open();
SimpleDateFormat sdf =new SimpleDateFormat("yyyy'年'MM'月'dd'日' kk':'mm':'ss");
BaseFont bfChinese = BaseFont.createFont("STSong-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);
document.add(new Paragraph("Hello world ,当前时间 "+ sdf.format(new Date()),FontChinese));
} catch (DocumentException de) {
de.printStackTrace();
} catch (IOException excp) {
excp.printStackTrace();
} catch (Exception excp) {
excp.printStackTrace();
}
document.close();
}
public void parseXml(){
com.lowagie.text.xml.XmlParser xpser = new XmlParser();
Document doc = new Document();
try{
XmlWriter.getInstance(doc, new FileOutputStream("text2.xml"));
}catch(Exception excp){
excp.printStackTrace();
}
xpser.go(doc,"test.xml");
doc.close();
} public static void main(String arg[]) {
test1 tt = new test1();
tt.testDocement();
// tt.parseXml();
}
}在运行过程中却出现下列错误:
java.lang.ArrayIndexOutOfBoundsException: 24403
at com.lowagie.text.xml.XmlWriter.encode(Unknown Source)
at com.lowagie.text.xml.XmlWriter.write(Unknown Source)
at com.lowagie.text.xml.XmlWriter.write(Unknown Source)
at com.lowagie.text.xml.XmlWriter.add(Unknown Source)
at com.lowagie.text.Document.add(Unknown Source)
at itext.test1.testDocement(test1.java:37)
at itext.test1.main(test1.java:62)
该如何解决?
谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货