You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

118 lines
3.4 KiB

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## name-viewer.ipynb\n",
"\n",
"### Usage\n",
"\n",
"1. Install `jupyter`, `plotly`, `fonttools` dependencies with pip\n",
"2. Modify the `FONT_PATH` setting in the Python source block below by clicking next to it and typing a new path in your web browser window\n",
"3. Execute the block of Python source by selecting the code block below and clicking the \"Run\" button above\n",
"4. Repeat from step 2 with modified font paths to view tables in other fonts\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import plotly as py\n",
"import plotly.graph_objs as go\n",
"\n",
"from fontTools.ttLib import TTFont\n",
"\n",
"py.offline.init_notebook_mode(connected=True)\n",
"\n",
"# EDIT HERE ------------------------------------------------------\n",
"#\n",
"# Path to font file\n",
"FONT_PATH = \"path/to/font.ttf\"\n",
"#\n",
"# Table height\n",
"# - adjust for the length of output from the font file\n",
"HEIGHT = 700\n",
"#\n",
"# END EDIT -------------------------------------------------------\n",
"\n",
"record_list = []\n",
"nameID_list = []\n",
"ppelangID_list = []\n",
"value_list = []\n",
"\n",
"tt = TTFont(FONT_PATH)\n",
"namerecord_list = tt[\"name\"].names\n",
"\n",
"for record in namerecord_list:\n",
" nameID_list.append(record.nameID)\n",
" ppelangID_list.append(\"{} {} {}\".format(record.platformID, \n",
" record.platEncID, \n",
" record.langID))\n",
" value_list.append(\"{}\".format(record.string.decode('utf-8').strip()))\n",
" \n",
"\n",
"record_list.append(nameID_list)\n",
"record_list.append(ppelangID_list)\n",
"record_list.append(value_list)\n",
"\n",
"\n",
"trace0 = go.Table(\n",
" columnorder = [1,2,3],\n",
" columnwidth = [80,80,400],\n",
" header = dict(\n",
" values = [['<b>nameID</b>'],\n",
" ['<b>p-pE-lang</b>'],\n",
" ['<b>Value</b>']\n",
" ],\n",
" line = dict(color = '#506784'),\n",
" fill = dict(color = '#FFDE00'),\n",
" align = ['center','center', 'center'],\n",
" font = dict(color = 'black', size = 16),\n",
" ),\n",
" cells = dict(\n",
" values = record_list,\n",
" line = dict(color = '#506784'),\n",
" fill = dict(color = ['#000000', 'white']),\n",
" align = ['center', 'center', 'left'],\n",
" font = dict(color = ['#F8F8F5', '#000000', '#000000'], size = 14),\n",
" height = 30,\n",
" ))\n",
"\n",
"data1 = [trace0]\n",
"\n",
"layout1 = go.Layout(\n",
" autosize=True,\n",
" height=HEIGHT,\n",
")\n",
"\n",
"fig1 = dict(data=data1, layout=layout1)\n",
"py.offline.iplot(fig1)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}