Трябва да начертая текст в дясно подравняване с помощта на PDFBOX (java).
В момента използвам ContentStream.drawString за рисуване на текст в pdf. Не използвам моноширинен шрифт, така че ширината на знаците варира.
Някакви идеи?
Трябва да начертая текст в дясно подравняване с помощта на PDFBOX (java).
В момента използвам ContentStream.drawString за рисуване на текст в pdf. Не използвам моноширинен шрифт, така че ширината на знаците варира.
Някакви идеи?
Лесно решение!
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);
Надявам се това да помогне на някого