2009-02-26 10 views
0

Mon but est de créer un livre électronique que je peux lire avec le lecteur Mobipocket sur mon Blackberry. Le problème est que mon texte inclut des caractères UTF-8 qui ne sont pas pris en charge sur le Blackberry, et s'affichent donc comme des boîtes noires.Sortie du texte en format GIF ou PNG pour utilisation dans le livre électronique

Le livre électronique contiendra une liste de mots anglais et panjabi pour référence, tels que:

bait   ਦਾਣਾ 
baked  ਭੁੰਨਿਆ 
balance  ਵਿਚਾਰ 

Une pensée que j'avais été d'écrire la liste à une table HTML avec le Punjabi converti en GIF ou PNG fichier. Ensuite, incluez ce fichier HTML dans le livre électronique. Tous les mots existent actuellement dans une base de données d'accès, mais pourraient facilement être exportés vers un autre formulaire pour être introduits dans les routines de génération.

QUESTION: En utilisant VB, VBA ou C#, comment serait difficile il d'écrire une routine créer les images et la sortie d'un fichier HTML contenant les mots anglais et des images dans une table

Répondre

2

Utilisation de 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 
4

Il existe des bibliothèques faciles en Python pour gérer ce genre de problème. Cependant, je ne suis pas sûr s'il existe une solution VB/C# triviale.

Avec python vous utiliseriez le PIL library et un code similaire à ce (que je trouvais here):

# 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") 

Si vous êtes déjà familier avec d'autres langues Python devrait être assez facile à ramasser, et contrairement à VB/C# fonctionnera sur à peu près n'importe quelle plate-forme. Python peut également vous aider à générer le code HTML pour accompagner les images générées. Il y a quelques exemples de ceci here.

+0

belle réponse complète - avec des citations –

+0

Wow qui semble assez simple, presque pourrait être utile d'installer python, juste pour essayer. – Noah

Questions connexes