Newer
Older
3D_Braille / tamesi.rb
@natto natto on 16 Dec 2018 7 KB all push
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
Encoding.default_internal = "UTF-8"
Encoding.default_external = "UTF-8"

require 'cgi'
require './kana_Braille.rb'
require './wakachi.rb'
require './unicode_Braille.rb'
require './fcmake.rb'
#require './mkstl.rb'

cgi = CGI.new(:tag_maker =>"html5", :accept_charset => "UTF-8")
p_size=cgi["paper"]
tenji1= cgi["Jname"]  #名前入力                   
tenji2= cgi["Ename"] #名字入力
tenji3= cgi["Jen"]#値札
tenji4= cgi["Een"]
side_D=cgi["Dh_value"].to_f
side_C=cgi["Cv_value"].to_f
vert_D=cgi["Dv_value"].to_f
vert_C=cgi["Ch_value"].to_f
ph=cgi["Ph_value"].to_f
bh=cgi["Bh_value"].to_f


# p_size="55 91"
# tenji1 = 'りんご'
# tenji2 = 'Apple'
# tenji3 = '200 エン'
# tenji4='200 外yen'

# side_D=2.13
# side_C=5.85
# vert_D=2.37
# vert_C=13.91
# ph=1.5
# bh=1.5
#デバック用

calc=Calc_size(p_size,side_C,vert_C)
#板のサイズと点字を入れる幅を決める

f="dakuon.csv"
f2="youon.csv"
f3="al_num.csv"
braille = "kiyone.csv"
ch = tenji(braille)

f_ary = [f, f2, f3]
j_ary = Array.new
for file in f_ary
  j_ary[f_ary.rindex(file)] = seiku(file)
end

jisho= j_ary[0]
jisho2=j_ary[1] 
jisho3=j_ary[2]


seion=jisho.keys[0..50] #片仮名
#seion2=jisho.keys[74..121] #平仮名
eisu=jisho3.keys[0..75] #アルファベットと数字
oomoji=jisho3.keys[4..29] #アルファベット大文字
komoji=jisho3.keys[30..54] #小文字
suji=jisho3.keys[55..75] #数字
tunagu=jisho3.keys[76..79] #数符、継符、万、億

f_ten=String.new
l_ten=String.new
suten=String.new
nadd=String.new
f_ten=mena(f_ten,tenji1,jisho2,jisho,seion,eisu,jisho3,oomoji,komoji) 
l_ten=mena(l_ten,tenji2,jisho2,jisho,seion,eisu,jisho3,oomoji,komoji) 
#tenei=eika(en,tenei)
#tenei=eika(tenji1,tenei)
suten=sutem(tenji3,suten,jisho3.keys[76])
nadd=sutem(tenji4,nadd,jisho3.keys[76])


ary1=f_ten.split("")

ary2=l_ten.split("")

ary3=suten.split("")  

ary4=nadd.split("")

t_ften=String.new
t_lten=String.new
t_suten=String.new
t_nadd=String.new

t_ften= tenjika(t_ften,ary1,ch)

t_lten= tenjika(t_lten,ary2,ch)

t_suten= tenjika(t_suten,ary3,ch)

t_nadd= tenjika(t_nadd,ary4,ch)

mj=f_ten.length
rm=l_ten.length
sj=suten.length
sa=nadd.length

tmj=f_ten.length
trm=l_ten.length
tsj=suten.length
tsa=nadd.length

a=[tmj,trm,tsj,tsa]
a=a.sort.reverse


#########fcmacro作成開始##############

ita=String.new
ita=make_ita(ita,bh,calc[0],calc[1])
first=String.new
last=String.new
num=String.new
num2=String.new
saigo=String.new
ten_count=0
iti_count=0
x_line=calc[1]-(calc[1]-vert_C/2)
x_line=x_line.to_f
y_fline=calc[0]-vert_D*2 #和名の列のy軸
y_fline=y_fline.to_f
cv_size=side_C-side_D
first=make_entyu(f_ten,ch,first,x_line,y_fline,ten_count,iti_count,side_D,cv_size,vert_D)
ten_count=first[1]
iti_count=first[2]
y_sline=y_fline-vert_C
#p vert_c
#y_sline=33.09 #ローマ字の列のy軸
y_sline=y_sline.to_f
last=make_entyu(l_ten,ch,last,x_line,y_sline,ten_count,iti_count,side_D,cv_size,vert_D)
ten_count=last[1]
iti_count=last[2]
y_tline=y_sline-vert_C
#y_tline=19.18 #電話番号の列のy軸
y_tline=y_tline.to_f
num=make_entyu(suten,ch,num,x_line,y_tline,ten_count,iti_count,side_D,cv_size,vert_D)
ten_count=num[1]
iti_count=num[2]
y_nline=y_tline-vert_C
y_nline=y_nline.to_f
num2=make_entyu(nadd,ch,num2,x_line,y_nline,ten_count,iti_count,side_D,cv_size,vert_D)
saigo=end_meisi(saigo,ph)
#make_fcmacro(ita,first[0],last[0],num[0],saigo)
make_fcmacro2(ita,first[0],last[0],num[0],num2[0],saigo)
#make_py(ita,first[0],last[0],num[0],saigo)


########fcmacro作成終了

print("Content-type: text/html; charset=UTF-8\n\n")

print("<html>\n")
print("<head>\n")
print("<title>点字にする</title>\n")
print("<link rel=\"stylesheet\" type=\"text/css\" href=\"tenji.css\" media=\"screen\">\n") 

print("</head>\n")
print("<body>\n")
print("<form method=\"POST\" action=\"./tenji.html\">")
if calc[2]<tmj || calc[2]<trm || calc[2]<tsj
  print("<p>すみません。#{calc[2]}文字以上は対応できません。<\p>\n")
  print("<button type=\"submit\">点字作成ページに戻る</button>\n")
  print("</form>")
  print("</body>\n")
print("</html>\n")
elsif f_ten.include?("ヨメナイ")== true 
  #print("<p>すみません。表示できません。<\p>\n")
  print("<p>辞書に含まれていない文字があるため表示できませんでした。<\p>")
  print("<button type=\"submit\">点字作成ページに戻る</button>\n")
  print("<a href=\"./make_newdic.html\">辞書に単語を追加</a>")
  print("</form>")
  print("</body>\n")
  print("</html>\n")
elsif side_C<=side_D || vert_C<=vert_D
  print("<p>点字の行間または文字間が不適切なため表示できませんでした。<\p>")
  print("<button type=\"submit\">点字作成ページに戻る</button>\n")
  print("<a href=\"./make_newdic.html\">辞書に単語を追加</a>")
  print("</form>")
  print("</body>\n")
  print("</html>\n")
else 
  print("<p>#{calc[0]}mm*#{calc[1]}mm 1行:#{calc[2]}characters #{calc[3]}列</p>\n")
  print("<div id='left'><table>\n") 
  print("<caption>墨字での表記</caption>")
  print("<tr>\n")
  sss=0
  for moji1 in ary1
    #print("<td>a</td>")
    if sss==0
      print("<td class=a1 id=iro1>#{moji1}</td>")
      sss+=1
    else
      print("<td class=a2 id=iro1>#{moji1}</td>")
    end
  end
  while mj<a[0]
    print("<td class=a2 id=iro1> </td>")
    mj+=1
  end
  print("</tr>\n")
  
  print("<tr>\n")
  for moji2 in ary2
    #print("<td>a</td>")
    if sss==1
      print("<td class=a1 id=iro2>#{moji2}</td>")
      sss+=1
    else
      print("<td class=a2 id=iro2>#{moji2}</td>")
    end
  end
  while rm<a[0]
    print("<td class=a2 id=iro2> </td>")
    rm+=1
  end
  print("</tr>\n")
  
  print("<tr>\n")
  for moji3 in ary3
    #print("<td>a</td>")
    if sss==2
      print("<td class=a1>#{moji3}</td>")
      sss+=1
    else
      print("<td class=a2>#{moji3}</td>")
    end
  end
  while sj<a[0]
    print("<td class=a2> </td>")
    sj+=1
  end
  print("</tr>\n")

  print("<tr>\n")
  for moji4 in ary4
    #print("<td>a</td>")
    if sss==2
      print("<td class=a1>#{moji4}</td>")
      sss+=1
    else
      print("<td class=a2>#{moji4}</td>")
    end
  end
  while sa<a[0]
    print("<td class=a2> </td>")
    sj+=1
  end
  print("</tr>\n")

  print("</table></div>\n") 

  #print("<br>")
  
  print("<div id='right'><table>\n") 
   print("<caption>墨点字での表記</caption>")
  print("<tr>\n")
  for tenmo1 in t_ften.split(";")
    #print("<td>a</td>")
    if sss==3
      print("<td class=a1>#{tenmo1};</td>")
      sss+=1
    else
      print("<td class=a2>#{tenmo1};</td>")
    end
  end
  while tmj<a[0]
    print("<td class=a2> </td>")
    tmj+=1
  end
  print("</tr>\n")
  
  print("<tr>\n")
  for tenmo2 in t_lten.split(";")
    #print("<td>a</td>")
    if sss==4
      print("<td class=a1>#{tenmo2};</td>")
      sss+=1
    else
      print("<td class=a2>#{tenmo2};</td>")
    end
  end
  while trm<a[0]
    print("<td class=a2> </td>")
    trm+=1
    end
  print("</tr>\n")

  print("<tr>\n")
  for tenmo3 in t_suten.split(";")
    #print("<td>a</td>")
    if sss==5
      print("<td class=a1>#{tenmo3};</td>")
      sss+=1
    else
      print("<td class=a2>#{tenmo3};</td>")
    end
  end
  while tsj<a[0]
    print("<td class=a2> </td>")
    tsj+=1
  end
  print("</tr>\n")

  print("<tr>\n")
  for tenmo4 in t_nadd.split(";")
    #print("<td>a</td>")
    if sss==5
      print("<td class=a1>#{tenmo4};</td>")
      sss+=1
    else
      print("<td class=a2>#{tenmo4};</td>")
    end
  end
  while tsa<a[0]
    print("<td class=a2> </td>")
    tsa+=1
  end
  print("</tr>\n")
  
  
  print("</table></div>\n") 

print("<p><a href=\"./watasu.fcmacro\">点字データのダウンロードはこちらから</a></p>\n")
print("<a href=\"./make_newdic.html\"><button type=\"button\">名前の読み方があっていない場合は辞書に追加しましょう</button></a>\n")
print("</form>")
print("</body>\n")
print("</html>\n")  
end