我需要使用pdfbox(Java)绘制正确对齐的文本。

我目前正在使用contentstream.drawstring绘制文本到PDF。我不使用Monospace字体,所以字符的宽度变化。

任何想法?

有帮助吗?

解决方案

易解决方案!

text_width = (myFont.getStringWidth(myString) / 1000.0f) * fontSize;
contentStream.moveTextPositionByAmount(-text_width, 0);
contentStream.drawString(myString);
contentStream.moveTextPositionByAmount(text_width, 0);
.

其中myfont=您使用的字体,Fontsize是字体的大小,myString是您要绘制的文本行。

其他提示

我从@ mirror31中的答案

    float pagewidth = page.getMediaBox().getWidth();
    float text_width = (font.getStringWidth(text) / 1000.0f) * size;
    float x = pagewidth - ((paddingRight * 2) + text_width);

    contentStream.newLineAtOffset(x, 0);
    contentStream.setFont(font, size);
    contentStream.showText(text);
    contentStream.newLineAtOffset(-x, 0);
.

我希望这可以帮助某人

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top