-----------------------------
/****/package test.com.report.daily;import static org.junit.jupiter.api.Assertions.*;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.nio.file.Files;import java.nio.file.Paths;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import org.apache.commons.lang3.StringUtils;import org.junit.jupiter.api.AfterEach;import org.junit.jupiter.api.BeforeAll;import org.junit.jupiter.api.Test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.itextpdf.kernel.geom.PageSize;import com.itextpdf.kernel.pdf.PdfDocument;import com.itextpdf.kernel.pdf.PdfReader;import com.itextpdf.kernel.pdf.PdfWriter;import com.itextpdf.kernel.pdf.canvas.parser.PdfTextExtractor;import com.itextpdf.layout.Document;import com.itextpdf.layout.element.Paragraph;import com.itextpdf.layout.element.Text;/*** @author Billson C**/class TestByteArrayOf_iTextPdfToFile{private static final Logger _LOG = LoggerFactory.getLogger(TestByteArrayOf_iTextPdfToFile.class);String pathRoot = "C:\\samples\\";@BeforeAllstatic void setUpBeforeClass() throws Exception {}@AfterEachvoid tearDown() throws Exception {}String pathSeperator = "/";DateFormat _DTF = new SimpleDateFormat("HHmm");@Testvoid test() throws IOException {String currentPathFolder = null;String currentPathFile = null;String currentTimingGenerated = _DTF.format(Calendar.getInstance().getTime());currentPathFolder = StringUtils.join(pathRoot, pathSeperator, currentTimingGenerated, pathSeperator// , currentPortLocationCode);Files.createDirectories(Paths.get(currentPathFolder));String dash = "-";String filename = StringUtils.join("bytearray-of-itext-pdf-to-file", ".", "pdf");String content = StringUtils.join("The filename of this file is: ", filename);currentPathFile = StringUtils.join(currentPathFolder, pathSeperator, filename);File fPdf = new File(currentPathFile);try (FileOutputStream fosPdf = new FileOutputStream(fPdf);) {byte[] aryByte = _getAryByteOfPdf(content);fosPdf.write(aryByte);// outputStream.writeTo(fosPdf);} catch (Exception e) {_LOG.error("Error while test|{}", e.getMessage(), e);}assertTrue(fPdf.exists());// TO DO: suppose to check file content equal to filenameString contentFromPdf = PdfTextExtractor.getTextFromPage(new PdfDocument(new PdfReader(fPdf)).getFirstPage());_LOG.debug("contentFromPdf|{}", contentFromPdf);assertEquals(content, contentFromPdf);}/*** @param content*/protected byte[] _getAryByteOfPdf(String content) {try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream();PdfWriter pdfWriter = new PdfWriter(outputStream);// PdfWriter pdfWriter = new PdfWriter(currentPathFile);Document document = new Document(new PdfDocument(pdfWriter// new PdfWriter("./hello-pdf.pdf")), PageSize.A4.rotate())) {document.add(new Paragraph(new Text(content)));document.close();return outputStream.toByteArray();} catch (Exception e) {e.printStackTrace();return null;}}}