JAVA-29281 Create new module Text Processing Libraries Modules (#15479)
This commit is contained in:
+84
@@ -0,0 +1,84 @@
|
||||
package com.baeldung.pdf.base64;
|
||||
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
public class EncodeDecodeUnitTest {
|
||||
|
||||
private static final String IN_FILE = "src/test/resources/input.pdf";
|
||||
private static final String OUT_FILE = "src/test/resources/output.pdf";
|
||||
private static byte[] inFileBytes;
|
||||
|
||||
@BeforeClass
|
||||
public static void fileToByteArray() throws IOException {
|
||||
inFileBytes = Files.readAllBytes(Paths.get(IN_FILE));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenJavaBase64_whenEncoded_thenDecodedOK() throws IOException {
|
||||
|
||||
byte[] encoded = java.util.Base64.getEncoder().encode(inFileBytes);
|
||||
|
||||
byte[] decoded = java.util.Base64.getDecoder().decode(encoded);
|
||||
|
||||
writeToFile(OUT_FILE, decoded);
|
||||
|
||||
assertNotEquals(encoded.length, decoded.length);
|
||||
assertEquals(inFileBytes.length, decoded.length);
|
||||
|
||||
assertArrayEquals(decoded, inFileBytes);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenJavaBase64_whenEncodedStream_thenDecodedStreamOK() throws IOException {
|
||||
|
||||
try (OutputStream os = java.util.Base64.getEncoder().wrap(new FileOutputStream(OUT_FILE));
|
||||
FileInputStream fis = new FileInputStream(IN_FILE)) {
|
||||
byte[] bytes = new byte[1024];
|
||||
int read;
|
||||
while ((read = fis.read(bytes)) > -1) {
|
||||
os.write(bytes, 0, read);
|
||||
}
|
||||
}
|
||||
|
||||
byte[] encoded = java.util.Base64.getEncoder().encode(inFileBytes);
|
||||
byte[] encodedOnDisk = Files.readAllBytes(Paths.get(OUT_FILE));
|
||||
assertArrayEquals(encoded, encodedOnDisk);
|
||||
|
||||
byte[] decoded = java.util.Base64.getDecoder().decode(encoded);
|
||||
byte[] decodedOnDisk = java.util.Base64.getDecoder().decode(encodedOnDisk);
|
||||
assertArrayEquals(decoded, decodedOnDisk);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenApacheCommons_givenJavaBase64_whenEncoded_thenDecodedOK() throws IOException {
|
||||
|
||||
byte[] encoded = org.apache.commons.codec.binary.Base64.encodeBase64(inFileBytes);
|
||||
|
||||
byte[] decoded = org.apache.commons.codec.binary.Base64.decodeBase64(encoded);
|
||||
|
||||
writeToFile(OUT_FILE, decoded);
|
||||
|
||||
assertNotEquals(encoded.length, decoded.length);
|
||||
assertEquals(inFileBytes.length, decoded.length);
|
||||
|
||||
assertArrayEquals(decoded, inFileBytes);
|
||||
}
|
||||
|
||||
private void writeToFile(String fileName, byte[] bytes) throws IOException {
|
||||
FileOutputStream fos = new FileOutputStream(fileName);
|
||||
fos.write(bytes);
|
||||
fos.flush();
|
||||
fos.close();
|
||||
}
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
package com.baeldung.pdfreadertest;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.apache.pdfbox.pdmodel.PDDocument;
|
||||
import org.apache.pdfbox.text.PDFTextStripper;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import com.itextpdf.text.pdf.PdfReader;
|
||||
import com.itextpdf.text.pdf.parser.PdfTextExtractor;
|
||||
|
||||
class ReadPdfFileUnitTest {
|
||||
|
||||
@Test
|
||||
public void givenSamplePdf_whenUsingApachePdfBox_thenCompareOutput() throws IOException {
|
||||
String expectedText = "Hello World!\n";
|
||||
|
||||
File file = new File("sample.pdf");
|
||||
PDDocument document = PDDocument.load(file);
|
||||
|
||||
PDFTextStripper stripper = new PDFTextStripper();
|
||||
|
||||
String text = stripper.getText(document);
|
||||
|
||||
document.close();
|
||||
|
||||
assertEquals(expectedText, text);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenSamplePdf_whenUsingiTextPdf_thenCompareOutput() throws IOException {
|
||||
String expectedText = "Hello World!";
|
||||
|
||||
PdfReader reader = new PdfReader("sample.pdf");
|
||||
int pages = reader.getNumberOfPages();
|
||||
StringBuilder text = new StringBuilder();
|
||||
|
||||
for (int i = 1; i <= pages; i++) {
|
||||
|
||||
text.append(PdfTextExtractor.getTextFromPage(reader, i));
|
||||
|
||||
}
|
||||
reader.close();
|
||||
assertEquals(expectedText, text.toString());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
package com.baeldung.pdfthymeleaf;
|
||||
|
||||
import com.lowagie.text.DocumentException;
|
||||
import org.junit.Test;
|
||||
import org.thymeleaf.TemplateEngine;
|
||||
import org.thymeleaf.context.Context;
|
||||
import org.thymeleaf.templatemode.TemplateMode;
|
||||
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
|
||||
import org.xhtmlrenderer.pdf.ITextRenderer;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class PDFThymeleafUnitTest {
|
||||
|
||||
@Test
|
||||
public void givenThymeleafTemplate_whenParsedAndRenderedToPDF_thenItShouldNotBeEmpty() throws DocumentException, IOException {
|
||||
String html = parseThymeleafTemplate();
|
||||
|
||||
ByteArrayOutputStream outputStream = generatePdfOutputStreamFromHtml(html);
|
||||
|
||||
assertTrue(outputStream.size() > 0);
|
||||
}
|
||||
|
||||
private ByteArrayOutputStream generatePdfOutputStreamFromHtml(String html) throws IOException, DocumentException {
|
||||
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
||||
|
||||
ITextRenderer renderer = new ITextRenderer();
|
||||
renderer.setDocumentFromString(html);
|
||||
renderer.layout();
|
||||
renderer.createPDF(outputStream);
|
||||
|
||||
outputStream.close();
|
||||
return outputStream;
|
||||
}
|
||||
|
||||
private String parseThymeleafTemplate() {
|
||||
ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
|
||||
templateResolver.setSuffix(".html");
|
||||
templateResolver.setTemplateMode(TemplateMode.HTML);
|
||||
|
||||
TemplateEngine templateEngine = new TemplateEngine();
|
||||
templateEngine.setTemplateResolver(templateResolver);
|
||||
|
||||
Context context = new Context();
|
||||
context.setVariable("to", "Baeldung.com");
|
||||
|
||||
return templateEngine.process("thymeleaf_template", context);
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user