#BAEL-5880: add main source and test for pdfbox

This commit is contained in:
h_sharifi 2022-11-01 15:18:53 +03:30
parent d8a230c995
commit cecd0d282a
2 changed files with 87 additions and 0 deletions

View File

@ -0,0 +1,36 @@
package com.baeldung.pdfinfo;
import org.apache.pdfbox.Loader;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentInformation;
import java.io.File;
import java.io.IOException;
public class PdfInfoPdfBox {
public static int getNumberOfPage(final String pdfFile) throws IOException {
File file = new File(pdfFile);
PDDocument document = Loader.loadPDF(file);
int pages = document.getNumberOfPages();
document.close();
return pages;
}
public static boolean isPasswordRequired(final String pdfFile) throws IOException {
File file = new File(pdfFile);
PDDocument document = Loader.loadPDF(file);
boolean isEncrypted = document.isEncrypted();
document.close();
return isEncrypted;
}
public static PDDocumentInformation getInfo(final String pdfFile) throws IOException {
File file = new File(pdfFile);
PDDocument document = Loader.loadPDF(file);
PDDocumentInformation info = document.getDocumentInformation();
document.close();
return info;
}
}

View File

@ -0,0 +1,51 @@
package com.baeldung.pdfinfo;
import org.apache.pdfbox.pdmodel.PDDocumentInformation;
import org.junit.Assert;
import org.junit.Test;
import java.io.IOException;
import java.util.HashMap;
public class PdfInfoPdfBoxUnitTest {
private static final String PDF_FILE = "src/test/resources/input.pdf";
@Test
public void givenPdf_whenGetNumberOfPage_thenOK() throws IOException {
// given
int expectedNumberOfPage = 4;
// when
int actualNumberOfPage = PdfInfoPdfBox.getNumberOfPage(PDF_FILE);
// then
Assert.assertEquals(expectedNumberOfPage, actualNumberOfPage);
}
@Test
public void givenPdf_whenIsPasswordRequired_thenOK() throws IOException {
// given
boolean expectedPasswordRequired = false;
// when
boolean actualPasswordRequired = PdfInfoPdfBox.isPasswordRequired(PDF_FILE);
// then
Assert.assertEquals(expectedPasswordRequired, actualPasswordRequired);
}
@Test
public void givenPdf_whenGetInfo_thenOK() throws IOException {
// given
String expectedProducer = "LibreOffice 4.2";
String expectedCreator = "Writer";
// when
PDDocumentInformation info = PdfInfoPdfBox.getInfo(PDF_FILE);
// then
Assert.assertEquals(expectedProducer, info.getProducer());
Assert.assertEquals(expectedCreator, info.getCreator());
}
}