我想将文本对齐设置为对齐,但我不希望iText在字符之间添加任何额外的空格(参见图1)。我更喜欢单词之间的空格,如图2所示。
使用此代码,我得到的结果如图1所示。
public static void main(String[] args) throws DocumentException, IOException {
Document document = new Document();
String path = System.getProperty("user.home") + "\\Desktop";
PdfWriter.getInstance(document,new FileOutputStream(path+"\\abc.pdf"));
BaseFont bf1 = BaseFont.createFont(
BaseFont.TIMES_ROMAN, "iso-8859-9", BaseFont.EMBEDDED);
Font font1 = new Font(bf1);
document.open();
Paragraph paragraph2 = new Paragraph();
paragraph2.setAlignment(Element.ALIGN_JUSTIFIED);
paragraph2.setFont(font1);
paragraph2.setIndentationLeft(20);
paragraph2.setIndentationRight(20);
paragraph2.add("HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"+
"HelloWorld HelloWorldHelloWorldHelloWorldHelloWorld"+
"HelloWorld HelloWorld HelloWorld HelloWorldHelloWorldHelloWorld");
document.add(paragraph2);
document.close();
}
如何更改此代码以获得如图2所示的结果?
答案 0 :(得分:0)
请查看SpaceCharRatioExample,了解如何创建类似于space_char_ratio.pdf的PDF:
当您对一个段落进行调整时,iText将在单词之间和字符之间添加额外的空格。默认情况下,iText将在单词之间添加2.5倍的空格。
您可以使用put
方法更改此默认设置:
setSpaceCharRatio()
在这种情况下,我们告诉iText不要在字符之间添加任何空格,只在单词public void createPdf(String dest) throws IOException, DocumentException {
// step 1
Document document = new Document();
// step 2
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
// step 3
document.open();
// step 4
writer.setSpaceCharRatio(PdfWriter.NO_SPACE_CHAR_RATIO);
Paragraph paragraph = new Paragraph();
paragraph.setAlignment(Element.ALIGN_JUSTIFIED);
paragraph.setIndentationLeft(20);
paragraph.setIndentationRight(20);
paragraph.add("HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"+
"HelloWorld HelloWorldHelloWorldHelloWorldHelloWorld"+
"HelloWorld HelloWorld HelloWorld HelloWorldHelloWorldHelloWorld");
document.add(paragraph);
// step 5
document.close();
}
之间添加。好吧,事实上我们告诉iText在单词之间增加10,000,000倍的空格,这几乎是相同的东西。