やりたいこと
PDFBoxを使って、テンプレートとしてpdfを読み込み、文字列を追加した状態で別名のファイルとして出力したい。
試したこと
package com.example.demo; import java.io.File; import java.io.IOException; import org.apache.fontbox.ttf.TrueTypeCollection; import org.apache.fontbox.ttf.TrueTypeFont; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.font.PDFont; import org.apache.pdfbox.pdmodel.font.PDType0Font; public class ScanPDF { public static void main(String[] args) throws IOException { File file = new File("ファイルパス\template.pdf"); PDDocument document = PDDocument.load(file); PDPage page = new PDPage(); TrueTypeCollection ttc = new TrueTypeCollection(new File("C:/Windows/Fonts/msgothic.ttc")); document.save("C:\Users\Suzuki2004K\Desktop\新しいフォルダー\result.pdf"); File file_2 = new File("C:\Users\Suzuki2004K\Desktop\新しいフォルダー\result.pdf"); PDDocument document_2 = PDDocument.load(file_2); TrueTypeFont ttf = ttc.getFontByName("MS-Gothic"); PDFont font = PDType0Font.load(document_2, ttf, true); StringBuilder serialNumberText = new StringBuilder(); PDPageContentStream cos= new PDPageContentStream( document_2, page, PDPageContentStream.AppendMode.APPEND, true, true); cos.beginText(); cos.setFont(font, 12); serialNumberText.append(document_2.getNumberOfPages()); serialNumberText.append("あいうえおかきくけこ"); cos.showText(serialNumberText.toString()); cos.showText("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); cos.endText(); cos.close(); document_2.save("ファイルパス\result.pdf"); } }
回答1件
あなたの回答
tips
プレビュー