Вывод текста в формате GIF или PNG для использования в электронной книге
-
09-09-2019 - |
Вопрос
Моя цель - создать электронную книгу, которую я мог бы читать с помощью программы Mobipocket reader на моем 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
Другие советы
В Python существуют простые библиотеки для решения такого рода проблем.Однако я не уверен, существует ли тривиальное решение на VB / C #.
С python вы бы использовали Библиотека PIL и код, похожий на этот (который я нашел здесь):
# 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")
Если вы уже знакомы с другими языками, Python должен быть довольно простым в освоении, и в отличие от VB / C # будет работать практически на любой платформе.Python также может помочь вам сгенерировать HTML-код, который будет сопровождать сгенерированные изображения.Вот несколько примеров этого здесь.