我有一堆 UTF-8 格式的阿拉伯文本。我尝试显示此设备的设备不支持显示阿拉伯语文本。因此,我需要将文本转换为图像。

我想将每行文本保存为具有特定宽度的图像。我还需要使用特定的字体。做这个的最好方式是什么?有人知道这里有一个有用的工具吗?

到目前为止我遇到的问题:

PHP+GD:阿拉伯字母是分开出现的,而不是像应有的那样以草书形式出现。VB.net:我可以将每行文本转储到 Richtextbox 中...但我不知道如何导出该控件的图像。闪光:不支持从右到左的文本。

有帮助吗?

解决方案

至于 阿拉伯, ,你需要一个库来 反转字符/字形 为了 PHP/GD. 。参见例如 http://sourceforge.net/projects/ar-php/http://www.ar-php.org/.

确保 你的 PHP文件 编码是在 统一码/UTF.
例如> 打开记事本 > 另存为 > 编码为 UTF-8:

PHP 中阿拉伯语排版的示例用法 图像ttf文本:

<?php 
    // The text to draw
    require('./I18N/Arabic.php'); 
    $Arabic = new I18N_Arabic('Glyphs'); 
    $font = './DroidNaskh-Bold.ttf';
    $text = $Arabic->utf8Glyphs('لغةٌ عربيّة');

    // Create the image
    $im = imagecreatetruecolor(600, 300);

    // Create some colors
    $white = imagecolorallocate($im, 255, 255, 255);
    $grey = imagecolorallocate($im, 128, 128, 128);
    $black = imagecolorallocate($im, 0, 0, 0);
    imagefilledrectangle($im, 0, 0, 599, 299, $white);

    // Add the text
    imagettftext($im, 50, 0, 90, 90, $black, $font, $text);

    // Using imagepng() results in clearer text compared with imagejpeg()
    imagepng($im, "./output_arabic_image.png");
    echo 'open: ./output_arabic_image.png';
    imagedestroy($im); 
?>

输出:

enter image description here

其他提示

我已经听说了 攀高 处理阿拉伯语的布局非常好。没有使用过它。

更新:

实用 pango-view 可以使案文 任何 语言和输出它作为一个图像

$ pango-view input_file.txt --no-display --output=image.png

或者你可以提供该文本作为一个选项,以及:

$ pango-view --no-display --output=image.png --text="your sentence"

你也可以指定一个宽度:

--width=50 -wrap=word

<< 端的更新

另外,还有一些程序,使用unicode字,代表阿拉伯语的上下文的信函的形式和处理文本,并使其正确呈现在的系统不能呈现阿拉伯语文本正确。

这里是那个我知道:

他们是所有的开放源,所以即使你没有使用任何这些语言,你可以研究码和创建一个解决方案在编程语言的选择。

有许多方式;使用的窗口。形式,例如,我想你:

  • 创建一个空图像的实例;我认为,在这一点上,你定义的图像的尺寸
  • 创建一个图形的实例从图像,使用的图形。FromImage方法
  • 调用的方法的控制(是)它告诉它画本身:和给这一方法,通过图形相关的实例有你的图像,以便它描绘自身上的图像。

我不知道,如果你还在等待一个答案,但有你的问题非常干净整洁的解决方案。您可以根据自己的CSS类更改任何文本,包括RTL,图像。不过,让我先告诉你,PHP和GD什么都,没有为RTL文本没有任何好处。你应该尝试基于宽度asp.net文本替换。

在我走相同的路径和挣扎天。这里是你应该做的。

首先去以下地址看看教程和下载文件。 http://weblogs.asp.net /yaneshtyagi/archive/2008/11/07/text-to-image-convertor.aspx

其次,你需要一个asp.net服务器。你可以安装它,或者你可以使用这些虚拟服务器之一,如单asp.net服务器,或者您可以使用Visual Web Developer中。

你将得到的代码转换的文本到单个行中的图像,虽然可以指定宽度。在文本的这种情况下,长线萎缩,变得难以辨认。你需要的是根据指定的宽度为文本换行。

在这里,在此链路解释如何改变代码中fontwriter.ashx实现文本换行。 http://www.codeproject.com/Questions /189513/Dynamic-Image-Replacement-Method-with-Csharp.aspx

三通过asp.net服务器上运行你的页面。一旦你有,你可以将它保存,点击右键,另存为,与Firefox的图像,Firefox的效果最好为止。

现在,所有的文本被转换成的图像和原始文本将被添加到图像的 ALT 标记。希望能帮助到你。

我计划不久后对这个问题的教程。检查www.codeproject.com以后。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top