نص الإخراج باسم GIF أو PNG للاستخدام في الكتاب الاليكتروني
-
09-09-2019 - |
سؤال
هدفي هو إنشاء كتاب إلكتروني يمكن أن أقرأه مع قارئ MobiPocket على جهاز BlackBerry الخاص بي. المشكلة هي أن النص الخاص بي يتضمن أحرف UTF-8 غير مدعومة على BlackBerry، وبالتالي عرض صناديق سوداء.
سيحتوي الكتاب الاليكتروني على قائمة كلمات باللغة الإنجليزية والبنجابية للرجوع إليها، مثل:
bait ਦਾਣਾ
baked ਭੁੰਨਿਆ
balance ਵਿਚਾਰ
يعتقد المرء أنني كنت في كتابة القائمة إلى جدول HTML مع تحويل البنجابية إلى ملف GIF أو PNG. ثم قم بتضمين ملف HTML هذا في الكتاب الإلكتروني. تحتوي جميع الكلمات الموجودة حاليا في قاعدة بيانات Access، ولكن يمكن بسهولة تصديرها إلى نموذج آخر لإدخال إجراءات الجيل.
سؤال: باستخدام VB أو VBA أو C #، ما مدى صعوبة كتابة روتين إنشاء الصور ثم إخراج ملف HTML الذي يحتوي على الكلمات والصور الإنجليزية في جدول
المحلول 2
باستخدام VB.
Sub createPNG(ByVal pngString As String, ByVal pngName As String)
' Set up Font
Dim pngFont As New Font("Raavi", 14)
' Create a bitmap so we can create the Grapics object
Dim bm As Bitmap = New Bitmap(1, 1)
Dim gs As Graphics = Graphics.FromImage(bm)
' Measure string.
Dim pngSize As SizeF = gs.MeasureString(pngString, pngFont)
' Resize the bitmap so the width and height of the text
bm = New Bitmap(Convert.ToInt32(pngSize.Width), Convert.ToInt32(pngSize.Height))
' Render the bitmap
gs = Graphics.FromImage(bm)
gs.Clear(Color.White)
gs.TextRenderingHint = TextRenderingHint.AntiAlias
gs.DrawString(pngString, pngFont, Brushes.Firebrick, 0, 0)
gs.Flush()
'Saving this as a PNG file
Dim myFileOut As FileStream = New FileStream(pngName + ".png", FileMode.Create)
bm.Save(myFileOut, ImageFormat.Png)
myFileOut.Close()
End Sub
نصائح أخرى
هناك مكتبات سهلة في بيثون لمعالجة هذا النوع من المشاكل. ومع ذلك، لست متأكدا مما إذا كان هناك حل تافه VB / C #.
مع بيثون كنت تستخدم مكتبة PIS والرمز مماثلة لهذا (الذي وجدت هنا):
# creates a 50x50 pixel black box with hello world written in white, 8 point Arial text
import Image, ImageDraw, ImageFont
i = Image.new("RGB", (50,50))
d = ImageDraw.Draw(i)
f = ImageFont.truetype("Arial.ttf", 8)
d.text((0,0), "hello world", font=f)
i.save(open("helloworld.png", "wb"), "PNG")
إذا كنت معتادا بالفعل على لغات أخرى يجب أن تكون بيثون سهلة للغاية، وعلى عكس VB / C # ستعمل على أي منصة فقط. يمكن أن تساعدك Python أيضا على توليد HTML للذهاب إلى جانب الصور التي تم إنشاؤها. هناك بعض الأمثلة على هذا هنا.