Ich habe einen Algorithmus implementiert, um Text auf Seiten mit PDFBox-Bibliothek für Android zu zeichnen. Das Problem ist, wenn ich eine neue Seite hinzufüge, ist der Text wie auf dem Bild unten überlappt. Ich bin sicher, dass ich die PDPageContentStream.newLine()
Methode verwende, aber das Ergebnis ist nicht wie erwartet. Fehle ich etwas anderes? PDFBox Überlappte Text
Hier ist mein Code-Schnipsel
PDPage page1 = new PDPage();
getInstance().getAnnexe().addPage(page1);
PDPageContentStream contentStream1 = new
PDPageContentStream(getInstance().getAnnexe(), page1, true, true);
contentStream1.beginText();
contentStream1.newLineAtOffset(100F, 650F);
contentStream1.setFont(font, fontSize);
printMultipleLines(subSet, contentStream1);
contentStream1.endText();
contentStream1.close();
und das ist die Methode printMultipleLines()
private void printMultipleLines(ArrayList<String> lines, PDPageContentStream contentStream) {
try {
for (String line :
lines) {
if (line.length() > 110) {
// Print line as 2 lines
contentStream.showText(line.substring(0, 90));
contentStream.newLine();
contentStream.showText(line.substring(90, line.length()));
} else
// Print line as a whole
contentStream.showText(line);
// Print Carriage Return
contentStream.newLine();
}
} catch (IOException e) {
e.printStackTrace();
}
}
Wenn Sie newLine verwenden, müssen Sie den Text leading (TL operator) einstellen. Ich weiß nicht, ob es in PDFBox für Android verfügbar ist. Alternative: rufe 'newLineAtOffset' mit einem relativen y-Wert auf, z. (0, -20). –
@TilmanHaushrer Ich benutze diese Zeile 'contentStream1.newLineAtOffset (100F, 650F);' –
Ja, aber für Folgezeilen versuchen (0, -20). Die Parameter sind ** relativ ** innerhalb eines Textblocks. –