package mkl.testarea.pdfbox2.content; import java.io.File; import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.font.PDType1Font; import org.apache.pdfbox.util.Matrix; import org.junit.BeforeClass; import org.junit.Test; /** * @author mkl */ public class RotatedTextOnLine { final static File RESULT_FOLDER = new File("target/test-outputs", "content"); @BeforeClass public static void setUpBeforeClass() throws Exception { RESULT_FOLDER.mkdirs(); } /** * <a href="https://stackoverflow.com/questions/52054396/rotate-text-in-pdfbox-with-java"> * Rotate text in pdfbox with java * </a> * <p> * This test shows how to show rotated text above a line. * </p> */ @Test public void testRotatedTextOnLineForCedrickKapema() throws IOException { PDDocument doc = new PDDocument(); PDPage page = new PDPage(); doc.addPage(page); PDPageContentStream cos = new PDPageContentStream(doc, page); cos.transform(Matrix.getRotateInstance(-Math.PI / 6, 100, 650)); cos.moveTo(0, 0); cos.lineTo(125, 0); cos.stroke(); cos.beginText(); String text = "0.72"; cos.newLineAtOffset(50, 5); cos.setFont(PDType1Font.HELVETICA_BOLD, 12); cos.showText(text); cos.endText(); cos.close(); doc.save(new File(RESULT_FOLDER, "TextOnLine.pdf")); doc.close(); } }