#!/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')