Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iText PDF文档无法打开:java.io.IOException:找不到.document.has.No.pages的消息_Java_Pdf_Itext - Fatal编程技术网

iText PDF文档无法打开:java.io.IOException:找不到.document.has.No.pages的消息

iText PDF文档无法打开:java.io.IOException:找不到.document.has.No.pages的消息,java,pdf,itext,Java,Pdf,Itext,因此,我正在练习使用iText创建一个小文档。pdf是在我的下载文件夹中创建的,但当我尝试打开它时,会收到一条消息和一个错误: 消息: ExceptionConverter: java.io.IOException: No message found for the.document.has.no.pages at com.lowagie.text.pdf.PdfPages.writePageTree(Unknown Source) at com.lowagie.text.pdf.PdfWrit

因此,我正在练习使用iText创建一个小文档。pdf是在我的下载文件夹中创建的,但当我尝试打开它时,会收到一条消息和一个错误:

消息:

ExceptionConverter: java.io.IOException: No message found for the.document.has.no.pages
at com.lowagie.text.pdf.PdfPages.writePageTree(Unknown Source)
at com.lowagie.text.pdf.PdfWriter.close(Unknown Source)
at com.lowagie.text.pdf.PdfDocument.close(Unknown Source)
at com.lowagie.text.Document.close(Unknown Source)
at iTextTester.tester.main(tester.java:26)
    package iTextTester;

import com.lowagie.text.Anchor;
import com.lowagie.text.Chapter;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Section;
import com.lowagie.text.pdf.PdfWriter;

import java.io.FileOutputStream;

public class tester {

    private static Font catFont = new Font(Font.TIMES_ROMAN, 18, Font.BOLD);
    private static Font subFont = new Font(Font.TIMES_ROMAN, 12, Font.BOLD);

    public static void main(String[] args) {
        try {
            Document document = new Document();
            PdfWriter.getInstance(document, new FileOutputStream("C:/Users/me/Downloads/FirstPdf.pdf"));
            document.open();
            document.addTitle("TITLE");
            document.addAuthor("AUTHOR");
            document.close();
            addContent(document);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    private static void addContent(Document document) throws DocumentException {
        Anchor anchor = new Anchor("First Chapter", catFont);
        anchor.setName("First Chapter");
         Chapter catPart = new Chapter(new Paragraph(anchor), 1);
        Paragraph subPara = new Paragraph("Subcategory 1", subFont);
        Section subCatPart = catPart.addSection(subPara);
        subCatPart.add(new Paragraph("Hello"));
    }

}
它不是支持文件或已损坏

跟踪:

ExceptionConverter: java.io.IOException: No message found for the.document.has.no.pages
at com.lowagie.text.pdf.PdfPages.writePageTree(Unknown Source)
at com.lowagie.text.pdf.PdfWriter.close(Unknown Source)
at com.lowagie.text.pdf.PdfDocument.close(Unknown Source)
at com.lowagie.text.Document.close(Unknown Source)
at iTextTester.tester.main(tester.java:26)
    package iTextTester;

import com.lowagie.text.Anchor;
import com.lowagie.text.Chapter;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Section;
import com.lowagie.text.pdf.PdfWriter;

import java.io.FileOutputStream;

public class tester {

    private static Font catFont = new Font(Font.TIMES_ROMAN, 18, Font.BOLD);
    private static Font subFont = new Font(Font.TIMES_ROMAN, 12, Font.BOLD);

    public static void main(String[] args) {
        try {
            Document document = new Document();
            PdfWriter.getInstance(document, new FileOutputStream("C:/Users/me/Downloads/FirstPdf.pdf"));
            document.open();
            document.addTitle("TITLE");
            document.addAuthor("AUTHOR");
            document.close();
            addContent(document);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    private static void addContent(Document document) throws DocumentException {
        Anchor anchor = new Anchor("First Chapter", catFont);
        anchor.setName("First Chapter");
         Chapter catPart = new Chapter(new Paragraph(anchor), 1);
        Paragraph subPara = new Paragraph("Subcategory 1", subFont);
        Section subCatPart = catPart.addSection(subPara);
        subCatPart.add(new Paragraph("Hello"));
    }

}
代码:

ExceptionConverter: java.io.IOException: No message found for the.document.has.no.pages
at com.lowagie.text.pdf.PdfPages.writePageTree(Unknown Source)
at com.lowagie.text.pdf.PdfWriter.close(Unknown Source)
at com.lowagie.text.pdf.PdfDocument.close(Unknown Source)
at com.lowagie.text.Document.close(Unknown Source)
at iTextTester.tester.main(tester.java:26)
    package iTextTester;

import com.lowagie.text.Anchor;
import com.lowagie.text.Chapter;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Section;
import com.lowagie.text.pdf.PdfWriter;

import java.io.FileOutputStream;

public class tester {

    private static Font catFont = new Font(Font.TIMES_ROMAN, 18, Font.BOLD);
    private static Font subFont = new Font(Font.TIMES_ROMAN, 12, Font.BOLD);

    public static void main(String[] args) {
        try {
            Document document = new Document();
            PdfWriter.getInstance(document, new FileOutputStream("C:/Users/me/Downloads/FirstPdf.pdf"));
            document.open();
            document.addTitle("TITLE");
            document.addAuthor("AUTHOR");
            document.close();
            addContent(document);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    private static void addContent(Document document) throws DocumentException {
        Anchor anchor = new Anchor("First Chapter", catFont);
        anchor.setName("First Chapter");
         Chapter catPart = new Chapter(new Paragraph(anchor), 1);
        Paragraph subPara = new Paragraph("Subcategory 1", subFont);
        Section subCatPart = catPart.addSection(subPara);
        subCatPart.add(new Paragraph("Hello"));
    }

}

知道我做错了什么吗?

我在遵循一个非常糟糕的教程,并找到了一个更好的教程

此代码经过简化,效果良好:

    package iTextTester;

import java.io.FileOutputStream;
import java.io.IOException;

import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;

public class tester {

    public static final String RESULT = "C:/Users/me/Downloads/text.pdf";
public static void main(String[] args) throws DocumentException,
        IOException {
    new tester().createPdf(RESULT);
}

public void createPdf(String filename) throws DocumentException,
        IOException {
    Document document = new Document(PageSize.LETTER);
    PdfWriter.getInstance(document, new FileOutputStream(filename));
    document.open();
    document.add(new Paragraph("Hello World!"));
    document.close();
}
}