-1

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();
4

1 に答える 1

-1

PDFファイルがiTextによって生成されたかどうかを知りたい場合は、次のコードを試す必要があります。

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;
        }
    }
于 2014-02-23T17:07:24.663 に答える