paths are not all required
This commit is contained in:
@@ -63,7 +63,7 @@ class HtmlTemplate:
|
|||||||
source_html, # the HTML to convert
|
source_html, # the HTML to convert
|
||||||
path=str(self.path_to_template / 'fonts'),
|
path=str(self.path_to_template / 'fonts'),
|
||||||
dest=result_file
|
dest=result_file
|
||||||
) # file handle to recieve result
|
) # file handle to receive result
|
||||||
|
|
||||||
# close output file
|
# close output file
|
||||||
result_file.close() # 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 yaml
|
||||||
import locale
|
import locale
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path, PurePath
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from invoice_generator import html_generator
|
from invoice_generator import html_generator
|
||||||
@@ -47,15 +47,17 @@ def merge_envelope_data_into_invoice_data(invoice_data, source_data):
|
|||||||
def main():
|
def main():
|
||||||
locale.setlocale(locale.LC_ALL, 'de_DE.utf8')
|
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('Simple invoice generator for freelancers and small businesses by Torsten Ueberschar')
|
||||||
print()
|
print()
|
||||||
parser = argparse.ArgumentParser(description='Read invoice and envelope data from yaml file')
|
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('-b', '--base', type=str, required=False, default=f'{cwd}', help='base directory for invoice and envelope files')
|
||||||
parser.add_argument('-i', '--invoice', type=str, required=True, help='Invoice file name')
|
|
||||||
parser.add_argument('-e', '--envelope', type=str, required=False, default='envelope.yaml',
|
parser.add_argument('-e', '--envelope', type=str, required=False, default='envelope.yaml',
|
||||||
help='Envelope file name')
|
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')
|
help='directory for template files')
|
||||||
|
parser.add_argument('-i', '--invoice', type=str, required=True, help='Invoice file name')
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
@@ -128,12 +130,20 @@ def main():
|
|||||||
print(f'Error: {e}')
|
print(f'Error: {e}')
|
||||||
return
|
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)
|
template = generator.prepare_template(invoice_data, envelope_data)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
print('Generating invoice...')
|
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}')
|
print(f'Invoice PDF: {invoice_pdf}')
|
||||||
generator.convert_html_to_pdf(template, invoice_pdf)
|
generator.convert_html_to_pdf(template, invoice_pdf)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
Reference in New Issue
Block a user