diff --git a/src/resume/components/resume.py b/src/resume/components/resume.py index 00b7c90..3f960f4 100755 --- a/src/resume/components/resume.py +++ b/src/resume/components/resume.py @@ -2,8 +2,8 @@ class Resume: def __init__(self, author): self.author = author - def build(self, filename: str, output_dir: str): - with open(output_dir + filename, "w") as file: + def build(self, filename: str): + with open(filename, "w") as file: file.write(str(self)) def __str__(self) -> str: diff --git a/src/resume/utils.py b/src/resume/utils.py index 77adeaa..408bc67 100644 --- a/src/resume/utils.py +++ b/src/resume/utils.py @@ -17,15 +17,14 @@ def xp_fmt(name: str, address: str, spec: str, date: str) -> str: def md_to_pdf( - md_file: str, - pdf_file: str, + filename: str, html_template: str = "./src/template/resume.html", css_template: str = "./src/template/resume.css", ) -> None: subprocess.run( [ "pandoc", - md_file, + f"{filename}.md", "-t", "html", f"--template={html_template}", @@ -43,18 +42,31 @@ def md_to_pdf( "margin-left=0", "--pdf-engine-opt=--enable-local-file-access", "-o", - pdf_file, + f"{filename}.pdf", ] ) +def pdf_to_png( + filename: str, +) -> None: + subprocess.run( + ["pdftoppm", "-png", "-singlefile", f"{filename}.pdf", filename] + ) + + def generate_resume(author, output_dir: str) -> Resume: - # generate resume and output to file and standard output + # generate resume and output to markdown file resume: Resume = Resume(author) - filename = f"Resume_{resume.author.name.replace(' ', '_')}" - resume.build(f"{filename}.md", output_dir) - md_to_pdf( - f"{output_dir.rstrip('/')}/{filename}.md", - f"{output_dir.rstrip('/')}/{filename}.pdf", + filename = ( + output_dir.rstrip("/") + + "/" + + f"Resume_{resume.author.name.replace(' ', '_')}" ) + resume.build(f"{filename}.md") + + # convert markdown to pdf and generate png image + md_to_pdf(filename) + pdf_to_png(filename) + return resume