|
| 1 | +package test.org.fugerit.java.doc.mod.openpdf.ext; |
| 2 | + |
| 3 | +import lombok.extern.slf4j.Slf4j; |
| 4 | +import org.apache.pdfbox.pdmodel.PDDocument; |
| 5 | +import org.apache.pdfbox.pdmodel.PDDocumentInformation; |
| 6 | +import org.fugerit.java.core.lang.helpers.ClassHelper; |
| 7 | +import org.fugerit.java.doc.base.config.DocInput; |
| 8 | +import org.fugerit.java.doc.base.config.DocOutput; |
| 9 | +import org.fugerit.java.doc.base.config.DocTypeHandler; |
| 10 | +import org.fugerit.java.doc.mod.openpdf.ext.PdfTypeHandler; |
| 11 | +import org.junit.jupiter.api.Assertions; |
| 12 | +import org.junit.jupiter.api.Test; |
| 13 | + |
| 14 | +import java.io.File; |
| 15 | +import java.io.FileOutputStream; |
| 16 | +import java.io.InputStreamReader; |
| 17 | + |
| 18 | +@Slf4j |
| 19 | +class TestMetadataOpenPDF { |
| 20 | + |
| 21 | + private static final String TEST_TITLE = "Module OpenPDF Metadata Test"; |
| 22 | + private static final String TEST_SUBJECT = "Simple document to test PDF metadata"; |
| 23 | + private static final String TEST_AUTHOR = "fugerit79"; |
| 24 | + private static final String TEST_CREATOR = "My Creator"; |
| 25 | + private static final String TEST_PRODUCER = "My Producer"; |
| 26 | + |
| 27 | + @Test |
| 28 | + void testProducer() throws Exception { |
| 29 | + DocTypeHandler handler = PdfTypeHandler.HANDLER; |
| 30 | + String fileName = "doc_producer"; |
| 31 | + File outputFile = new File( String.format( "target/%s.%s", fileName, handler.getType() ) ); |
| 32 | + try ( InputStreamReader reader = new InputStreamReader( ClassHelper.loadFromDefaultClassLoader( String.format( "xml/%s.xml", fileName ) ) ); |
| 33 | + FileOutputStream fos = new FileOutputStream( outputFile ) ) { |
| 34 | + handler.handle( DocInput.newInput( handler.getType(), reader ) , DocOutput.newOutput( fos ) ); |
| 35 | + log.info( "file {}", outputFile.getCanonicalFile() ); |
| 36 | + } |
| 37 | + try (PDDocument document = PDDocument.load(outputFile)) { |
| 38 | + PDDocumentInformation info = document.getDocumentInformation(); |
| 39 | + String producer = info.getProducer(); |
| 40 | + String creator = info.getCreator(); |
| 41 | + log.info( "producer : {}, creator : {}", producer, creator ); |
| 42 | + Assertions.assertEquals( TEST_PRODUCER, producer ); |
| 43 | + Assertions.assertEquals( TEST_CREATOR, creator ); |
| 44 | + String title = info.getTitle(); |
| 45 | + String subject = info.getSubject(); |
| 46 | + log.info( "title : {}, subject : {}", title, subject ); |
| 47 | + Assertions.assertEquals( TEST_TITLE, title ); |
| 48 | + Assertions.assertEquals( TEST_SUBJECT, subject ); |
| 49 | + String author = info.getAuthor(); |
| 50 | + String language = document.getDocumentCatalog().getLanguage(); |
| 51 | + log.info( "author : {}, language : {}", author, language ); |
| 52 | + Assertions.assertEquals( TEST_AUTHOR, author ); |
| 53 | + } |
| 54 | + } |
| 55 | + |
| 56 | +} |
0 commit comments