سؤال

لدي مجموعة من خطوط النص العربي في UTF-8. الجهاز الذي أحاول عرضه لا يدعم النص العربي الذي يتم عرضه. لذلك، أحتاج إلى تحويل النص إلى صور.

أرغب في توفير كل سطر من النص كصورة بعرض محدد. أحتاج إلى استخدام خط معين أيضا. ما هي أفضل طريقة للقيام بذلك؟ هل يعرف أي شخص بأداة يمكن أن تكون مفيدة هنا؟

المشاكل التي أجريها حتى الآن:

PHP + GD: الأحرف العربية تظهر منفصلة وغير مخططة كما ينبغي. vb.net: يمكنني تفريغ كل سطر من النص إلى RichTextBox ... لكنني لا أعرف كيفية تصدير صورة هذا التحكم فقط. فلاش: لا يوجد دعم للحق في اليسار النص.

هل كانت مفيدة؟

المحلول

أما بالنسبة لل عربي, ، تحتاج إلى مكتبة ل عكس الحرمين / الحرية بالنسبة PHP / GD.. وبعد انظر على سبيل المثال http://sourceforge.net/projects/ar-php/ او عند http://www.ar-php.org/.

تأكد لك ملف php الترميز في Unicode / UTF..
على سبيل المثال> فتح المفكرة> حفظ باسم> الترميز كما UTF-8:

استخدام عينة للطباعة العربية في PHP باستخدام Imagettftext.:

<?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 التي تمثل نماذج الحرف العربي السياقية ونص العملية وجعلها تقدم بشكل صحيح على الأنظمة التي لا يمكن أن تجعل النص باللغة العربية بشكل صحيح.

هنا هي تلك التي أعرفها:

انهم جميعا المصدر المفتوح، لذلك حتى لو كنت لا تستخدم أي من هذه اللغات، يمكنك دراسة التعليمات البرمجية وإنشاء حل في لغة البرمجة المفضلة لديك.

هناك عدة طرق؛ باستخدام Windows.Forms على سبيل المثال، أعتقد أنك:

  • إنشاء مثيل صورة فارغ؛ أعتقد أنه في هذه المرحلة تحدد أبعاد الصورة
  • قم بإنشاء مثيل رسومات من الصورة، باستخدام طريقة الرسومات.
  • استدعاء طريقة عنصر التحكم (Richtextbox) الذي يخبره برسم نفسه: ولهذه الطريقة، قم بتمرير مثيل الرسومات المرتبط بصورتك، بحيث يرسم نفسها على الصورة.

لست متأكدا مما إذا كنت لا تزال تنتظر إجابة ولكن هناك حلا نظيفا وأنيقا لمشكلتك. يمكنك تغيير أي نص، بما في ذلك RTL، إلى الصورة بناء على فئة CSS الخاصة بهم. لكن اسمحوا لي أن أقول لك أولا، PHP و GD ما على الإطلاق، لا يفعل أي شيء جيد لنص RTL. يجب أن تحاول استبدال نص ASP.NET بناء على العرض.

بمجرد مشيت نفس المسار واندمج منذ أيام. هنا هو ما يجب عليك القيام به.

اذهب أولا إلى العنوان التالي ورؤية البرنامج التعليمي وتنزيل الملفات.http://weblogs.asp.net/yaneshtyagi/archive/2008/11/07/Text-To-Image-Convertor.aspx.

الثانية تحتاج إلى خادم ASP.NET. يمكنك تثبيته أو يمكنك استخدام أحد هؤلاء الخادم الظاهري، مثل خادم Mono ASP.NET، أو يمكنك استخدام Visual Web Developer.

الرمز الذي ستحول النص إلى تحويل النص إلى صورة سطر واحدة، على الرغم من أنه يمكنك تحديد العرض. في هذه الحالة يتقلص خط طويل من النص ويصبح غير مقروء. ما تحتاجه هو التفاف النص بناء على العرض المحدد.

هنا في هذا الرابط الذي يفسر كيفية تغيير التعليمات البرمجية في FontWriter.ashx لتحقيق التفاف النص. http://www.codeProject.com/questions/189513/dynamic-image-replacement-method-with-csharp.aspx.

ثالث تشغيل صفحتك عبر خادم ASP.NET. بمجرد أن يكون لديك الصور التي يمكنك حفظها، انقر بزر الماوس الأيمن واحفظها، مع Firefox، Firefox يعمل بشكل أفضل حتى الآن.

الآن، سيتم تحويل جميع النص إلى صور وسيتم إضافة النص الأصلي إلى الصورة بديل بطاقة شعار. آمل أن يساعد.

أخطط لنشر برنامج تعليمي حول هذه القضية قريبا. تحقق www.codeproject.com في وقت لاحق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top