From 563d5061b21b76f2c9e07426b036f11f7172d835 Mon Sep 17 00:00:00 2001 From: h_sharifi Date: Tue, 1 Nov 2022 15:18:39 +0330 Subject: [PATCH] #BAEL-5880: add main source and test for iText --- .../com/baeldung/pdfinfo/PdfInfoIText.java | 31 ++++++++++++ .../pdfinfo/PdfInfoITextUnitTest.java | 50 +++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 pdf-2/src/main/java/com/baeldung/pdfinfo/PdfInfoIText.java create mode 100644 pdf-2/src/test/java/com/baeldung/pdfinfo/PdfInfoITextUnitTest.java diff --git a/pdf-2/src/main/java/com/baeldung/pdfinfo/PdfInfoIText.java b/pdf-2/src/main/java/com/baeldung/pdfinfo/PdfInfoIText.java new file mode 100644 index 0000000000..275cf17eef --- /dev/null +++ b/pdf-2/src/main/java/com/baeldung/pdfinfo/PdfInfoIText.java @@ -0,0 +1,31 @@ +package com.baeldung.pdfinfo; + + +import com.itextpdf.text.pdf.PdfReader; + +import java.io.IOException; +import java.util.HashMap; + +public class PdfInfoIText { + + public static int getNumberOfPage(final String pdfFile) throws IOException { + PdfReader reader = new PdfReader(pdfFile); + int pages = reader.getNumberOfPages(); + reader.close(); + return pages; + } + + public static boolean isPasswordRequired(final String pdfFile) throws IOException { + PdfReader reader = new PdfReader(pdfFile); + boolean isEncrypted = reader.isEncrypted(); + reader.close(); + return isEncrypted; + } + + public static HashMap getInfo(final String pdfFile) throws IOException { + PdfReader reader = new PdfReader(pdfFile); + HashMap info = reader.getInfo(); + reader.close(); + return info; + } +} diff --git a/pdf-2/src/test/java/com/baeldung/pdfinfo/PdfInfoITextUnitTest.java b/pdf-2/src/test/java/com/baeldung/pdfinfo/PdfInfoITextUnitTest.java new file mode 100644 index 0000000000..a0d04d23eb --- /dev/null +++ b/pdf-2/src/test/java/com/baeldung/pdfinfo/PdfInfoITextUnitTest.java @@ -0,0 +1,50 @@ +package com.baeldung.pdfinfo; + +import org.junit.Assert; +import org.junit.Test; + +import java.io.IOException; +import java.util.HashMap; + +public class PdfInfoITextUnitTest { + + 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 = PdfInfoIText.getNumberOfPage(PDF_FILE); + + // then + Assert.assertEquals(expectedNumberOfPage, actualNumberOfPage); + } + + @Test + public void givenPdf_whenIsPasswordRequired_thenOK() throws IOException { + // given + boolean expectedPasswordRequired = false; + + // when + boolean actualPasswordRequired = PdfInfoIText.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 + HashMap info = PdfInfoIText.getInfo(PDF_FILE); + + // then + Assert.assertEquals(expectedProducer, info.get("Producer")); + Assert.assertEquals(expectedCreator, info.get("Creator")); + } +}