【问题标题】:Change direction of written text for Hebrew letters iText更改希伯来字母 iText 的书面文本方向
【发布时间】:2012-08-23 18:46:00
【问题描述】:

当我在 PDF 上写希伯来字母时,它们会从左到右显示。

如何改变方向?

我正在使用Paragraph

【问题讨论】:

标签: java itext


【解决方案1】:

我已经制作了一些简单的函数来处理这个问题。它只是将文本翻转到另一侧并将其作为一个短语返回,您可以将其添加到文档中。 列的问题是您需要有关要在其上书写的位置的精确信息。我还建议使用 PdfContentByte 在更精确的位置进行书写。

public Phrase makingPhrases(string toPhrase, bool toReverse,int SF)
{

    BaseFont unicode = BaseFont.CreateFont(Server.MapPath("font/mriam.ttf"), BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
    Font bold = new Font(unicode, SF);
    if (toReverse)
        return new Phrase(revertText(toPhrase), bold);
    else
        return new Phrase(toPhrase, bold);
}
public string revertText(string revertTo)
{
    string toret = "";
    for (int i = 0; i < revertTo.Length; i++)
    {
        toret += revertTo[revertTo.Length - i - 1];
    }
    return toret.ToString();
}

【讨论】:

    【解决方案2】:

    看看这个example

    Document document = new Document(PageSize.A4);
    String filename = ""; // Set the relative path and name for the output file
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
    document.open();
    // Fix the path to the font if needed
    BaseFont bf = BaseFont.createFont("c:/windows/fonts/arial.ttf", BaseFont.IDENTITY_H, true);
    Font font = new Font(bf, 14);
    ColumnText column = new ColumnText(writer.getDirectContent());
    column.setSimpleColumn(36, 770, 569, 36);
    column.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
    String text = "הטקסט שלך בעברית"; // Your text in hebrew
    column.addElement(new Paragraph(text, font));
    column.go();
    document.close();
    

    【讨论】:

    • 我的代码有一些错误,这个有效的 column.RunDirection=PdfWriter.RUN_DIRECTION_RTL;字符串文本 = "הטקסט שלך בעברית"; // 你在希伯来文 column.AddElement(new Paragraph(text, Gisha)); column.Go();
    猜你喜欢
    • 1970-01-01
    • 2022-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多