确定PDF文件中的页数

时间:2010-11-09 14:45:42

标签: java pdf

如何使用免费/开源Java API确定给定PDF文件中的页数?

6 个答案:

答案 0 :(得分:55)

您可以使用Apache PDFBox加载PDF文档,然后调用getNumberOfPages方法返回页数。

PDDocument doc = PDDocument.load(new File("file.pdf"));
int count = doc.getNumberOfPages();

答案 1 :(得分:10)

您应该可以使用iText执行此操作。有关如何解决问题,请参阅this threadHere是第2章,它在帖子中错误地链接:

PdfReader reader = new PdfReader("SimpleRegistrationForm.pdf");
int pages = reader.getNumberOfPages();

答案 2 :(得分:2)

Apache pdfbox应该可以解决这个问题

http://pdfbox.apache.org/download.html

答案 3 :(得分:0)

如果使用FOP生成PDF,则可以使用 http://xmlgraphics.apache.org/fop/

您可以使用fop标签计算页数。

如果它只是来自外部源的简单pdf文件,那么您应该检查iText API。

答案 4 :(得分:0)

如果要获取有关PDF的更多信息,请使用以下代码。如果document不包含任何信息,则返回null。 这是apache的pdfbox库。

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentInformation;

public class DocumentService {

    public void showDocumentInfo(){
        PDDocument document= PDDocument.load(new File("file.pdf"));
        PDDocumentInformation info = document.getDocumentInformation();
        System.out.println( "Page Count=" + document.getNumberOfPages() );
        System.out.println( "Title=" + info.getTitle() );
        System.out.println( "Author=" + info.getAuthor() );
        System.out.println( "Subject=" + info.getSubject() );
        System.out.println( "Keywords=" + info.getKeywords() );
        System.out.println( "Creator=" + info.getCreator() );
        System.out.println( "Producer=" + info.getProducer() );
        System.out.println( "Creation Date=" + info.getCreationDate() );
        System.out.println( "Modification Date=" + info.getModificationDate());
        System.out.println( "Trapped=" + info.getTrapped() ); 
    }
}

答案 5 :(得分:0)

int totalPages = 0;
using (var pdfStream = file.OpenReadStream())
{
     PdfReader reader = new PdfReader(pdfStream);
     totalPages = reader.NumberOfPages;
}