#!/bin/bash mkdir -p handbook touch ./handbook/index.html if [ ! -f ./handbook/cmunrm.otf ]; then cd handbook wget http://mirrors.concertpass.com/tex-archive/fonts/cm-unicode/fonts/otf/cmunrm.otf base64 cmunrm.otf > cmunrm.txt cd .. fi HANDBOOK="./handbook" TMP_HTML="$(realpath ./handbook/index.html)" HTML="html/index.html" LAYOUT_PDF="handbook/layout.pdf" BODY_HTML="handbook/body.html" INDEX_TABLE_HTML="$(cat ./tmpl/handbook_index.html)" rm -f "${BODY_HTML}" WRITING=0 INDEX_TABLE=0 while read p; do if [ ${WRITING} -eq 0 ] && [[ "${p}" == *""* ]]; then WRITING=1 fi if [ ${WRITING} -eq 1 ] && [[ "${p}" == *""* ]]; then WRITING=0 fi if [ ${INDEX_TABLE} -eq 0 ] && [[ "${p}" == *"class=\"indexTable\""* ]]; then INDEX_TABLE=1 echo "${INDEX_TABLE_HTML}" >> "${BODY_HTML}" fi if [ ${INDEX_TABLE} -eq 1 ] && [[ "${p}" == *""* ]]; then INDEX_TABLE=0 fi if [ ${WRITING} -eq 1 ] && [ ${INDEX_TABLE} -eq 0 ]; then echo "$p" >> "${BODY_HTML}" fi done < "${HTML}" BODY_VAR="{{BODY_HTML}}" TMPL_HTML=`cat tmpl/layout.html.tmpl` BODY_CONTENT=`cat "${BODY_HTML}"` FONT=`cat handbook/cmunrm.txt | tr -d '\n'` BODY_CONTENT="${BODY_CONTENT//.svg/.jpg}" ALL_HTML="${TMPL_HTML/$BODY_VAR/$BODY_CONTENT}" ALL_HTML="${ALL_HTML/REPLACEFONT/$FONT}" echo "${ALL_HTML}" > "${TMP_HTML}" chromium-browser \ --headless \ --no-sandbox \ --disable-gpu \ --run-all-compositor-stages-before-draw \ --print-to-pdf-no-header \ --no-margins \ --print-to-pdf="${LAYOUT_PDF}" \ "${TMP_HTML}" cd handbook rm -f page-*.jpg #convert -density 600 "../${LAYOUT_PDF}" -quality 90 page-%3d.jpg pdftoppm "../${LAYOUT_PDF}" page -jpeg -rx 600 -ry 600 convert -size 5100x6601 xc:white blank.jpg cp blank.jpg page-0.jpg cp blank.jpg page-00.jpg pages=`ls page-*.jpg` i=-1 for page in $pages do #5100x6601 if [ ${i} -gt 0 ]; then echo "Numbering [$i] $page" convert "${page}" -gravity North -pointsize 180 -draw 'text 0,6450 "'${i}'"' "${page}" fi let i=i+1 done cd .. #rm -f "${TMP_HTML}" #rm -f "${LAYOUT_PDF}"