ExceptionConverter:java.io.IOException:文档没有页面

ExceptionConverter:java.io.IOException:文档没有页面,java,pdf,pdf-generation,itext,Java,Pdf,Pdf Generation,Itext,我想用iText创建4个pdf文件。在运行代码时,成功创建了前两个。发回重审的两人抛出异常“ExceptionConverter:java.io.IOException:文档没有页面” 以下是pdf创建部分的代码: public static Boolean createPDFFile(String filename, int headerType, List<DremelitemDetails> itemDetails) { try { path = new

我想用iText创建4个pdf文件。在运行代码时,成功创建了前两个。发回重审的两人抛出异常“ExceptionConverter:java.io.IOException:文档没有页面”

以下是pdf创建部分的代码:

public static Boolean createPDFFile(String filename, int headerType, List<DremelitemDetails> itemDetails) {
    try {
        path = new File(".").getCanonicalPath();
        column = 0;
        // create the pdf file
        props.load(new FileInputStream("Properties\\eng.properties"));
        COLUMNS = new float[][] {
                { MARGIN_LEFT, MARGIN_BOTTOM, (PageSize.LETTER.rotate().getWidth() - MARGIN_ENTER_COLUMNS) / 2,
                    PageSize.LETTER.rotate().getTop(MARGIN_TOP) },
                    { (PageSize.LETTER.rotate().getWidth() + MARGIN_ENTER_COLUMNS) / 2, MARGIN_BOTTOM,
                        PageSize.LETTER.rotate().getRight(MARGIN_RIGHT), PageSize.LETTER.rotate().getTop(MARGIN_TOP) } };
        String fontPath = "font\\arialuni.TTF";
        unicodeFont = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
        mmPDFDocument = new Document(PageSize.LETTER.rotate(), MARGIN_LEFT, MARGIN_RIGHT, MARGIN_TOP, MARGIN_BOTTOM);
        pdfWriter = PdfWriter.getInstance(mmPDFDocument, new FileOutputStream(filename));
        mmPDFDocument.setPageSize(PageSize.LETTER.rotate());


        /*String[] footer = { props.getProperty("header"), "fdftfdbfbug",
                    "\u00a9" + props.getProperty("footer1"), props.getProperty("footer2")};*/
        String[] footer = { "SUMMARY OF PROJECTS", "Home Décor",
                "\u00a92011 Robert Bosch Tool Corporation. All Rigths Reserved.",
        "Web content and services - on demand, on your printer www.eprintcentre.com" };

        pdfWriter.setPageEvent(new HeaderFooter(mmPDFDocument.right() - mmPDFDocument.left(), footer, path, headerType, unicodeFont));

        mmPDFDocument.open();
        COLUMNS[0][3] = mmPDFDocument.top();
        COLUMNS[1][3] = mmPDFDocument.top();
        pdfColumn = new ColumnText(pdfWriter.getDirectContent());
        pdfColumn.setSimpleColumn(COLUMNS[column][0], COLUMNS[column][1], COLUMNS[column][2], COLUMNS[column][3]);
        pdfColumn.setSpaceCharRatio(PdfWriter.NO_SPACE_CHAR_RATIO);
        /* For generating Pdf */
        addItemDetails(itemDetails);
        mmPDFDocument.close();
    } catch (FileNotFoundException e) {
        System.out.println("FileNotFoundException-------"+e);
        closePDFFile();
        return false;
    } catch (DocumentException e) {
        System.out.println("DocumentException-------"+e);
        closePDFFile();
        return false;
    } catch (Exception e) {
        System.out.println("Exception-------"+e);
        return false;
    }
    return true;
}


public static void main(String[] args) {
    DremelData dremelData = new DremelData();
    DremelPDFBulid dremelPDFBulid = new DremelPDFBulid();

    Document doc = dremelData.readXml("C:\\eng.xml");        
    ArrayList<DremelitemDetails> homeDeco = dremelData.parseNode(1, 11, doc); 
    ArrayList<DremelitemDetails> artsAndCrafts = dremelData.parseNode(12, 24, doc); 
    ArrayList<DremelitemDetails> seasonalIdeas = dremelData.parseNode(25, 36, doc); 
    ArrayList<DremelitemDetails> DIYRestoration = dremelData.parseNode(37, 49, doc);       

    try {

        dremelPDFBulid.createPDFFile("c:\\sam1.pdf", 0, homeDeco);
        dremelPDFBulid.createPDFFile("c:\\sam2.pdf", 1, artsAndCrafts);
        dremelPDFBulid.createPDFFile("c:\\sam3.pdf", 2, seasonalIdeas);
        dremelPDFBulid.createPDFFile("c:\\sam4.pdf", 3, DIYRestoration);

    } catch (Exception e) {
        System.out.println("Error in readXml : " + e.toString());
    }
}
public静态布尔CreatePdfile(字符串文件名、int-headerType、列表项详细信息){
试一试{
路径=新文件(“.”)。getCanonicalPath();
列=0;
//创建pdf文件
加载(新文件输入流(“Properties\\eng.Properties”);
列=新浮点[][]{
{MARGIN_LEFT,MARGIN_BOTTOM,(PageSize.LETTER.rotate().getWidth()-MARGIN_ENTER_COLUMNS)/2,
PageSize.LETTER.rotate().getTop(MARGIN_TOP)},
{(PageSize.LETTER.rotate().getWidth()+边距\输入\列)/2,边距\底部,
PageSize.LETTER.rotate().getRight(MARGIN\u RIGHT),PageSize.LETTER.rotate().getTop(MARGIN\u TOP)};
字符串fontPath=“font\\arialuni.TTF”;
unicodeFont=BaseFont.createFont(fontPath、BaseFont.IDENTITY、BaseFont.EMBEDDED);
mmPDFDocument=新文档(PageSize.LETTER.rotate(),左边距,右边距,顶部距,底部距);
pdfWriter=pdfWriter.getInstance(mmPDFDocument,新文件输出流(filename));
mmPDFDocument.setPageSize(PageSize.LETTER.rotate());
/*字符串[]页脚={props.getProperty(“页眉”),“fdftfdbfbug”,
“\u00a9”+props.getProperty(“footer1”)、props.getProperty(“footer2”)}*/
String[]footer={“项目摘要”,“主页装饰”,
“\u00a92011罗伯特博世工具公司。保留所有装配。”,
“Web内容和服务-按需,在您的打印机上www.eprintcenter.com”};
pdfWriter.setPageEvent(新的HeaderFooter(mmPDFDocument.right()-mmPDFDocument.left(),页脚,路径,headerType,unicodeFont));
mmPDFDocument.open();
[0][3]列=mmPDFDocument.top();
[1][3]列=mmPDFDocument.top();
pdfColumn=新的ColumnText(pdfWriter.getDirectContent());
pdfColumn.setSimpleColumn(列[column][0]、列[column][1]、列[column][2]、列[column][3]);
pdfColumn.setSpaceCharRatio(PdfWriter.NO_SPACE_CHAR_RATIO);
/*用于生成Pdf*/
addItemDetails(itemDetails);
mmPDFDocument.close();
}catch(filenotfounde异常){
System.out.println(“FileNotFoundException------”+e);
closePdfile();
返回false;
}捕获(文档异常){
System.out.println(“DocumentException------”+e);
closePdfile();
返回false;
}捕获(例外e){
System.out.println(“异常----”+e);
返回false;
}
返回true;
}
公共静态void main(字符串[]args){
DremelData DremelData=新的DremelData();
DremelPDFBulid DremelPDFBulid=新的DremelPDFBulid();
Document doc=dremelData.readXml(“C:\\eng.xml”);
ArrayList homeDeco=dremelData.parseNode(1,11,doc);
ArrayList artsAndCrafts=dremelData.parseNode(12,24,doc);
ArrayList季节数据=dremelData.parseNode(25,36,doc);
ArrayList DIYRestoration=dremelData.parseNode(37,49,doc);
试一试{
dremelPDFBulid.createPDFFile(“c:\\sam1.pdf”,0,homeDeco);
dremelPDFBulid.createPDFFile(“c:\\sam2.pdf”,1,artsAndCrafts);
dremelPDFBulid.createPDFFile(“c:\\sam3.pdf”,2,季节数据);
dremelPDFBulid.createPDFFile(“c:\\sam4.pdf”,3,DIYRestoration);
}捕获(例外e){
System.out.println(“readXml中的错误:+e.toString());
}
}

在上述代码中,sam3和samp4 pdf的内容为空,显示“文档没有页面”。例外情况

ArrayList是否包含第三次和第四次调用的条目?