paths are not all required

This commit is contained in:
Torsten Ueberschar
2024-09-16 11:34:42 +02:00
parent 43163e2ac7
commit 660e75d719
2 changed files with 17 additions and 7 deletions

View File

@@ -63,7 +63,7 @@ class HtmlTemplate:
source_html, # the HTML to convert
path=str(self.path_to_template / 'fonts'),
dest=result_file
) # file handle to recieve result
) # file handle to receive result
# close output file
result_file.close() # close output file

View File

@@ -2,7 +2,7 @@ import argparse
import yaml
import locale
from pathlib import Path
from pathlib import Path, PurePath
from datetime import datetime
from invoice_generator import html_generator
@@ -47,15 +47,17 @@ def merge_envelope_data_into_invoice_data(invoice_data, source_data):
def main():
locale.setlocale(locale.LC_ALL, 'de_DE.utf8')
cwd = Path.cwd().resolve()
print('Simple invoice generator for freelancers and small businesses by Torsten Ueberschar')
print()
parser = argparse.ArgumentParser(description='Read invoice and envelope data from yaml file')
parser.add_argument('-b', '--base', type=str, required=True, help='base directory for invoice and envelope files')
parser.add_argument('-i', '--invoice', type=str, required=True, help='Invoice file name')
parser.add_argument('-b', '--base', type=str, required=False, default=f'{cwd}', help='base directory for invoice and envelope files')
parser.add_argument('-e', '--envelope', type=str, required=False, default='envelope.yaml',
help='Envelope file name')
parser.add_argument('-t', '--template', type=str, required=False, default='template',
parser.add_argument('-t', '--template', type=str, required=False, default='templates',
help='directory for template files')
parser.add_argument('-i', '--invoice', type=str, required=True, help='Invoice file name')
args = parser.parse_args()
@@ -128,12 +130,20 @@ def main():
print(f'Error: {e}')
return
generator = html_generator.HtmlTemplate(args.template)
if not PurePath(args.template).is_absolute():
template_dir = (Path(args.base) / args.template).resolve()
else:
template_dir = Path(args.template).resolve()
generator = html_generator.HtmlTemplate(template_dir)
template = generator.prepare_template(invoice_data, envelope_data)
try:
print('Generating invoice...')
invoice_pdf = Path(invoice_data.Id).with_suffix('.pdf')
output_path = Path(args.base) / 'pdf'
output_path.mkdir(parents=True, exist_ok=True)
output_path = output_path / f'{invoice_data.Id}.pdf'
invoice_pdf = output_path.resolve()
print(f'Invoice PDF: {invoice_pdf}')
generator.convert_html_to_pdf(template, invoice_pdf)
except Exception as e: