From 515d8ff320a6532d35142a1b8dd8cae8f8a7737f Mon Sep 17 00:00:00 2001 From: Krzysztof Rudnicki Date: Wed, 31 May 2023 03:41:01 +0200 Subject: [PATCH] feat: code works --- examples/minimalWorking/table.pdf | Bin 2082 -> 3531 bytes examples/minimalWorking/table.tex | 7 +- program/code/error_messages/__init__.py | 0 program/code/error_messages/error_arrays.py | 13 -- program/code/main.py | 128 +++++++++++++----- program/code/texfile.pdf | Bin 0 -> 3988 bytes program/code/texfile.tex | 15 ++ .../tests/test_code/test_document_class.py | 4 +- 8 files changed, 119 insertions(+), 48 deletions(-) delete mode 100644 program/code/error_messages/__init__.py delete mode 100644 program/code/error_messages/error_arrays.py create mode 100644 program/code/texfile.pdf diff --git a/examples/minimalWorking/table.pdf b/examples/minimalWorking/table.pdf index 61bcb5eb0f7dd75ac3d6381abc9b40206d34430d..be170adb08c1345501d9ee605bbcdc17ac2a938f 100644 GIT binary patch delta 3141 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" @@ -102,7 +92,6 @@ def main_tabular_parameters_loop(latex_string, simple_parameters_dictionary): while i < latex_string_length: character = latex_string[i] if character in ['l', 'c', 'r', '|']: - print("entered") return_array.append( simple_parameters_dictionary.get(latex_string[i])) i += 1 @@ -110,7 +99,6 @@ def main_tabular_parameters_loop(latex_string, simple_parameters_dictionary): if character in ['p', 'm', 'b']: closing_bracket = latex_string.find('}', i + 1) columns_string = latex_string[i:closing_bracket + 1] - print(columns_string) result = tabular_columns_parameters(columns_string) if result == "Error!": return result @@ -118,7 +106,6 @@ def main_tabular_parameters_loop(latex_string, simple_parameters_dictionary): i = closing_bracket continue i += 1 - print(return_array) return return_array @@ -188,7 +175,6 @@ def tabular_columns_parameters(latex_string): if conversed_unit == "Error!": print("tabular_columns_parameters, Unit could not be conversed!", latex_string) return "Error!" - print(length_value, conversed_unit, conversed_unit[0]) final_length = round(float(length_value) * conversed_unit[0], 2) return_string = "style='" + vertical_align_type + \ " width: " + str(final_length) + conversed_unit[1] + ";'" @@ -198,15 +184,13 @@ def tabular_columns_parameters(latex_string): def split_rows(latex_string): double_backslash = "\\" rows = latex_string.split(double_backslash) - print(rows) return rows def split_columns(table_row, column_count): columns = table_row.split("&") if len(columns) != column_count and columns != ['']: - print( - f"split_columns, table_row: {table_row} has different amount of columns than expected: {column_count}") + return "Error!" return columns @@ -215,8 +199,6 @@ def translate_column(latex_column): hline_string_literal = "\hline" replaced_hline = latex_column.replace(hline_string_literal, "
") replaced_newline = replaced_hline.replace('\newline', "
") - print(latex_column, replaced_newline, - latex_column.find(hline_string_literal), hline_string_literal) return replaced_newline @@ -225,7 +207,6 @@ def translate_inside_to_html(latex_table_inside, column_style): column_amount = 0 line_string = "style='border-left: 1px solid black'" for style in column_style: - print(style) if style != line_string: column_amount += 1 rows = split_rows(latex_table_inside) @@ -249,22 +230,103 @@ def translate_inside_to_html(latex_table_inside, column_style): return_string += "" return_string += " " - print(return_string) return return_string -def read_file(tex_filename: string): +def read_file(tex_filename): tex_file = open(tex_filename, "r") - data = tex_file.read() + data = tex_file.read().replace('\n', '') tex_file.close() return data -if __name__ == "__main__": - tex_filename = "texfile.tex" - data = read_file(tex_filename) - document_class_index = data.find("\documentclass") +def read_document_class(latex_full_string): + document_class_index = latex_full_string.find("\documentclass") if document_class_index == -1: print("Main function error! documentclass not found") return "Error!" - document_class("") + document_class_close_bracket = latex_full_string.find( + "}", document_class_index) + document_class_string = latex_full_string[document_class_index:document_class_close_bracket + 1] + latex_full_string = latex_full_string[document_class_close_bracket + 1:len( + latex_full_string) - 1] + return document_class(document_class_string), latex_full_string + + +def read_begin_document(latex_full_string): + begin_document_index = latex_full_string.find(r"\begin{document}") + if begin_document_index == -1: + print("read_begin_document error! begin{document not found") + return "Error!", latex_full_string + begin_document_close_bracket = latex_full_string.find( + "}", begin_document_index) + begin_document_string = latex_full_string[begin_document_index:begin_document_close_bracket + 1] + latex_full_string = latex_full_string[begin_document_close_bracket + 1:len( + latex_full_string) - 1] + return_string = begin_document(begin_document_string) + return return_string, latex_full_string + + +def read_start(html_string, data): + document_class_result, data = read_document_class(data) + if document_class_result == "Error!": + return "Error!", data + html_string += document_class_result + + begin_document_results, data = read_begin_document(data) + if begin_document_results == "Error!": + return "Error!", data + html_string += begin_document_results + return html_string, data + + +def handle_table_whole(html_string, data, table_start, table_end): + if table_start == -1 or table_end == -1: + return html_string, data + tabular_begin_string = r"\begin{tabular}" + tabular_end_string = r"\end{tabular}" + + table_part = data[table_start:table_end+len(tabular_end_string)] + parameters_start_index = data.find( + "{", table_start + len(tabular_begin_string)) + + parameters_end_index = data.find("}", parameters_start_index) + parameters_string = data[parameters_start_index:parameters_end_index+1] + parameters_array = tabular_required_parameters(parameters_string) + inside_table = data[parameters_end_index+1:table_end] + html_string += translate_inside_to_html(inside_table, parameters_array) + return html_string + + +def handle_insides(html_string, data): + tabular_index = 0 + tabular_end_string = r"\end{tabular}" + while tabular_index != -1: + tabular_index_start = data.find(r"\begin{tabular}", 0) + tabular_index_end = data.find(tabular_end_string, tabular_index_start) + if tabular_index_start == -1 or tabular_index_end == -1: + return html_string, data + html_string += data[0:tabular_index_start] + + html_string = handle_table_whole(html_string, data, + tabular_index_start, tabular_index_end) + data = data[tabular_index_end + len(tabular_end_string):len(data)] + tabular_index = tabular_index_end + return html_string, data + + +def main_function(): + tex_filename = "texfile.tex" + data = read_file(tex_filename) + html_string = "" + html_string, data = read_start(html_string, data) + if html_string == "Error!": + print("main_function error! when reading documentclass or begin document") + return "Error" + html_string, data = handle_insides(html_string, data) + + return html_string + + +if __name__ == "__main__": + print(main_function()) diff --git a/program/code/texfile.pdf b/program/code/texfile.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d2c1749d49aff0d20896c53bd164dc27f4eda2b8 GIT binary patch literal 3988 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 literal 0 HcmV?d00001 diff --git a/program/code/texfile.tex b/program/code/texfile.tex index e69de29b..0c46d149 100644 --- a/program/code/texfile.tex +++ b/program/code/texfile.tex @@ -0,0 +1,15 @@ +\documentclass{article} +\begin{document} +some random text +\begin{tabular}{c} + inside table +\end{tabular} +some random text 2 +\begin{tabular}{c} + inside table2 +\end{tabular} + +\begin{tabular}{c} + inside table3 +\end{tabular} +\end{document} \ No newline at end of file diff --git a/program/tests/test_code/test_document_class.py b/program/tests/test_code/test_document_class.py index ad1d9ae5..94520315 100644 --- a/program/tests/test_code/test_document_class.py +++ b/program/tests/test_code/test_document_class.py @@ -4,6 +4,8 @@ from code.main import document_class # Write python tests for a function translating LaTeX documentclass to html + + def given_empty_then_error(): """ Given: "" @@ -57,7 +59,7 @@ def given_class_not_recognized_then_error(): """ assert ( document_class("\\documentclass{idonotexist}") - == "Error! class idonotexist is not known!" + == "" )