From 25e7c671935db413fee26da307161eace8d04f3f Mon Sep 17 00:00:00 2001 From: Cubix33 Date: Wed, 18 Mar 2026 20:28:10 +0000 Subject: [PATCH] #290- Resize font according to length --- src/filler.py | 7 ++++++- src/llm.py | 2 +- src/main.py | 7 ++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/filler.py b/src/filler.py index e31e535..d749e7d 100644 --- a/src/filler.py +++ b/src/filler.py @@ -39,7 +39,12 @@ def fill_form(self, pdf_form: str, llm: LLM): for annot in sorted_annots: if annot.Subtype == "/Widget" and annot.T: if i < len(answers_list): - annot.V = f"{answers_list[i]}" + text_value = f"{answers_list[i]}" + if len(text_value) > 20: + # '/Helv 0 Tf' means Helvetica font, 0 size (auto) + annot.DA = '/Helv 0 Tf 0 g' + + annot.V = text_value annot.AP = None i += 1 else: diff --git a/src/llm.py b/src/llm.py index 70937f9..3ed6761 100644 --- a/src/llm.py +++ b/src/llm.py @@ -46,7 +46,7 @@ def build_prompt(self, current_field): def main_loop(self): # self.type_check_all() - for field in self._target_fields.keys(): + for field in self._target_fields: prompt = self.build_prompt(field) # print(prompt) # ollama_url = "http://localhost:11434/api/generate" diff --git a/src/main.py b/src/main.py index 5bb632b..0668028 100644 --- a/src/main.py +++ b/src/main.py @@ -3,6 +3,7 @@ from commonforms import prepare_form from pypdf import PdfReader from controller import Controller +from typing import Union def input_fields(num_fields: int): fields = [] @@ -67,8 +68,8 @@ def run_pdf_fill_process(user_input: str, definitions: list, pdf_form_path: Unio if __name__ == "__main__": file = "./src/inputs/file.pdf" - user_input = "Hi. The employee's name is John Doe. His job title is managing director. His department supervisor is Jane Doe. His phone number is 123456. His email is jdoe@ucsc.edu. The signature is , and the date is 01/02/2005" - fields = ["Employee's name", "Employee's job title", "Employee's department supervisor", "Employee's phone number", "Employee's email", "Signature", "Date"] + user_input = "Hi. The employee's name is Venkatanarasimharajuvaripeta. His job title is managing director. His department supervisor is Jane Doe. His phone number is 123456. His email is jdoe@ucsc.edu. The signature is , and the date is 01/02/2005" + descriptive_fields = ["Employee's name", "Employee's job title", "Employee's department supervisor", "Employee's phone number", "Employee's email", "Signature", "Date"] prepared_pdf = "temp_outfile.pdf" prepare_form(file, prepared_pdf) @@ -80,4 +81,4 @@ def run_pdf_fill_process(user_input: str, definitions: list, pdf_form_path: Unio num_fields = 0 controller = Controller() - controller.fill_form(user_input, fields, file) + controller.fill_form(user_input, descriptive_fields, file)