1

我正在使用 pdfbox 版本 2-RC3

能够使用unicode。问题是我在pdf上得到的文本是从左到右的。我需要从右到左写希伯来语。我该怎么做?

package pdfProj.test;

import java.io.File;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.font.PDType0Font;

public class utftext {

    public static void main(String[] args) throws Exception {
        PDDocument document = new PDDocument();
        PDPage page = new PDPage(PDRectangle.A4);
        document.addPage(page);
        File tnrFontFile = new File("c://temp//font//times.ttf");
        PDType0Font font = PDType0Font.load(document, tnrFontFile);
        PDPageContentStream stream = new PDPageContentStream(document, page);
        String text = "Hello how r u?  שלום מה שלןמך";
        stream.beginText();
        stream.setFont(font, 12);
        stream.moveTextPositionByAmount(50, 600);
        stream.drawString(text);
        stream.endText();
        stream.close();
        document.save("c://temp//pdf//type0_1.pdf");
        document.close();
    }
}

输出是:

在此处输入图像描述

结束了这个:

    public static String getStrAccordingToLocal(String str)
{
    StringBuilder value = new StringBuilder(str);
    
    if (CommonUtil.notEmpty(str) && PdfUtil.isEnglishAsccii(str.charAt(0)))
    {
        return str;
    }
    value.reverse();
    
    return value.toString();
}
4

0 回答 0