Pergunta

Meu objetivo é criar um eBook que eu posso ler com o leitor Mobipocket no meu Blackberry. O problema é que o meu texto inclui caracteres UTF-8 que não são suportados no Blackberry, e, portanto, mostrar como caixas pretas.

O eBook irá conter uma lista de palavras em inglês e Punjabi para referência, tais como:

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

Um pensamento que tive foi para escrever a lista para uma tabela HTML com o Punjabi convertido em um arquivo GIF ou PNG. Em seguida, incluir esse arquivo HTML no eBook. Todas as palavras existem atualmente em um banco de dados de acesso, mas poderia facilmente ser exportados para uma outra forma de entrada para as rotinas de geração.

PERGUNTA: Usando VB, VBA ou C #, o quão difícil seria para escrever uma rotina de criar as imagens e, em seguida, a saída de um arquivo HTML contendo as palavras e imagens Inglês em uma tabela

Foi útil?

Solução 2

Usando 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

Outras dicas

Existem bibliotecas fáceis em Python para lidar com este tipo de problema. No entanto, eu não tenho certeza se há uma solução # VB trivial / C.

Com python você usaria o PIL biblioteca e código semelhante a este (que Eu encontrei aqui ):

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

Se você já está familiarizado com outras linguagens Python deve ser muito fácil de pegar, e ao contrário do VB / C # irá funcionar em praticamente qualquer plataforma. Python também pode ajudá-lo a gerar o HTML para ir junto com as imagens geradas. Há alguns exemplos deste aqui .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top