Skip to content

Instantly share code, notes, and snippets.

@Yama-Tomo
Last active April 19, 2020 02:07
Show Gist options
  • Save Yama-Tomo/aedf241e60981ecfe4f3c28af6becfa5 to your computer and use it in GitHub Desktop.
Save Yama-Tomo/aedf241e60981ecfe4f3c28af6becfa5 to your computer and use it in GitHub Desktop.
Convert ttf format to Noto
  • 上記ファイルを同じディレクトリに配置してビルドする
$ docker build -t convertNotoToTTF .
  • otf ファイルがあるディレクトリ上で先ほどの docker image を実行する
    • otf の拡張子を除いたファイル名がフォント名としてセットされるようになっている
    • ライセンス上オリジナルのフォント名から変更しなければいけないので otf ファイル名を予め別の名前にリネームしておく
docker run --rm -v $PWD:/fonts convertNotoToTTF
Open($1);
filenameArray=StrSplit($1,".");
CIDSetFontNames(filenameArray[0]);
CIDFlatten();
Generate($1:r+".ttf");
Quit(0);
FROM ruby:2.5-alpine
WORKDIR /app
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
&& apk add --no-cache fontforge curl python gcc libc-dev libxml2-dev make git \
&& curl -kL https://bootstrap.pypa.io/get-pip.py | python \
&& pip install fonttools \
&& git clone https://github.com/skoji/convert-otf-to-ttf-and-fix-cmap \
&& cd convert-otf-to-ttf-and-fix-cmap \
&& bundle install --path vendor --jobs=$(getconf _NPROCESSORS_ONLN)
COPY convert-ttf.sh /app
COPY entrypoint.sh /app
ENTRYPOINT ["/app/entrypoint.sh"]
#!/bin/sh -e
mount_dir=/fonts
for otf_file_path in `ls ${mount_dir}/*.otf`
do
cp ${otf_file_path} convert-otf-to-ttf-and-fix-cmap
(
cd convert-otf-to-ttf-and-fix-cmap \
&& otf_filename=$(basename ${otf_file_path}) \
&& fontforge -script ../convert-ttf.sh ${otf_filename} >/dev/null \
&& bundle exec ruby process-cmap.rb ${otf_filename} >/dev/null \
&& mv cmap_modified/$(echo ${otf_filename} | sed 's/\.otf/.ttf/') ${mount_dir}
)
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment