无法使用自定义字体与PHP的Imagick /另一种阿拉伯语连字解决方案

时间:2018-05-08 13:46:08

标签: php imagemagick imagick pangocairo

我们有一个图像处理微服务,可以在其上创建带有文本的丰富图像,我们正在向我们的网站添加阿拉伯语区域设置 在将一些内容翻译成阿拉伯语时,我们的翻译告诉我们生成的图像中的文本在阿拉伯语中无法正确呈现 - 它们看起来没有连字,所以每个字符都是分开的。

我们目前使用带有PHP的ImageMagick(6.8.9-9)和使用ImagickDraw-> annotateImage的文本生成工作正常,直到我们遇到连字问题。

我google了一下,发现“pango”解决了这个问题,并且还允许某种“html”语法为一个文本行定义多个设置,这非常酷。 问题是我没有找到使用自定义字体文件的方法

这是代码:

$img = new \Imagick;
$img->newImage($width, $height, new ImagickPixel('transparent'));
$img->setBackgroundColor(new ImagickPixel('transparent'));
$img->setFont($fontFile); // didn't work
$img->setPointSize($fontSize);
$img->setOption("font", $fontFile); // didn't work
$img->newPseudoImage($width, $height, "pango:<span font='".$fontName."' foreground='".$textColor."'>".$text."</span>"); // font='".$fontName."' - also didn't work

我还尝试在ubuntu操作系统中安装该字体并仅使用字体名称,但也没有用,以及组合上面的所有选项或其中一些选项。

我发现了这个问题: PHP Imagick don't use custom font > convert does。但是他说他使用了“caption”而不是pango - 它没有提供那种很酷的“html”语法,也没有解决阿拉伯语问题。

请 - 如果你知道任何解决方案,我将永远爱你!

感谢。

0 个答案:

没有答案