-
Notifications
You must be signed in to change notification settings - Fork 0
/
text-to-handwriting.py
87 lines (69 loc) · 2.27 KB
/
text-to-handwriting.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
from PIL import Image
from fpdf import FPDF
from PIL import Image
import os
BG = Image.open("handfont/background.png")
sizeOfSheet = BG.width
gap, _ = 0, 0
allowedChars = ',.-?!() 1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
def writee(char):
global gap, _
if char != '\n':
cases = Image.open("handfont/%s.png" % char.lower())
BG.paste(cases, (gap, _))
size = cases.width
gap += size
def letterwrite(word):
global gap, _
if gap > sizeOfSheet - 95 * (len(word)):
gap = 0
_ += 200
special_char = {'.': 'fullstop', '!': 'exclamation', '?': 'questionmark', ',': 'comma', '(': 'bracketleft',
')': 'bracketright', '-': 'minus', '+': 'plus'}
for letter in word:
if letter in allowedChars:
if letter.islower():
pass
elif letter.isupper():
letter = letter.lower()
letter += 'upper'
elif special_char[letter] is not None:
letter = special_char[letter]
writee(letter)
def worddd(Input):
wordlist = Input.split(' ')
for i in wordlist:
letterwrite(i)
writee('space')
if __name__ == '__main__':
try:
data = input()
with open('handwriting_output.pdf', 'w') as file:
pass
l = len(data)
nn = len(data) // 600
chunks, chunk_size = len(data), len(data) // (nn + 1)
p = [data[i:i + chunk_size] for i in range(0, chunks, chunk_size)]
for i in range(0, len(p)):
print(p[i])
worddd(p[i])
writee('\n')
BG.save('%doutputimage.png' % i)
BG1 = Image.open("handfont/background.png")
BG = BG1
gap = 0
_ = 0
except ValueError as E:
print("{}\nTry again".format(E))
imagelist = []
for i in range(0, len(p)):
imagelist.append('%doutputimage.png' % i)
def pdf_creation(PNG_FILE, flag=False):
imagea = Image.open(PNG_FILE)
image = Image.new('RGB', imagea.size, (255, 255, 255))
image.paste(imagea, mask=imagea.split()[3])
image.save('handwriting_output.pdf',
append=flag)
pdf_creation(imagelist.pop(0))
for PNG_FILE in imagelist:
pdf_creation(PNG_FILE, flag=True)