テキストが左揃えの場合、iText7はタブを正しくレンダリングすることがわかりますが、右揃えのテキストの場合、タブはテキストが左揃えであると見なし、テキストが左揃えであるかのようにレンダリングします。
これが私が欠けているものによって引き起こされた問題なのか、それともiText7の制限/バグなのか、誰かが知っていますか?
アップデート:
@Test
public void shouldTabFromTheRightWhenTextAlignIsFromTheRight() throws IOException, InterruptedException {
String outFileName = destinationFolder + "tabRightAlignedTextTest.pdf";
String cmpFileName = sourceFolder + "cmp_tabRightAlignedTextTest.pdf";
FileOutputStream file = new FileOutputStream(outFileName);
PdfWriter writer = new PdfWriter(file);
PdfDocument pdfDoc = new PdfDocument(writer);
Document doc = new Document(pdfDoc);
Paragraph p = new Paragraph();
p.setFontColor(Color.GREEN);
p.setTextAlignment(TextAlignment.RIGHT);
p.add(new Text("text out of page"));
p.add(new Tab());
p.add(new Text(" bounds after right tab stop:"));
doc.add(p);
p = new Paragraph();
p.setFontColor(Color.GREEN);
p.setTextAlignment(TextAlignment.RIGHT);
p.add(new Text("text out of"));
p.add(new Tab());
p.add(new Text(" page bounds after right tab stop:"));
doc.add(p);
p = new Paragraph();
p.setFontColor(Color.GREEN);
p.add(new Text("text out of page"));
p.add(new Tab());
p.add(new Text(" bounds after right tab stop:"));
doc.add(p);
p = new Paragraph();
p.setFontColor(Color.GREEN);
p.add(new Text("text out of"));
p.add(new Tab());
p.add(new Text(" page bounds after right tab stop:"));
doc.add(p);
doc.close();
Assert.assertNull(new CompareTool().compareByContent(outFileName, cmpFileName, destinationFolder, "diff"));
}