最后一行从右到左对齐的文本应该右对齐,但不是
Last line of justified right-to-left text should be aligned to right, but is not
当设置TextAlignment.JUSTIFIED时最后一行没有对齐,这是正确的。但是,对于使用从右到左的语言(如希伯来语)的文本,最后一行向左对齐,而不是向右对齐。
正如您在代码中看到的那样,我尝试在 Document 对象上设置各种属性,none 其中的一些属性对问题有任何影响。
String path = "C:\Users\davidz\Desktop\verylittle.pdf";
PdfWriter writer = new PdfWriter(new FileOutputStream(path));
PdfDocument pdf = new PdfDocument(writer);
pdf.addNewPage();
Document doc = new Document(pdf);
doc.setBaseDirection(BaseDirection.RIGHT_TO_LEFT);
doc.setTextAlignment(TextAlignment.RIGHT);
doc.setHorizontalAlignment(HorizontalAlignment.RIGHT);
JavaItext.loadLicenses("\\formit7\e$\formit\ConvertIT\Resources\Fonts");
GetFonts fontbank = new GetFonts("C:\Users\davidz\Desktop\fonts");
PdfFont sanserif = fontbank.getFont("Arial", true);
String hebrew = "כל עוד בלבב פנימה נפש יהודי הומיה ולפאתי מזרח קדימה עין לציון צופיה עוד לא אבדה תקותנו";
Paragraph p = new Paragraph(hebrew);
p.setFont(sanserif);
p.setWidth(180);
p.setBorder(new SolidBorder(1));
p.setTextAlignment(TextAlignment.JUSTIFIED);
p.setFixedLeading(12f);
p.setHeight(50f);
doc.add(p);
doc.close();
pdf.close();
此错误已在当前的 iText 7.1.5-SNAPSHOT
开发版本中修复,并将在下一个版本中提供修复。结果如下所示:
同时,您现在可以使用修复后的开发版本。可以使用以下 Maven 配置从 iText Artifactory 访问它:
<repositories>
<repository>
<id>itext-snapshot</id>
<name>iText Repository - snapshots</name>
<url>https://repo.itextsupport.com/snapshot</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>layout</artifactId>
<version>7.1.5-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>typography</artifactId>
<version>2.0.3-SNAPSHOT</version>
</dependency>
</dependencies>
当设置TextAlignment.JUSTIFIED时最后一行没有对齐,这是正确的。但是,对于使用从右到左的语言(如希伯来语)的文本,最后一行向左对齐,而不是向右对齐。
正如您在代码中看到的那样,我尝试在 Document 对象上设置各种属性,none 其中的一些属性对问题有任何影响。
String path = "C:\Users\davidz\Desktop\verylittle.pdf";
PdfWriter writer = new PdfWriter(new FileOutputStream(path));
PdfDocument pdf = new PdfDocument(writer);
pdf.addNewPage();
Document doc = new Document(pdf);
doc.setBaseDirection(BaseDirection.RIGHT_TO_LEFT);
doc.setTextAlignment(TextAlignment.RIGHT);
doc.setHorizontalAlignment(HorizontalAlignment.RIGHT);
JavaItext.loadLicenses("\\formit7\e$\formit\ConvertIT\Resources\Fonts");
GetFonts fontbank = new GetFonts("C:\Users\davidz\Desktop\fonts");
PdfFont sanserif = fontbank.getFont("Arial", true);
String hebrew = "כל עוד בלבב פנימה נפש יהודי הומיה ולפאתי מזרח קדימה עין לציון צופיה עוד לא אבדה תקותנו";
Paragraph p = new Paragraph(hebrew);
p.setFont(sanserif);
p.setWidth(180);
p.setBorder(new SolidBorder(1));
p.setTextAlignment(TextAlignment.JUSTIFIED);
p.setFixedLeading(12f);
p.setHeight(50f);
doc.add(p);
doc.close();
pdf.close();
此错误已在当前的 iText 7.1.5-SNAPSHOT
开发版本中修复,并将在下一个版本中提供修复。结果如下所示:
同时,您现在可以使用修复后的开发版本。可以使用以下 Maven 配置从 iText Artifactory 访问它:
<repositories>
<repository>
<id>itext-snapshot</id>
<name>iText Repository - snapshots</name>
<url>https://repo.itextsupport.com/snapshot</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>layout</artifactId>
<version>7.1.5-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>typography</artifactId>
<version>2.0.3-SNAPSHOT</version>
</dependency>
</dependencies>