-3
我正在使用itext庫合併多個pdf,我能夠合併多個pdf,但如果pdf 包含掃描頁面那麼我不想將其添加到合併的PDF中,是否可以使用itext檢查掃描頁面?如何檢查PDF文件包含掃描頁面或不使用java中的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();
什麼是用於識別PDF文檔池掃描的頁面的標準? – mkl
我有多個PDF包含一些掃描頁面,我不想在合併的PDF。 –
*一些包含掃描頁面* - 它們如何完全不同?技術上?一種方法是尋找具有大圖形的頁面......但是頁面填充圖形也可能存在於其他文檔中。或者查找沒有或只有最少文本的頁面......但是如果這些掃描頁面是OCR的,它們確實包含文本。因此,請描述這些掃描頁面與未掃描頁面在技術上的區別。 – mkl