使用 java 旋转 pdfbox 中的文本
Rotate text in pdfbox with java
我想用 pdfbox 旋转文本,如图所示在一行上方
由于你没有提供你的画线代码,我在这里自己画了一条线。您可能需要根据自己的情况进行调整。
要在线条上方旋转文本,您必须更改文本矩阵或当前变换矩阵以旋转以下内容,例如像这样:
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("TextOnLine.pdf");
doc.close();
(RotatedTextOnLine 测试 testRotatedTextOnLineForCedrickKapema
)
我选择使用当前变换矩阵,因为它允许我将水平线与文本一起旋转。
结果:
我想用 pdfbox 旋转文本,如图所示在一行上方
由于你没有提供你的画线代码,我在这里自己画了一条线。您可能需要根据自己的情况进行调整。
要在线条上方旋转文本,您必须更改文本矩阵或当前变换矩阵以旋转以下内容,例如像这样:
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("TextOnLine.pdf");
doc.close();
(RotatedTextOnLine 测试 testRotatedTextOnLineForCedrickKapema
)
我选择使用当前变换矩阵,因为它允许我将水平线与文本一起旋转。
结果: