Utilisez Apache PDFBox pour la sortie PDF. Il semble que la sortie TIFF soit prise en charge par Java 9 en standard, Java8 n'est pas pris en charge, utilisez donc JAI (API Java Advanced Imaging).
Téléchargez la bibliothèque à utiliser. Apache PDFBox Téléchargez les fichiers requis à partir d'ici Apache PDFBox ・ Pdfbox-2.0.16.jar ・ Fontbox-2.0.16.jar ・ Pdfbox-tools-2.0.16.jar (La version ci-dessus est la dernière au moment de la rédaction)
Avec Maven
pom.xml
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.16</version>
</dependency>
JAI Je ne voulais que le fichier jar, alors je l'ai téléchargé depuis java2s.com. ・ Jai_imageio-1.1.jar
Les polices japonaises peuvent également être gérées à l'aide de fontbox.
PDFSample.java
/**
La gestion des exceptions est appropriée
**/
PDDocument doc = new PDDocument();
PDPage page = new PDPage();
TrueTypeCollection ttc = new TrueTypeCollection(new File("c:/windows/fonts/msgothic.ttc"));
PDFont font = PDType0Font.load(doc, ttc.getFontByName("MS-Gothic"), true);
doc.addPage(page);
PDPageContentStream cs = new PDPageContentStream(doc, page);
cs.beginText();
cs.setFont(font, 12);
cs.newLineAtOffset(10f, 10f);
cs.showText("Hello PDFBox!");
cs.endText();
cs.close();
doc.close();
TIFFSample.java
/**
La gestion des exceptions est appropriée
**/
PDDocument doc = new PDDocument()
/**
Omis: processus de création PDF
**/
PDFRenderer pdfRenderer = new PDFRenderer(doc);
for (int p = 0; p < doc.getNumberOfPages(); ++p) {
BufferedImage bi = pdfRenderer.renderImageWithDPI(p, 300, ImageType.RGB);
ImageIOUtil.writeImage(bi, "TIF", this.outputStream, 300);
}
doc.close();
Recommended Posts