paths are not all required
This commit is contained in:
@@ -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
|
||||
|
||||
22
src/main.py
22
src/main.py
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user