Convertissez le code source comme hogehoge.py
en un fichier pdf avec une coloration syntaxique
Comme l'a2ps que j'ai utilisé il y a longtemps
% cat hogehoge.txt | a2ps | lpr -Pprinter_name
Je cherchais un outil qui pourrait facilement imprimer pendant un certain temps. Mais, Je ne trouve pas d'outil comme celui-ci, alors j'ai dû le fabriquer moi-même.
J'ai pensé à utiliser un tuyau pour alimenter le fichier pdf dans l'imprimante sans le gaspiller, mais je ne pouvais pas y penser. Pour le moment, j'ai décidé de sortir le pdf.
Je vais coller la source. C'est mieux si vous faites des choses bizarres ou faites ça! Nous vous serions reconnaissants de bien vouloir nous donner votre avis.
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', #Écrire dans le préambule
'-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
J'ai fait une capture d'écran du code ci-dessus en pdf.
La couleur de la surbrillance de la syntaxe peut être modifiée.
Les paramètres actuellement disponibles peuvent être trouvés avec l'option --list-highlight-styles
.
Le résultat de l'exécution dans mon environnement est le suivant.
$ pandoc --list-highlight-styles
pygments
tango
espresso
zenburn
kate
monochrome
breezedark
haddock
Il y a un échantillon de couleur sur cette page.
Veuillez également vérifier.
Recommended Posts