import subprocess
import tempfile
import pathlib
import sys
def run(*args, **kwargs):
print(*args)
subprocess.run(args, check=True, **kwargs)
def main(filename, tmpdir):
code_to_pdf(filename, tmpdir)
def code_to_pdf(filename, tmpdir):
tex = tmpdir / 'code.tex'
pdf = tmpdir / 'code.pdf'
opts = [
'full',
'docclass=scrartcl',
r'preamble=\usepackage{minted}\fvset{breaklines=true}\usepackage{geometry}',
'title=' + sys.argv[2],
]
args = []
for opt in opts:
args += ['-P', opt]
run('pygmentize', '-o', tex, *args, filename)
run('pdflatex', '-shell-escape', tex, cwd=tmpdir)
run('lp', pdf)
with tempfile.TemporaryDirectory() as temp:
main(filename=pathlib.Path(sys.argv[1]), tmpdir=pathlib.Path(temp))
{"text":"text","html5":"html","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"lua","bash":"sh","erlang":"erlang","go":"golang","c":"c_cpp","cpp":"c_cpp","diff":"diff","latex":"latex","sql":"sql","xml":"xml","0":"text","abap":"abap","actionscript":"actionscript","actionscript3":"actionscript","ada":"ada","apache":"apache_conf","applescript":"applescript","asm":"assembly_x86","autohotkey":"autohotkey","closure":"closure","cobol":"cobol","coffeescript":"coffee","cpp-winapi":"c_cpp","c_loadrunner":"c_cpp","c_mac":"c_cpp","c_winapi":"c_cpp","csharp":"csharp","d":"d","dart":"dart","dot":"dot","eiffel":"eiffel","fortran":"fortran","groovy":"groovy","haskell":"haskell","haxe":"haxe","ini":"ini","io":"io","java":"java","java5":"java","make":"makefile","matlab":"matlab","mysql":"mysql","objc":"objectivec","ocaml":"ocaml","pascal":"pascal","perl":"perl","perl6":"perl","postgresql":"pgsql","powershell":"powershell","prolog":"prolog","properties":"properties","rails":"ruby","rust":"rust","scala":"scala","scheme":"scheme","smarty":"smarty","tcl":"tcl","vala":"vala","vb":"vbscript","verilog":"verilog","vhdl":"vhdl","yaml":"yaml"}