39 lines
2.4 KiB
Python
39 lines
2.4 KiB
Python
#!/usr/bin/env python3
|
|
import sys,warnings
|
|
warnings.filterwarnings("ignore")
|
|
from fpdf import FPDF
|
|
|
|
class P(FPDF):
|
|
def header(self):
|
|
self.add_font('DV','','/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf')
|
|
self.add_font('DV','B','/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf')
|
|
self.set_font('DV','B',16);self.set_text_color(88,28,135);self.cell(0,10,'WEVIA',new_x="LMARGIN",new_y="NEXT",align='C')
|
|
self.set_font('DV','',8);self.set_text_color(120,120,120);self.cell(0,5,'WEVAL Consulting — Proposition Commerciale',new_x="LMARGIN",new_y="NEXT",align='C')
|
|
self.ln(3);self.set_draw_color(88,28,135);self.line(10,self.get_y(),200,self.get_y());self.ln(4)
|
|
def footer(self):
|
|
self.set_y(-12);self.set_font('DV','',7);self.set_text_color(150,150,150);self.cell(0,8,f'WEVAL Consulting — weval-consulting.com — p.{self.page_no()}',align='C')
|
|
|
|
pdf=P();pdf.add_page()
|
|
pdf.set_font('DV','B',13);pdf.set_text_color(30,30,30);pdf.cell(0,8,sys.argv[2],new_x="LMARGIN",new_y="NEXT");pdf.ln(2)
|
|
for line in open(sys.argv[1],encoding='utf-8'):
|
|
s=line.strip()
|
|
if not s:pdf.ln(2);continue
|
|
if s.startswith('# '):pdf.ln(3);pdf.set_font('DV','B',13);pdf.set_text_color(88,28,135);pdf.cell(0,7,s[2:],new_x="LMARGIN",new_y="NEXT");continue
|
|
if s.startswith('## '):pdf.ln(2);pdf.set_font('DV','B',11);pdf.set_text_color(60,60,60);pdf.cell(0,6,s[3:],new_x="LMARGIN",new_y="NEXT");continue
|
|
if s.startswith('### '):pdf.set_font('DV','B',10);pdf.set_text_color(80,80,80);pdf.cell(0,5,s[4:],new_x="LMARGIN",new_y="NEXT");continue
|
|
if s.startswith('|') and '|' in s[1:]:
|
|
cells=[c.strip() for c in s.split('|')[1:-1]]
|
|
if all(set(c)<=set('-: ') for c in cells):continue
|
|
w=190/max(len(cells),1)
|
|
if any(c.startswith('**') for c in cells):
|
|
pdf.set_font('DV','B',8);pdf.set_fill_color(88,28,135);pdf.set_text_color(255,255,255)
|
|
for c in cells:pdf.cell(w,5,c.replace('**',''),border=1,fill=True)
|
|
else:
|
|
pdf.set_font('DV','',8);pdf.set_text_color(30,30,30)
|
|
for c in cells:pdf.cell(w,5,c.replace('**',''),border=1)
|
|
pdf.ln();continue
|
|
if s.startswith(('- ','* ')):
|
|
pdf.set_font('DV','',9);pdf.set_text_color(30,30,30);pdf.cell(5,4,' ');pdf.multi_cell(180,4,s[2:].replace('**',''));continue
|
|
pdf.set_font('DV','',9);pdf.set_text_color(30,30,30);pdf.multi_cell(0,4,s.replace('**',''));pdf.ln(1)
|
|
pdf.output(sys.argv[3]);print('OK')
|