Konvertieren Sie Quellcode wie hogehoge.py
in eine PDF-Datei mit Syntaxhervorhebung
Wie die a2ps, die ich vor langer Zeit benutzt habe
% cat hogehoge.txt | a2ps | lpr -Pprinter_name
Ich suchte nach einem Werkzeug, mit dem ich eine Weile problemlos drucken konnte. Aber, Ich kann so ein Werkzeug nicht finden, also musste ich es selbst machen.
Ich dachte darüber nach, die PDF-Datei mit einer Pipe in den Drucker einzuspeisen, ohne sie zu verschwenden, aber ich konnte mir das nicht vorstellen. Vorerst habe ich beschlossen, pdf auszugeben.
Ich werde die Quelle einfügen. Es ist besser, wenn Sie seltsame Dinge tun oder dies tun! Wir würden uns freuen, wenn Sie uns Ihre Meinung mitteilen könnten.
code2pdf
#!/usr/bin/env python
import sys
import os
import subprocess
if len(sys.argv) < 2:
print('Usage: %s FILENAME' % (sys.argv[0]))
sys.exit()
args = sys.argv
filename = sys.argv[1]
extension = filename.rsplit('.',1)
if extension[1] == 'py':
LANG = '{.python .numberLines}'
elif extension[1] == 'sh':
LANG = '{.sh .numberLines}'
elif extension[1] == 'html':
LANG = '{.html .numberLines}'
elif extension[1] == 'htm':
LANG = '{.html .numberLines}'
else:
LANG = ''
f = open(filename)
body = f.read()
f.close()
data_out = '# ' + filename + '\n' + '```'+ LANG +'\n' + body + '\n```'
subprocess.run(['pandoc',\
'-o',extension[0]+'.pdf',\
'--pdf-engine=lualatex',\
'-V', 'documentclass=bxjsarticle',\
'-V', 'classoption=pandoc,jafont=ipaex',\
'--highlight-style=kate',\
# '-H', '~/local/header.tex', #Schreiben Sie in die Präambel
'-V', 'linestretch:0.75',\
'-V', 'pagestyle:empty',\
'-V', 'geometry:top=8truemm',\
'-V', 'geometry:bottom=12truemm',\
'-V', 'geometry:left=20truemm',\
'-V', 'geometry:right=12truemm',\
'-V', 'papersize=a4',\
'-V', 'fontsize:9pt'],\
input=data_out, text=True, encoding='UTF-8')
$ code2pdf hogehoge.py
Ich habe einen Screenshot des obigen Codes im PDF-Format erstellt.
Die Farbe der Syntaxhervorhebung kann geändert werden.
Derzeit verfügbare Einstellungen können mit der Option "--list-Highlight-Styles" gefunden werden. Das Ausführungsergebnis in meiner Umgebung ist wie folgt.
$ pandoc --list-highlight-styles
pygments
tango
espresso
zenburn
kate
monochrome
breezedark
haddock
Auf dieser Seite befindet sich ein Farbmuster.
Bitte überprüfen Sie auch.
Recommended Posts