package pdfApplication; import java.awt.Color; import java.io.File; import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDDocumentInformation; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.font.PDFont; import org.apache.pdfbox.pdmodel.font.PDType0Font; import org.apache.pdfbox.pdmodel.font.PDType1Font; public class meshPDF { public static void main(String[] args) { System.out.println("Hello"); PDDocument document = new PDDocument(); PDPage page = new PDPage(PDRectangle.A4); document.addPage(page); PDDocumentInformation pddi= new PDDocumentInformation() ; pddi.setTitle("メッシュテンプレート"); document.setDocumentInformation(pddi); PDFont font=PDType1Font.COURIER; int fontSize=12; String FontFileName="/usr/share/fonts/truetype/fonts-japanese-gothic.ttf"; try { font= PDType0Font.load(document, new File(FontFileName)); PDPageContentStream contentStream = new PDPageContentStream(document,page); contentStream.setStrokingColor(Color.LIGHT_GRAY); contentStream.setLineWidth(1); contentStream.setLineDashPattern(new float[]{4,2}, 0); for(int j=0; j<page.getMediaBox().getHeight(); j+=20){ contentStream.moveTo(0, j); contentStream.lineTo(page.getMediaBox().getWidth(), j); } for(int i=0; i<page.getMediaBox().getWidth(); i+=20){ contentStream.moveTo(i, 0); contentStream.lineTo(i, page.getMediaBox().getHeight()); } contentStream.stroke(); contentStream.setStrokingColor(Color.BLACK); contentStream.setLineDashPattern(new float[]{16,0}, 0); for(int j=0; j<page.getMediaBox().getHeight(); j+=100){ contentStream.moveTo(0, j); contentStream.lineTo(page.getMediaBox().getWidth(), j); } for(int i=0; i<page.getMediaBox().getWidth(); i+=100){ contentStream.moveTo(i, 0); contentStream.lineTo(i, page.getMediaBox().getHeight()); } contentStream.stroke(); contentStream.setNonStrokingColor(Color.RED); contentStream.beginText(); contentStream.setFont(font, fontSize); contentStream.newLineAtOffset(0, 5); for(int j=0; j<page.getMediaBox().getHeight(); j+=100){ contentStream.showText(" "+j ); contentStream.newLineAtOffset(0, 100); } contentStream.newLineAtOffset(100, -900); for(int i=100; i<page.getMediaBox().getWidth(); i+=100){ contentStream.showText(" "+i ); contentStream.newLineAtOffset(100, 0); } contentStream.endText(); contentStream.close(); document.save("meshPDF.pdf"); document.close(); } catch (IOException e) { e.printStackTrace(); } finally{ System.out.println("meshPdf finished."); } } }