如何更改单词和字符之间的间距?

时间:2015-06-16 13:38:01

标签: java itext

我想将文本对齐设置为对齐,但我不希望iText在字符之间添加任何额外的空格(参见图1)。我更喜欢单词之间的空格,如图2所示。

image

使用此代码,我得到的结果如图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所示的结果?

1 个答案:

答案 0 :(得分:0)

请查看SpaceCharRatioExample,了解如何创建类似于space_char_ratio.pdf的PDF:

enter image description here

当您对一个段落进行调整时,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倍的空格,这几乎是相同的东西。