如何使用java中的itext库检查pdf文件是否包含扫描页面

时间:2014-02-21 11:49:49

标签: java itext itextpdf

我正在使用itext库来合并多个pdf,我能够合并多个pdf,但如果pdf 包含扫描页面那么我不想在合并的PDF中添加它,是否可以使用itext检查扫描页面。

我正在使用以下代码合并pdf。

Document PDFJoinInJava = new Document();
PdfCopy PDFCombiner = new PdfCopy(PDFJoinInJava, outputStream);
PdfCopy.PageStamp stamp;
PDFJoinInJava.open();
PdfReader ReadInputPDF;

List<InputStream> pdfs = streamOfPDFFiles;
List<PdfReader> readers = new ArrayList<PdfReader>();
int totalPages = 0;
Iterator<InputStream> iteratorPDFs = pdfs.iterator();
for (; iteratorPDFs.hasNext(); pdfCounter++) {
    InputStream pdf = iteratorPDFs.next();
    PdfReader pdfReader = new PdfReader(pdf);
    readers.add(pdfReader);
    totalPages += pdfReader.getNumberOfPages();
    pdf.close();
}
int number_of_pages;
int currentPageNumber = 0;
int pageOfCurrentReaderPDF = 0;
Iterator<PdfReader> iteratorPDFReader = readers.iterator();

PdfImportedPage page;
// Loop through the PDF files and add to the output.
int count = 1;

while (iteratorPDFReader.hasNext()) {
    PdfReader pdfReader = iteratorPDFReader.next();
    count++;
    number_of_pages = pdfReader.getNumberOfPages();

    // Create a new page in the target for each source page.
    for (int pageNum = 0; pageNum < number_of_pages;) {
        currentPageNumber++;
        pageOfCurrentReaderPDF++;
        page = PDFCombiner.getImportedPage(pdfReader, ++pageNum);
        ColumnText.showTextAligned(stamp.getUnderContent(),
                        Element.ALIGN_RIGHT, new Phrase(String
                                .format("%d", currentPageNumber),new Font(FontFamily.TIMES_ROMAN,3)),
                        50, 50, 0);
            stamp.alterContents();

        PDFCombiner.addPage(page);
    }
}
PDFJoinInJava.close();

1 个答案:

答案 0 :(得分:-1)

如果您想查找是否由iText生成pdf文件,那么您必须尝试以下代码:

File file = new File("/Demo.pdf");
    Scanner input = new Scanner(new FileReader(file));
    while (input.hasNextLine()) {
        final String checkline = input.nextLine();
        if(checkline.contains("Producer(iText")) { 
            // a match found!!!!!!
            System.out.println(file.getName()+" is generated by iText........ :):) ");
        break;
        }
    }