Domanda

Ho bisogno di disegnare il testo nel giusto allineamento utilizzando PDFbox (Java).

Attualmente sto usando i contentstream.Drawstring per disegnare il testo sul PDF.Non sto usando il font monospaziale, quindi la larghezza dei caratteri varia.

Qualche idea?

È stato utile?

Soluzione

Easy Solution!

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

Dove myFont= Il carattere che stai utilizzando, Fontsize è la dimensione del carattere e Mystring è la linea di testo che vuoi disegnare.

Altri suggerimenti

Ho basato la mia risposta da questo di @ 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);
.

Spero che questo possa aiutare qualcuno

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top