diff --git a/README.md b/README.md index 16ed532b..1308a9e4 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ features, known gaps, and development workflow. io.github.mini-software minipdf - 0.1.4 + 0.1.5 ``` diff --git a/artifacts/java-benchmark/issue/xlsx/report/benchmark_coverage.json b/artifacts/java-benchmark/issue/xlsx/report/benchmark_coverage.json index dce297df..7593874e 100644 --- a/artifacts/java-benchmark/issue/xlsx/report/benchmark_coverage.json +++ b/artifacts/java-benchmark/issue/xlsx/report/benchmark_coverage.json @@ -8,16 +8,208 @@ "auxiliary_reference_label": "LibreOffice (auxiliary)", "fixture_scope": "shared-on-disk-fixtures", "executes_dotnet_xunit": false, - "max_compare_pages": 0, - "selected_cases": 1, - "passed_conversions": 1, + "max_compare_pages": 3, + "selected_cases": 23, + "passed_conversions": 23, "failed_conversions": 0, "missing_references": 0, "missing_auxiliary_references": 0, "comparison_completed": true, - "comparison_results": 1, - "average_score": 0.9564, + "comparison_results": 23, + "average_score": 0.8067521739130434, "cases": [ + { + "name": "Academic Achievement Summary Table", + "case_id": "Academic Achievement Summary Table", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Academic Achievement Summary Table.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "AcademicAchievement_temp", + "case_id": "AcademicAchievement_temp", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/AcademicAchievement_temp.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "Business expense budget1", + "case_id": "Business expense budget1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Business expense budget1.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "Business expenses budget2", + "case_id": "Business expenses budget2", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Business expenses budget2.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "Business plan checklist with SWOT analysis1", + "case_id": "Business plan checklist with SWOT analysis1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Business plan checklist with SWOT analysis1.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "Event budget1", + "case_id": "Event budget1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Event budget1.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "Expense report basic1", + "case_id": "Expense report basic1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Expense report basic1.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "Grocery list1", + "case_id": "Grocery list1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Grocery list1.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "Issue202609031340", + "case_id": "Issue202609031340", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Issue202609031340.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "payroll-calculator_f", + "case_id": "payroll-calculator_f", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/payroll-calculator_f.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "PO_anonymized", + "case_id": "PO_anonymized", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/PO_anonymized.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "Simple invoice1", + "case_id": "Simple invoice1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Simple invoice1.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "Small business cash flow forecast1", + "case_id": "Small business cash flow forecast1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Small business cash flow forecast1.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "Wedding_timeline_planner1_copy", + "case_id": "Wedding_timeline_planner1_copy", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Wedding_timeline_planner1_copy.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "Weekly schedule planner1", + "case_id": "Weekly schedule planner1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Weekly schedule planner1.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "XlsxIssue75", + "case_id": "XlsxIssue75", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue75.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, { "name": "XlsxIssue77_MergedCellAlignment", "case_id": "XlsxIssue77_MergedCellAlignment", @@ -29,6 +221,78 @@ "candidate_exists": true, "reference_exists": true, "auxiliary_reference_exists": true + }, + { + "name": "XlsxIssue77_Template1", + "case_id": "XlsxIssue77_Template1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue77_Template1.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "XlsxIssue77_Template2_Workaround", + "case_id": "XlsxIssue77_Template2_Workaround", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue77_Template2_Workaround.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "XlsxIssue81_LayoutOptions", + "case_id": "XlsxIssue81_LayoutOptions", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue81_LayoutOptions.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "XlsxIssue82_5mb", + "case_id": "XlsxIssue82_5mb", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue82_5mb.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "XlsxIssue82_SampleTestData5mb", + "case_id": "XlsxIssue82_SampleTestData5mb", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue82_SampleTestData5mb.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true + }, + { + "name": "XlsxIssue82_WideTable", + "case_id": "XlsxIssue82_WideTable", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue82_WideTable.xlsx", + "conversion_status": "passed", + "conversion_exit_code": 0, + "candidate_exists": true, + "reference_exists": true, + "auxiliary_reference_exists": true } ] } \ No newline at end of file diff --git a/artifacts/java-benchmark/issue/xlsx/report/comparison_manifest.json b/artifacts/java-benchmark/issue/xlsx/report/comparison_manifest.json index 13ee2ee5..a6ed442c 100644 --- a/artifacts/java-benchmark/issue/xlsx/report/comparison_manifest.json +++ b/artifacts/java-benchmark/issue/xlsx/report/comparison_manifest.json @@ -1,5 +1,197 @@ { "cases": [ + { + "name": "Academic Achievement Summary Table", + "case_id": "Academic Achievement Summary Table", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Academic Achievement Summary Table.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "AcademicAchievement_temp", + "case_id": "AcademicAchievement_temp", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/AcademicAchievement_temp.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "Business expense budget1", + "case_id": "Business expense budget1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Business expense budget1.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "Business expenses budget2", + "case_id": "Business expenses budget2", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Business expenses budget2.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "Business plan checklist with SWOT analysis1", + "case_id": "Business plan checklist with SWOT analysis1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Business plan checklist with SWOT analysis1.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "Event budget1", + "case_id": "Event budget1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Event budget1.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "Expense report basic1", + "case_id": "Expense report basic1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Expense report basic1.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "Grocery list1", + "case_id": "Grocery list1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Grocery list1.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "Issue202609031340", + "case_id": "Issue202609031340", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Issue202609031340.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "payroll-calculator_f", + "case_id": "payroll-calculator_f", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/payroll-calculator_f.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "PO_anonymized", + "case_id": "PO_anonymized", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/PO_anonymized.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "Simple invoice1", + "case_id": "Simple invoice1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Simple invoice1.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "Small business cash flow forecast1", + "case_id": "Small business cash flow forecast1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Small business cash flow forecast1.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "Wedding_timeline_planner1_copy", + "case_id": "Wedding_timeline_planner1_copy", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Wedding_timeline_planner1_copy.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "Weekly schedule planner1", + "case_id": "Weekly schedule planner1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Weekly schedule planner1.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "XlsxIssue75", + "case_id": "XlsxIssue75", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue75.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, { "name": "XlsxIssue77_MergedCellAlignment", "case_id": "XlsxIssue77_MergedCellAlignment", @@ -11,6 +203,78 @@ "candidate_exists": false, "reference_exists": false, "auxiliary_reference_exists": false + }, + { + "name": "XlsxIssue77_Template1", + "case_id": "XlsxIssue77_Template1", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue77_Template1.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "XlsxIssue77_Template2_Workaround", + "case_id": "XlsxIssue77_Template2_Workaround", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue77_Template2_Workaround.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "XlsxIssue81_LayoutOptions", + "case_id": "XlsxIssue81_LayoutOptions", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue81_LayoutOptions.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "XlsxIssue82_5mb", + "case_id": "XlsxIssue82_5mb", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue82_5mb.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "XlsxIssue82_SampleTestData5mb", + "case_id": "XlsxIssue82_SampleTestData5mb", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue82_SampleTestData5mb.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false + }, + { + "name": "XlsxIssue82_WideTable", + "case_id": "XlsxIssue82_WideTable", + "suite": "issue", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue82_WideTable.xlsx", + "conversion_status": "pending", + "conversion_exit_code": null, + "candidate_exists": false, + "reference_exists": false, + "auxiliary_reference_exists": false } ] } \ No newline at end of file diff --git a/artifacts/java-benchmark/issue/xlsx/report/comparison_report.json b/artifacts/java-benchmark/issue/xlsx/report/comparison_report.json index 2a6abc32..d71b91a5 100644 --- a/artifacts/java-benchmark/issue/xlsx/report/comparison_report.json +++ b/artifacts/java-benchmark/issue/xlsx/report/comparison_report.json @@ -1,81 +1,2133 @@ [ { - "name": "XlsxIssue77_MergedCellAlignment", + "name": "Academic Achievement Summary Table", "minipdf_exists": true, "reference_exists": true, "report_scope": "java-issue-xlsx", - "case_id": "XlsxIssue77_MergedCellAlignment", + "case_id": "Academic Achievement Summary Table", "format": "xlsx", - "source_path": "tests/Issue_Files/xlsx/XlsxIssue77_MergedCellAlignment.xlsx", + "source_path": "tests/Issue_Files/xlsx/Academic Achievement Summary Table.xlsx", "suite": "issue", - "minipdf_size": 71248, - "reference_size": 172385, + "minipdf_size": 54546, + "reference_size": 151877, "pdf_valid": true, - "minipdf_pages": 2, + "minipdf_pages": 4, "reference_pages": 2, - "text_similarity": 1.0, - "flat_text_similarity": 1.0, - "word_text_similarity": 1.0, - "text_diff": "(identical)", + "compared_pages": 3, + "text_similarity": 0.9068, + "flat_text_similarity": 0.9052, + "word_text_similarity": 0.6864, + "text_diff": "--- minipdf/Academic Achievement Summary Table.pdf\n+++ reference/Academic Achievement Summary Table.pdf\n@@ -1,10 +1,10 @@\n 附件3\n\n 学术业绩汇总表\n\n-报考岗位: 报考岗位代码: 考⽣姓名:\n\n-博⼠论⽂题⽬: 博⼠论⽂研究⽅向:\n\n-公开发表的主要论⽂情况\n\n-⻆⾊ 转载刊物、转载字数及 是否为代表作\n\n-序号 题⽬ 刊物名称 核⼼期刊情况 刊号 发表时间\n\n+报考岗位: 报考岗位代码: 考生姓名:\n\n+博士论文题目: 博士论文研究方向:\n\n+公开发表的主要论文情况\n\n+角色 转载刊物、转载字数及 是否为代表作\n\n+序号 题目 刊物名称 核心期刊情况 刊号 发表时间\n\n (排名) 转载时间等 (指定1篇)\n\n 1\n\n 2\n\n@@ -20,29 +20,28 @@\n 12\n\n ---PAGE---\n\n 公开出版的主要专(译)著、教材情况\n\n-⻆⾊ 全书⽂ 本⼈写 转载刊物、转载字数及\n\n-序号 题⽬ 出版社名称 出版号 出版时间 备注\n\n+角色 全书文 本人写 转载刊物、转载字数及\n\n+序号 题目 出版社名称 出版号 出版时间 备注\n\n (排名) 字数 作量 转载时间等\n\n 1\n\n 2\n\n 获批的决策咨询报告情况\n\n-序号 题⽬ 批⽰领导级别 获批时间 ⻆⾊(排名) 备注\n\n+序号 题目 批示领导级别 获批时间 角色(排名) 备注\n\n 1\n\n 2\n\n 3\n\n 4\n\n 承担的主要科研课题情况\n\n-项⽬\n\n-序号 课题名称 项⽬来源 课题编号 ⻆⾊(排名) 起⽌时间 成果鉴定(评价) 备注\n\n+项目\n\n+序号 课题名称 项目来源 课题编号 角色(排名) 起止时间 成果鉴定(评价) 备注\n\n 级别\n\n 1\n\n 2\n\n 3\n\n 4\n\n-本⼈承诺以上情况属实,并有相应证明。如有不实之处,愿意承担相应责任。\n\n-报名⼈员签名:\n\n-⽇期: 年 ⽉ ⽇\n\n-填表说明:1.请将各类学术成果按等级、层次及⽔平⾃⾼到低顺序填写。不加⾏、减⾏,不加⻚、减⻚,本表采⽤A4正反⾯打印。\n\n-2.核⼼期刊是指北京⼤学图书馆“中⽂核⼼期刊”、南京⼤学“中⽂社会科学引⽂索引(CSSCI)来源期刊”(含扩展版、集刊)、中国科学技术信息研究所\n\n-“中国科技论⽂统计源期刊”和科学引⽂索引(SCI)、社会科学引⽂索引(SSCI)。其中,被SCI、SSCI收录的期刊要求进⼊所在学科领域Q1、Q2。\n\n----PAGE---\n+本人承诺以上情况属实,并有相应证明。如有不实之处,愿意承担相应责任。\n\n+报名人员签名:\n\n+日期: 年 月 日\n\n+填表说明:1.请将各类学术成果按等级、层次及水平自高到低顺序填写。不加行、减行,不加页、减页,本表采用A4正反面打印。\n\n+2.核心期刊是指北京大学图书馆“中文核心期刊”、南京大学“中文社会科学引文索引(CSSCI)来源期刊”(含扩展版、集刊)、中国科学技术信息研究所\n\n+“中国科技论文统计源期刊”和科学引文索引(SCI)、社会科学引文索引(SSCI)。其中,被SCI、SSCI收录的期刊要求进入所在学科领域Q1、Q2。", "visual_scores": [ - 0.886, - 0.896 + 0.9586, + 0.9282, + 0.0 ], - "visual_avg": 0.891, + "visual_avg": 0.6289, "diff_images": [ { "page": 1, - "minipdf_img": "XlsxIssue77_MergedCellAlignment_p1_minipdf.png", - "reference_img": "XlsxIssue77_MergedCellAlignment_p1_reference.png", - "auxiliary_img": "XlsxIssue77_MergedCellAlignment_p1_libreoffice.png", - "heatmap_img": "XlsxIssue77_MergedCellAlignment_p1_heatmap.png", + "minipdf_img": "Academic Achievement Summary Table_p1_minipdf.png", + "reference_img": "Academic Achievement Summary Table_p1_reference.png", + "auxiliary_img": "Academic Achievement Summary Table_p1_libreoffice.png", + "heatmap_img": "Academic Achievement Summary Table_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1754, + 1241 + ], + "difference_bbox_px": [ + 46, + 24, + 1717, + 1143 + ], + "changed_pixels": 177377, + "changed_fraction": 0.081488, + "mean_abs_rgb": 12.1082, + "rmse_rgb": 47.6028, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Academic Achievement Summary Table_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "Academic Achievement Summary Table_p2_minipdf.png", + "reference_img": "Academic Achievement Summary Table_p2_reference.png", + "auxiliary_img": "Academic Achievement Summary Table_p2_libreoffice.png", + "heatmap_img": "Academic Achievement Summary Table_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1754, + 1241 + ], + "difference_bbox_px": [ + 46, + 11, + 1717, + 1170 + ], + "changed_pixels": 256408, + "changed_fraction": 0.117796, + "mean_abs_rgb": 16.7922, + "rmse_rgb": 55.8028, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Academic Achievement Summary Table_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "Academic Achievement Summary Table_p3_minipdf.png", + "reference_img": null, + "auxiliary_img": null + } + ], + "overall_score": 0.7143 + }, + { + "name": "AcademicAchievement_temp", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "AcademicAchievement_temp", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/AcademicAchievement_temp.xlsx", + "suite": "issue", + "minipdf_size": 54546, + "reference_size": 151877, + "pdf_valid": true, + "minipdf_pages": 4, + "reference_pages": 2, + "compared_pages": 3, + "text_similarity": 0.9068, + "flat_text_similarity": 0.9052, + "word_text_similarity": 0.6864, + "text_diff": "--- minipdf/AcademicAchievement_temp.pdf\n+++ reference/AcademicAchievement_temp.pdf\n@@ -1,10 +1,10 @@\n 附件3\n\n 学术业绩汇总表\n\n-报考岗位: 报考岗位代码: 考⽣姓名:\n\n-博⼠论⽂题⽬: 博⼠论⽂研究⽅向:\n\n-公开发表的主要论⽂情况\n\n-⻆⾊ 转载刊物、转载字数及 是否为代表作\n\n-序号 题⽬ 刊物名称 核⼼期刊情况 刊号 发表时间\n\n+报考岗位: 报考岗位代码: 考生姓名:\n\n+博士论文题目: 博士论文研究方向:\n\n+公开发表的主要论文情况\n\n+角色 转载刊物、转载字数及 是否为代表作\n\n+序号 题目 刊物名称 核心期刊情况 刊号 发表时间\n\n (排名) 转载时间等 (指定1篇)\n\n 1\n\n 2\n\n@@ -20,29 +20,28 @@\n 12\n\n ---PAGE---\n\n 公开出版的主要专(译)著、教材情况\n\n-⻆⾊ 全书⽂ 本⼈写 转载刊物、转载字数及\n\n-序号 题⽬ 出版社名称 出版号 出版时间 备注\n\n+角色 全书文 本人写 转载刊物、转载字数及\n\n+序号 题目 出版社名称 出版号 出版时间 备注\n\n (排名) 字数 作量 转载时间等\n\n 1\n\n 2\n\n 获批的决策咨询报告情况\n\n-序号 题⽬ 批⽰领导级别 获批时间 ⻆⾊(排名) 备注\n\n+序号 题目 批示领导级别 获批时间 角色(排名) 备注\n\n 1\n\n 2\n\n 3\n\n 4\n\n 承担的主要科研课题情况\n\n-项⽬\n\n-序号 课题名称 项⽬来源 课题编号 ⻆⾊(排名) 起⽌时间 成果鉴定(评价) 备注\n\n+项目\n\n+序号 课题名称 项目来源 课题编号 角色(排名) 起止时间 成果鉴定(评价) 备注\n\n 级别\n\n 1\n\n 2\n\n 3\n\n 4\n\n-本⼈承诺以上情况属实,并有相应证明。如有不实之处,愿意承担相应责任。\n\n-报名⼈员签名:\n\n-⽇期: 年 ⽉ ⽇\n\n-填表说明:1.请将各类学术成果按等级、层次及⽔平⾃⾼到低顺序填写。不加⾏、减⾏,不加⻚、减⻚,本表采⽤A4正反⾯打印。\n\n-2.核⼼期刊是指北京⼤学图书馆“中⽂核⼼期刊”、南京⼤学“中⽂社会科学引⽂索引(CSSCI)来源期刊”(含扩展版、集刊)、中国科学技术信息研究所\n\n-“中国科技论⽂统计源期刊”和科学引⽂索引(SCI)、社会科学引⽂索引(SSCI)。其中,被SCI、SSCI收录的期刊要求进⼊所在学科领域Q1、Q2。\n\n----PAGE---\n+本人承诺以上情况属实,并有相应证明。如有不实之处,愿意承担相应责任。\n\n+报名人员签名:\n\n+日期: 年 月 日\n\n+填表说明:1.请将各类学术成果按等级、层次及水平自高到低顺序填写。不加行、减行,不加页、减页,本表采用A4正反面打印。\n\n+2.核心期刊是指北京大学图书馆“中文核心期刊”、南京大学“中文社会科学引文索引(CSSCI)来源期刊”(含扩展版、集刊)、中国科学技术信息研究所\n\n+“中国科技论文统计源期刊”和科学引文索引(SCI)、社会科学引文索引(SSCI)。其中,被SCI、SSCI收录的期刊要求进入所在学科领域Q1、Q2。", + "visual_scores": [ + 0.9586, + 0.9282, + 0.0 + ], + "visual_avg": 0.6289, + "diff_images": [ + { + "page": 1, + "minipdf_img": "AcademicAchievement_temp_p1_minipdf.png", + "reference_img": "AcademicAchievement_temp_p1_reference.png", + "auxiliary_img": "AcademicAchievement_temp_p1_libreoffice.png", + "heatmap_img": "AcademicAchievement_temp_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1754, + 1241 + ], + "difference_bbox_px": [ + 46, + 24, + 1717, + 1143 + ], + "changed_pixels": 177377, + "changed_fraction": 0.081488, + "mean_abs_rgb": 12.1082, + "rmse_rgb": 47.6028, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "AcademicAchievement_temp_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "AcademicAchievement_temp_p2_minipdf.png", + "reference_img": "AcademicAchievement_temp_p2_reference.png", + "auxiliary_img": "AcademicAchievement_temp_p2_libreoffice.png", + "heatmap_img": "AcademicAchievement_temp_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1754, + 1241 + ], + "difference_bbox_px": [ + 46, + 11, + 1717, + 1170 + ], + "changed_pixels": 256408, + "changed_fraction": 0.117796, + "mean_abs_rgb": 16.7922, + "rmse_rgb": 55.8028, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "AcademicAchievement_temp_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "AcademicAchievement_temp_p3_minipdf.png", + "reference_img": null, + "auxiliary_img": null + } + ], + "overall_score": 0.7143 + }, + { + "name": "Business expense budget1", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "Business expense budget1", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Business expense budget1.xlsx", + "suite": "issue", + "minipdf_size": 45757, + "reference_size": 159864, + "pdf_valid": true, + "minipdf_pages": 4, + "reference_pages": 4, + "compared_pages": 3, + "text_similarity": 0.9712, + "flat_text_similarity": 0.9709, + "word_text_similarity": 0.8789, + "text_diff": "--- minipdf/Business expense budget1.pdf\n+++ reference/Business expense budget1.pdf\n@@ -3,43 +3,46 @@\n CATEGORY Q1 BUDGET Q1 ACTUAL Q2 BUDGET\n\n PERSONNEL\n\n Salaries & Wages 45,000.00 44,200.00 46,000.00\n\n-Benefits & Insurance 12,000.00 11,850.00 12,500.00\n\n+Benefits & Insurance 12,000.00 11,850.00 12,500.00\n\n Training & Development 3,000.00 2,800.00 3,200.00\n\n Recruitment 2,000.00 1,500.00 2,500.00\n\n Personnel Subtotal 62,000.00 60,350.00 64,200.00\n\n OPERATIONS\n\n-Rent & U ƟliƟes 8,000.00 8,000.00 8,200.00\n\n-Office Supplies 1,500.00 1,650.00 1,500.00\n\n+Rent & Utilities 8,000.00 8,000.00 8,200.00\n\n+Office Supplies 1,500.00 1,650.00 1,500.00\n\n Equipment & Maintenance 3,000.00 2,700.00 3,500.00\n\n-IT & So Ōware 4,000.00 4,200.00 4,500.00\n\n-Telecommunica Ɵons 2,000.00 1,900.00 2,100.00\n\n-Opera Ɵons Subtotal 18,500.00 18,450.00 19,800.00\n\n+IT & Software 4,000.00 4,200.00 4,500.00\n\n+Telecommunications 2,000.00 1,900.00 2,100.00\n\n+Operations Subtotal 18,500.00 18,450.00 19,800.00\n\n MARKETING\n\n-Adver Ɵsing 5,000.00 4,800.00 6,000.00\n\n-Digital Marke Ɵng 3,000.00 3,200.00 3,500.00\n\n+Advertising 5,000.00 4,800.00 6,000.00\n\n+Digital Marketing 3,000.00 3,200.00 3,500.00\n\n Events & Sponsorships 2,000.00 1,800.00 2,500.00\n\n-Prin Ɵng & Design 1,000.00 950.00 1,200.00\n\n-Marke Ɵng Subtotal 11,000.00 10,750.00 13,200.00\n\n+Printing & Design 1,000.00 950.00 1,200.00\n\n+Marketing Subtotal 11,000.00 10,750.00 13,200.00\n\n TRAVEL & ENTERTAINMENT\n\n-Domes Ɵc Travel 3,000.00 2,500.00 3,500.00\n\n-Interna Ɵonal Travel 5,000.00 4,000.00 6,000.00\n\n+Domestic Travel 3,000.00 2,500.00 3,500.00\n\n+International Travel 5,000.00 4,000.00 6,000.00\n\n Meals & Entertainment 2,000.00 1,800.00 2,200.00\n\n Vehicle Expenses 1,500.00 1,400.00 1,500.00\n\n Travel & Entertainment Subtotal 11,500.00 9,700.00 13,200.00\n\n PROFESSIONAL SERVICES\n\n Legal Fees 3,000.00 2,800.00 3,500.00\n\n-Accoun Ɵng & Audit 2,500.00 2,500.00 2,500.00\n\n-Consul Ɵng 4,000.00 3,500.00 5,000.00\n\n+Accounting & Audit 2,500.00 2,500.00 2,500.00\n\n+Consulting 4,000.00 3,500.00 5,000.00\n\n Insurance 2,000.00 2,000.00 2,100.00\n\n Professional Services Subtotal 11,500.00 10,800.00 13,100.00\n\n ---PAGE---\n\n GRAND TOTAL 114,500.00 110,050.00 123,500.00\n\n Category Total Budget Total Actual\n\n Personnel 126200 124250\n\n-Opera Ɵons 38300 38150\n\n-Marke Ɵng 24200 23750\n\n+Operations 38300 38150\n\n+Marketing 24200 23750\n\n Travel & Entertainment 24700 22100\n\n Professional Services 24600 23400\n\n+Budget vs Actual by Category\n\n+Amount (\\$)\n\n+Category\n\n ---PAGE---\n\n Q2 ACTUAL VARIANCE\n\n 45,800.00 1,000.00\n", + "visual_scores": [ + 0.8568, + 0.7381, + 0.9001 + ], + "visual_avg": 0.8317, + "diff_images": [ + { + "page": 1, + "minipdf_img": "Business expense budget1_p1_minipdf.png", + "reference_img": "Business expense budget1_p1_reference.png", + "auxiliary_img": "Business expense budget1_p1_libreoffice.png", + "heatmap_img": "Business expense budget1_p1_heatmap.png", "heatmap_metrics": { "size_px": [ 1241, 1754 ], "difference_bbox_px": [ - 35, - 119, - 1163, - 1541 + 147, + 176, + 1016, + 1596 ], - "changed_pixels": 474317, - "changed_fraction": 0.217905, - "mean_abs_rgb": 33.3008, - "rmse_rgb": 82.9184, + "changed_pixels": 439037, + "changed_fraction": 0.201697, + "mean_abs_rgb": 25.4757, + "rmse_rgb": 68.6251, "threshold": 12, "gain": 5.0 }, - "composite_img": "XlsxIssue77_MergedCellAlignment_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + "composite_img": "Business expense budget1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" }, { "page": 2, - "minipdf_img": "XlsxIssue77_MergedCellAlignment_p2_minipdf.png", - "reference_img": "XlsxIssue77_MergedCellAlignment_p2_reference.png", - "auxiliary_img": "XlsxIssue77_MergedCellAlignment_p2_libreoffice.png", - "heatmap_img": "XlsxIssue77_MergedCellAlignment_p2_heatmap.png", + "minipdf_img": "Business expense budget1_p2_minipdf.png", + "reference_img": "Business expense budget1_p2_reference.png", + "auxiliary_img": "Business expense budget1_p2_libreoffice.png", + "heatmap_img": "Business expense budget1_p2_heatmap.png", "heatmap_metrics": { "size_px": [ 1241, 1754 ], "difference_bbox_px": [ - 35, - 156, - 1163, - 1612 + 112, + 178, + 1016, + 1225 ], - "changed_pixels": 443109, - "changed_fraction": 0.203568, - "mean_abs_rgb": 30.2766, - "rmse_rgb": 78.5097, + "changed_pixels": 178210, + "changed_fraction": 0.081871, + "mean_abs_rgb": 10.7438, + "rmse_rgb": 41.8304, "threshold": 12, "gain": 5.0 }, - "composite_img": "XlsxIssue77_MergedCellAlignment_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + "composite_img": "Business expense budget1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "Business expense budget1_p3_minipdf.png", + "reference_img": "Business expense budget1_p3_reference.png", + "auxiliary_img": "Business expense budget1_p3_libreoffice.png", + "heatmap_img": "Business expense budget1_p3_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 112, + 297, + 450, + 1596 + ], + "changed_pixels": 217907, + "changed_fraction": 0.100108, + "mean_abs_rgb": 12.8481, + "rmse_rgb": 48.2032, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Business expense budget1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" } ], - "overall_score": 0.9564 + "overall_score": 0.9212 + }, + { + "name": "Business expenses budget2", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "Business expenses budget2", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Business expenses budget2.xlsx", + "suite": "issue", + "minipdf_size": 232162, + "reference_size": 376973, + "pdf_valid": true, + "minipdf_pages": 4, + "reference_pages": 4, + "compared_pages": 3, + "text_similarity": 0.8422, + "flat_text_similarity": 0.4473, + "word_text_similarity": 0.8422, + "text_diff": "--- minipdf/Business expenses budget2.pdf\n+++ reference/Business expenses budget2.pdf\n@@ -1,81 +1,81 @@\n Market Financial Consulting\n\n PLANNED EXPENSES\n\n January February March April May June July August September October November December Total\n\n-EMPLOYEE COSTS $ 107,950.00 $ 107,950.00 $ 107,950.00 $ 111,125.00 $ 111,125.00 $ 111,125.00 $ 111,125.00 $ 117,348.00 $ 117,348.00 $ 117,348.00 $ 117,348.00 $ 117,348.00 $ 1,355,090.00\n\n-Wages $ 85,000.00 $ 85,000.00 $ 85,000.00 $ 87,500.00 $ 87,500.00 $ 87,500.00 $ 87,500.00 $ 92,400.00 $ 92,400.00 $ 92,400.00 $ 92,400.00 $ 92,400.00 $ 1,067,000.00\n\n-Benefits $ 22,950.00 $ 22,950.00 $ 22,950.00 $ 23,625.00 $ 23,625.00 $ 23,625.00 $ 23,625.00 $ 24,948.00 $ 24,948.00 $ 24,948.00 $ 24,948.00 $ 24,948.00 $ 288,090.00\n\n-OFFICE COSTS $ 11,370.00 $ 11,770.00 $ 11,770.00 $ 11,470.00 $ 11,470.00 $ 11,470.00 $ 11,470.00 $ 11,470.00 $ 11,470.00 $ 11,470.00 $ 11,770.00 $ 11,770.00 $ 138,740.00\n\n-Office lease $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 117,600.00\n\n-Gas $ - 0 $ 400.00 $ 400.00 $ 100.00 $ 100.00 $ 100.00 $ 100.00 $ 100.00 $ 100.00 $ 100.00 $ 400.00 $ 400.00 $ 2,300.00\n\n-Electric $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 3,600.00\n\n-Water $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 480.00\n\n-Telephone $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 3,000.00\n\n-Internet access $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 2,160.00\n\n-Office supplies $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 2,400.00\n\n-Security $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 7,200.00\n\n-MARKETING COSTS $ 8,100.00 $ 3,100.00 $ 3,100.00 $ 11,100.00 $ 3,100.00 $ 3,900.00 $ 8,100.00 $ 6,100.00 $ 3,100.00 $ 8,100.00 $ 3,100.00 $ 6,900.00 $ 67,800.00\n\n-Web site hosting $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 6,000.00\n\n-Web site updates $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 1,000.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 1,000.00 $ 4,000.00\n\n-Collateral preparation $ 5,000.00 $ - 0 $ - 0 $ 5,000.00 $ - 0 $ - 0 $ 5,000.00 $ - 0 $ - 0 $ 5,000.00 $ - 0 $ - 0 $ 20,000.00\n\n-Collateral printing $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 2,400.00\n\n-Marketing events $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 5,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 5,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 5,000.00 $ 33,000.00\n\n-Miscellaneous expenses $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 2,400.00\n\n-TRAINING / TRAVEL $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 48,000.00\n\n-Training classes $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 24,000.00\n\n-Travel costs $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 24,000.00\n\n-MONTHLY TOTAL $ 131,420.00 $ 126,820.00 $ 126,820.00 $ 137,695.00 $ 129,695.00 $ 130,495.00 $ 134,695.00 $ 138,918.00 $ 135,918.00 $ 140,918.00 $ 136,218.00 $ 140,018.00 $ 1,609,630.00\n\n+EMPLOYEE COSTS $ 107,950.00 $ 107,950.00 $ 107,950.00 $ 111,125.00 $ 111,125.00 $ 111,125.00 $ 111,125.00 $ 117,348.00 $ 117,348.00 $ 117,348.00 $ 117,348.00 $ 117,348.00 $ 1,355,090.00\n\n+Wages $ 85,000.00 $ 85,000.00 $ 85,000.00 $ 87,500.00 $ 87,500.00 $ 87,500.00 $ 87,500.00 $ 92,400.00 $ 92,400.00 $ 92,400.00 $ 92,400.00 $ 92,400.00 $ 1,067,000.00\n\n+Benefits $ 22,950.00 $ 22,950.00 $ 22,950.00 $ 23,625.00 $ 23,625.00 $ 23,625.00 $ 23,625.00 $ 24,948.00 $ 24,948.00 $ 24,948.00 $ 24,948.00 $ 24,948.00 $ 288,090.00\n\n+OFFICE COSTS $ 11,370.00 $ 11,770.00 $ 11,770.00 $ 11,470.00 $ 11,470.00 $ 11,470.00 $ 11,470.00 $ 11,470.00 $ 11,470.00 $ 11,470.00 $ 11,770.00 $ 11,770.00 $ 138,740.00\n\n+Office lease $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 117,600.00\n\n+Gas $ - $ 400.00 $ 400.00 $ 100.00 $ 100.00 $ 100.00 $ 100.00 $ 100.00 $ 100.00 $ 100.00 $ 400.00 $ 400.00 $ 2,300.00\n\n+Electric $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 3,600.00\n\n+Water $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 480.00\n\n+Telephone $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 3,000.00\n\n+Internet access $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 2,160.00\n\n+Office supplies $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 2,400.00\n\n+Security $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 7,200.00\n\n+MARKETING COSTS $ 8,100.00 $ 3,100.00 $ 3,100.00 $ 11,100.00 $ 3,100.00 $ 3,900.00 $ 8,100.00 $ 6,100.00 $ 3,100.00 $ 8,100.00 $ 3,100.00 $ 6,900.00 $ 67,800.00\n\n+Web site hosting $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 6,000.00\n\n+Web site updates $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 1,000.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 1,000.00 $ 4,000.00\n\n+Collateral preparation $ 5,000.00 $ - $ - $ 5,000.00 $ - $ - $ 5,000.00 $ - $ - $ 5,000.00 $ - $ - $ 20,000.00\n\n+Collateral printing $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 2,400.00\n\n+Marketing events $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 5,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 5,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 5,000.00 $ 33,000.00\n\n+Miscellaneous expenses $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 2,400.00\n\n+TRAINING / TRAVEL $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 48,000.00\n\n+Training classes $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 24,000.00\n\n+Travel costs $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 2,000.00 $ 24,000.00\n\n+MONTHLY TOTAL $ 131,420.00 $ 126,820.00 $ 126,820.00 $ 137,695.00 $ 129,695.00 $ 130,495.00 $ 134,695.00 $ 138,918.00 $ 135,918.00 $ 140,918.00 $ 136,218.00 $ 140,018.00 $ 1,609,630.00\n\n ---PAGE---\n\n Market Financial Consulting\n\n ACTUAL EXPENSES\n\n January February March April May June July August September October November December Total\n\n-EMPLOYEE COSTS $ 107,950.00 $ 107,950.00 $ 107,950.00 $ 111,760.00 $ 111,760.00 $ 111,760.00 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ 659,130.00\n\n-Wages $ 85,000.00 $ 85,000.00 $ 85,000.00 $ 88,000.00 $ 88,000.00 $ 88,000.00 $ 519,000.00\n\n-Benefits $ 22,950.00 $ 22,950.00 $ 22,950.00 $ 23,760.00 $ 23,760.00 $ 23,760.00 $ 140,130.00\n\n-OFFICE COSTS $ 11,387.00 $ 11,698.00 $ 11,692.00 $ 11,611.00 $ 11,508.00 $ 11,454.00 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ 69,350.00\n\n-Office lease $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 58,800.00\n\n-Gas $ 4.00 $ 430.00 $ 385.00 $ 230.00 $ 87.00 $ 88.00 $ 1,224.00\n\n-Electric $ 288.00 $ 278.00 $ 268.00 $ 299.00 $ 306.00 $ 290.00 $ 1,729.00\n\n-Water $ 35.00 $ 33.00 $ 34.00 $ 36.00 $ 34.00 $ 36.00 $ 208.00\n\n-Telephone $ 224.00 $ 235.00 $ 265.00 $ 245.00 $ 245.00 $ 220.00 $ 1,434.00\n\n-Internet access $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 1,080.00\n\n-Office supplies $ 256.00 $ 142.00 $ 160.00 $ 221.00 $ 256.00 $ 240.00 $ 1,275.00\n\n-Security $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 3,600.00\n\n-MARKETING COSTS $ 7,545.00 $ 3,556.00 $ 3,123.00 $ 11,223.00 $ 2,987.00 $ 4,725.00 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ 33,159.00\n\n-Web site hosting $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 3,000.00\n\n-Web site updates $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 1,500.00 $ 2,500.00\n\n-Collateral preparation $ 4,800.00 $ - 0 $ - 0 $ 5,500.00 $ - 0 $ - 0 $ 10,300.00\n\n-Collateral printing $ 100.00 $ 500.00 $ 100.00 $ 100.00 $ 600.00 $ 180.00 $ 1,580.00\n\n-Marketing events $ 1,800.00 $ 2,200.00 $ 2,200.00 $ 4,700.00 $ 1,500.00 $ 2,300.00 $ 14,700.00\n\n-Miscellaneous expenses $ 145.00 $ 156.00 $ 123.00 $ 223.00 $ 187.00 $ 245.00 $ 1,079.00\n\n-TRAINING / TRAVEL $ 2,800.00 $ 4,600.00 $ 2,800.00 $ 2,800.00 $ 2,000.00 $ 6,300.00 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ 21,300.00\n\n-Training classes $ 1,600.00 $ 2,400.00 $ 1,400.00 $ 1,600.00 $ 1,200.00 $ 2,800.00 $ 11,000.00\n\n-Travel costs $ 1,200.00 $ 2,200.00 $ 1,400.00 $ 1,200.00 $ 800.00 $ 3,500.00 $ 10,300.00\n\n-MONTHLY TOTAL $ 129,682.00 $ 127,804.00 $ 125,565.00 $ 137,394.00 $ 128,255.00 $ 134,239.00 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ 782,939.00\n\n+EMPLOYEE COSTS $ 107,950.00 $ 107,950.00 $ 107,950.00 $ 111,760.00 $ 111,760.00 $ 111,760.00 $ - $ - $ - $ - $ - $ - $ 659,130.00\n\n+Wages $ 85,000.00 $ 85,000.00 $ 85,000.00 $ 88,000.00 $ 88,000.00 $ 88,000.00 $ 519,000.00\n\n+Benefits $ 22,950.00 $ 22,950.00 $ 22,950.00 $ 23,760.00 $ 23,760.00 $ 23,760.00 $ 140,130.00\n\n+OFFICE COSTS $ 11,387.00 $ 11,698.00 $ 11,692.00 $ 11,611.00 $ 11,508.00 $ 11,454.00 $ - $ - $ - $ - $ - $ - $ 69,350.00\n\n+Office lease $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 58,800.00\n\n+Gas $ 4.00 $ 430.00 $ 385.00 $ 230.00 $ 87.00 $ 88.00 $ 1,224.00\n\n+Electric $ 288.00 $ 278.00 $ 268.00 $ 299.00 $ 306.00 $ 290.00 $ 1,729.00\n\n+Water $ 35.00 $ 33.00 $ 34.00 $ 36.00 $ 34.00 $ 36.00 $ 208.00\n\n+Telephone $ 224.00 $ 235.00 $ 265.00 $ 245.00 $ 245.00 $ 220.00 $ 1,434.00\n\n+Internet access $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 1,080.00\n\n+Office supplies $ 256.00 $ 142.00 $ 160.00 $ 221.00 $ 256.00 $ 240.00 $ 1,275.00\n\n+Security $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 3,600.00\n\n+MARKETING COSTS $ 7,545.00 $ 3,556.00 $ 3,123.00 $ 11,223.00 $ 2,987.00 $ 4,725.00 $ - $ - $ - $ - $ - $ - $ 33,159.00\n\n+Web site hosting $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 3,000.00\n\n+Web site updates $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 1,500.00 $ 2,500.00\n\n+Collateral preparation $ 4,800.00 $ - $ - $ 5,500.00 $ - $ - $ 10,300.00\n\n+Collateral printing $ 100.00 $ 500.00 $ 100.00 $ 100.00 $ 600.00 $ 180.00 $ 1,580.00\n\n+Marketing events $ 1,800.00 $ 2,200.00 $ 2,200.00 $ 4,700.00 $ 1,500.00 $ 2,300.00 $ 14,700.00\n\n+Miscellaneous expenses $ 145.00 $ 156.00 $ 123.00 $ 223.00 $ 187.00 $ 245.00 $ 1,079.00\n\n+TRAINING / TRAVEL $ 2,800.00 $ 4,600.00 $ 2,800.00 $ 2,800.00 $ 2,000.00 $ 6,300.00 $ - $ - $ - $ - $ - $ - $ 21,300.00\n\n+Training classes $ 1,600.00 $ 2,400.00 $ 1,400.00 $ 1,600.00 $ 1,200.00 $ 2,800.00 $ 11,000.00\n\n+Travel costs $ 1,200.00 $ 2,200.00 $ 1,400.00 $ 1,200.00 $ 800.00 $ 3,500.00 $ 10,300.00\n\n+MONTHLY TOTAL $ 129,682.00 $ 127,804.00 $ 125,565.00 $ 137,394.00 $ 128,255.00 $ 134,239.00 $ - $ - $ - $ - $ - $ - $ 782,939.00\n\n ---PAGE---\n\n Market Financial Consulting\n\n EXPENSE VARIANCES\n\n Note: negative values mean actual expense is higher than planned expense\n\n January February March April May June July August September October November December Total\n\n-EMPLOYEE COSTS $ - 0 $ - 0 $ - 0 $ (635.00) $ (635.00) $ (635.00) $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ (1,905.00)\n\n-Wages $ - 0 $ - 0 $ - 0 $ (500.00) $ (500.00) $ (500.00) $ (1,500.00)\n\n-Benefits $ - 0 $ - 0 $ - 0 $ (135.00) $ (135.00) $ (135.00) $ (405.00)\n\n-OFFICE COSTS $ (17.00) $ 72.00 $ 78.00 $ (141.00) $ (38.00) $ 16.00 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ (30.00)\n\n-Office lease $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0\n\n-Gas $ (4.00) $ (30.00) $ 15.00 $ (130.00) $ 13.00 $ 12.00 $ (124.00)\n\n-Electric $ 12.00 $ 22.00 $ 32.00 $ 1.00 $ (6.00) $ 10.00 $ 71.00\n\n-Water $ 5.00 $ 7.00 $ 6.00 $ 4.00 $ 6.00 $ 4.00 $ 32.00\n\n-Telephone $ 26.00 $ 15.00 $ (15.00) $ 5.00 $ 5.00 $ 30.00 $ 66.00\n\n-Internet access $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0\n\n-Office supplies $ (56.00) $ 58.00 $ 40.00 $ (21.00) $ (56.00) $ (40.00) $ (75.00)\n\n-Security $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0\n\n-MARKETING COSTS $ 555.00 $ (456.00) $ (23.00) $ (123.00) $ 113.00 $ (825.00) $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ (759.00)\n\n-Web site hosting $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0\n\n-Web site updates $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ (500.00) $ (500.00)\n\n-Collateral preparation $ 200.00 $ - 0 $ - 0 $ (500.00) $ - 0 $ - 0 $ (300.00)\n\n-Collateral printing $ 100.00 $ (300.00) $ 100.00 $ 100.00 $ (400.00) $ 20.00 $ (380.00)\n\n-Marketing events $ 200.00 $ (200.00) $ (200.00) $ 300.00 $ 500.00 $ (300.00) $ 300.00\n\n-Miscellaneous expenses $ 55.00 $ 44.00 $ 77.00 $ (23.00) $ 13.00 $ (45.00) $ 121.00\n\n-TRAINING / TRAVEL $ 1,200.00 $ (600.00) $ 1,200.00 $ 1,200.00 $ 2,000.00 $ (2,300.00) $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ 2,700.00\n\n-Training classes $ 400.00 $ (400.00) $ 600.00 $ 400.00 $ 800.00 $ (800.00) $ 1,000.00\n\n-Travel costs $ 800.00 $ (200.00) $ 600.00 $ 800.00 $ 1,200.00 $ (1,500.00) $ 1,700.00\n\n-MONTHLY VARIANCE $ 1,738.00 $ (984.00) $ 1,255.00 $ 301.00 $ 1,440.00 $ (3,744.00) $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ - 0 $ 6.00\n+EMPLOYEE COSTS $ - $ - $ - $ (635.00) $ (635.00) $ (635.00) $ - $ - $ - $ - $ - $ - $ (1,905.00)\n\n+Wages $ - $ - $ - $ (500.00) $ (500.00) $ (500.00) $ (1,500.00)\n\n+Benefits $ - $ - $ - $ (135.00) $ (135.00) $ (135.00) $ (405.00)\n\n+OFFICE COSTS $ (17.00) $ 72.00 $ 78.00 $ (141.00) $ (38.00) $ 16.00 $ - $ - $ - $ - $ - $ - $ (30.00)\n\n+Office lease $ - $ - $ - $ - $ - $ - $ -\n\n+Gas $ (4.00) $ (30.00) $ 15.00 $ (130.00) $ 13.00 $ 12.00 $ (124.00)\n\n+Electric $ 12.00 $ 22.00 $ 32.00 $ 1.00 $ (6.00) $ 10.00 $ 71.00\n\n+Water $ 5.00 $ 7.00 $ 6.00 $ 4.00 $ 6.00 $ 4.00 $ 32.00\n\n+Telephone $ 26.00 $ 15.00 $ (15.00) $ 5.00 $ 5.00 $ 30.00 $ 66.00\n\n+Internet access $ - $ - $ - $ - $ - $ - $ -\n\n+Office supplies $ (56.00) $ 58.00 $ 40.00 $ (21.00) $ (56.00) $ (40.00) $ (75.00)\n\n+Security $ - $ - $ - $ - $ - $ - $ -\n\n+MARKETING COSTS $ 555.00 $ (456.00) $ (23.00) $ (123.00) $ 113.00 $ (825.00) $ - $ - $ - $ - $ - $ - $ (759.00)\n\n+Web site hosting $ - $ - $ - $ - $ - $ - $ -\n\n+Web site updates $ - $ - $ - $ - $ - $ (500.00) $ (500.00)\n\n+Collateral preparation $ 200.00 $ - $ - $ (500.00) $ - $ - $ (300.00)\n\n+Collateral printing $ 100.00 $ (300.00) $ 100.00 $ 100.00 $ (400.00) $ 20.00 $ (380.00)\n\n+Marketing events $ 200.00 $ (200.00) $ (200.00) $ 300.00 $ 500.00 $ (300.00) $ 300.00\n\n+Miscellaneous expenses $ 55.00 $ 44.00 $ 77.00 $ (23.00) $ 13.00 $ (45.00) $ 121.00\n\n+TRAINING / TRAVEL $ 1,200.00 $ (600.00) $ 1,200.00 $ 1,200.00 $ 2,000.00 $ (2,300.00) $ - $ - $ - $ - $ - $ - $ 2,700.00\n\n+Training classes $ 400.00 $ (400.00) $ 600.00 $ 400.00 $ 800.00 $ (800.00) $ 1,000.00\n\n+Travel costs $ 800.00 $ (200.00) $ 600.00 $ 800.00 $ 1,200.00 $ (1,500.00) $ 1,700.00\n\n+MONTHLY VARIANCE $ 1,738.00 $ (984.00) $ 1,255.00 $ 301.00 $ 1,440.00 $ (3,744.00) $ - $ - $ - $ - $ - $ - $ 6.00", + "visual_scores": [ + 0.816, + 0.7999, + 0.8033 + ], + "visual_avg": 0.8064, + "diff_images": [ + { + "page": 1, + "minipdf_img": "Business expenses budget2_p1_minipdf.png", + "reference_img": "Business expenses budget2_p1_reference.png", + "auxiliary_img": "Business expenses budget2_p1_libreoffice.png", + "heatmap_img": "Business expenses budget2_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1754, + 1241 + ], + "difference_bbox_px": [ + 229, + 75, + 1522, + 1124 + ], + "changed_pixels": 470506, + "changed_fraction": 0.216154, + "mean_abs_rgb": 11.7846, + "rmse_rgb": 35.2513, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Business expenses budget2_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "Business expenses budget2_p2_minipdf.png", + "reference_img": "Business expenses budget2_p2_reference.png", + "auxiliary_img": "Business expenses budget2_p2_libreoffice.png", + "heatmap_img": "Business expenses budget2_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1754, + 1241 + ], + "difference_bbox_px": [ + 204, + 75, + 1548, + 1163 + ], + "changed_pixels": 471683, + "changed_fraction": 0.216695, + "mean_abs_rgb": 11.0576, + "rmse_rgb": 32.6913, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Business expenses budget2_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "Business expenses budget2_p3_minipdf.png", + "reference_img": "Business expenses budget2_p3_reference.png", + "auxiliary_img": "Business expenses budget2_p3_libreoffice.png", + "heatmap_img": "Business expenses budget2_p3_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1754, + 1241 + ], + "difference_bbox_px": [ + 153, + 75, + 1598, + 1163 + ], + "changed_pixels": 435364, + "changed_fraction": 0.20001, + "mean_abs_rgb": 10.0189, + "rmse_rgb": 29.5823, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Business expenses budget2_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.8594 + }, + { + "name": "Business plan checklist with SWOT analysis1", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "Business plan checklist with SWOT analysis1", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Business plan checklist with SWOT analysis1.xlsx", + "suite": "issue", + "minipdf_size": 40955, + "reference_size": 64252, + "pdf_valid": true, + "minipdf_pages": 1, + "reference_pages": 1, + "compared_pages": 3, + "text_similarity": 0.8583, + "flat_text_similarity": 0.6478, + "word_text_similarity": 0.8583, + "text_diff": "--- minipdf/Business plan checklist with SWOT analysis1.pdf\n+++ reference/Business plan checklist with SWOT analysis1.pdf\n@@ -1,35 +1,37 @@\n Northwind Traders\n\n Business planning checklist\n\n-Using the strength, weakness, opportunity, and threat (SWOT) analysis framework, develop a checklist of the key activi\n\n-ties that need to be performed when preparing a formal business plan in the table, below.\n\n+Using the strength, weakness, opportunity, and threat (SWOT) analysis framework, develop a checklist of the key activities\n\n+that need to be performed when preparing a formal business plan in the table, below.\n\n Activity Owner Completion date\n\n-Strengths: Define the company's current mission statemen\n\n-Luca Richter 1/9/23\n\n-t.\n\n-Strengths: Identify market segments in which the compan\n\n-y will participate by conducting primary and secondary ma Dylan Williams 1/9/23\n\n-rket research.\n\n-Strengths: Identify the company's value proposition and h\n\n-Kristin Orav 1/16/23\n\n-ow it will differentiate itself within the marketplace.\n\n-Weaknesses: Identify any barriers to market entry (for exa\n\n-mple, capital requirements, technical barriers, patents, an Flora Berggren 1/6/23\n\n-d process barriers) that the company needs to overcome.\n\n-Weaknesses: Identify any risks inherent to the organizatio\n\n-n that need to be mitigated so that the company can realiz Flora Berggren 1/6/23\n\n-e the business plan.\n\n+Strengths: Define the company's current mission\n\n+Luca Richter 1/9/2023\n\n+statement.\n\n+Strengths: Identify market segments in which the\n\n+company will participate by conducting primary and Dylan Williams 1/9/2023\n\n+secondary market research.\n\n+Strengths: Identify the company's value proposition and\n\n+Kristin Orav 1/16/2023\n\n+how it will differentiate itself within the marketplace.\n\n+Weaknesses: Identify any barriers to market entry (for\n\n+example, capital requirements, technical barriers, patents,\n\n+Flora Berggren 1/6/2023\n\n+and process barriers) that the company needs to\n\n+overcome.\n\n+Weaknesses: Identify any risks inherent to the\n\n+organization that need to be mitigated so that the company Flora Berggren 1/6/2023\n\n+can realize the business plan.\n\n Opportunities: Identify areas where the current market is\n\n-Kristin Orav 1/6/23\n\n+Kristin Orav 1/6/2023\n\n underserved that provide an opportunity for the company.\n\n-Opportunities: Identify any key processes, intellectual capi\n\n-tal, or other resources that the company can use to its adv Ian Hansson 1/9/23\n\n-antage in the marketplace.\n\n-Threats: Identify primary competitors, and then analyze co\n\n-mpetitor performance by using all available data and additi Gaurav Cheema 1/9/23\n\n-onal data that can be verified.\n\n-Threats: Identify secondary and potential future competito\n\n-Chela Arapelli 1/16/23\n\n-rs that might affect the business plan.\n\n-Threats: Develop strategies for mitigating primary and sec\n\n-Gaurav Cheema 1/16/23\n\n-ondary competitive threats.\n+Opportunities: Identify any key processes, intellectual\n\n+capital, or other resources that the company can use to its Ian Hansson 1/9/2023\n\n+advantage in the marketplace.\n\n+Threats: Identify primary competitors, and then analyze\n\n+competitor performance by using all available data and Gaurav Cheema 1/9/2023\n\n+additional data that can be verified.\n\n+Threats: Identify secondary and potential future\n\n+Chela Arapelli 1/16/2023\n\n+competitors that might affect the business plan.\n\n+Threats: Develop strategies for mitigating primary and\n\n+Gaurav Cheema 1/16/2023\n\n+secondary competitive threats.", + "visual_scores": [ + 0.582 + ], + "visual_avg": 0.582, + "diff_images": [ + { + "page": 1, + "minipdf_img": "Business plan checklist with SWOT analysis1_p1_minipdf.png", + "reference_img": "Business plan checklist with SWOT analysis1_p1_reference.png", + "auxiliary_img": "Business plan checklist with SWOT analysis1_p1_libreoffice.png", + "heatmap_img": "Business plan checklist with SWOT analysis1_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 88, + 62, + 1214, + 1448 + ], + "changed_pixels": 955797, + "changed_fraction": 0.439101, + "mean_abs_rgb": 33.8616, + "rmse_rgb": 70.0944, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Business plan checklist with SWOT analysis1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.7761 + }, + { + "name": "Event budget1", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "Event budget1", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Event budget1.xlsx", + "suite": "issue", + "minipdf_size": 61943, + "reference_size": 121223, + "pdf_valid": true, + "minipdf_pages": 7, + "reference_pages": 5, + "compared_pages": 3, + "text_similarity": 0.9859, + "flat_text_similarity": 0.9859, + "word_text_similarity": 0.9773, + "text_diff": "--- minipdf/Event budget1.pdf\n+++ reference/Event budget1.pdf\n@@ -1,15 +1,16 @@\n ABOUT THIS TEMPLATE\n\n-Use this event budget workbook to track expenses incurred on and income earned from an event.\n\n+Use this event budget workbook to track expenses incurred on and income earned from an\n\n+event.\n\n Enter details in tables in expenses worksheet and income worksheet.\n\n Total expenses and total income are auto-calculated.\n\n Profit & loss summary and chart are auto-updated in profit-loss summary worksheet.\n\n Note:\n\n-Additional instructions have been provided in column A in each worksheet. This text has been intentio\n\n-nally hidden. To remove text, select column A, then select DELETE.\n\n-To learn more about tables, press SHIFT and then F10 within a table, select the TABLE option, and th\n\n-en select ALTERNATIVE TEXT\n\n+Additional instructions have been provided in column A in each worksheet. This text has been\n\n+intentionally hidden. To remove text, select column A, then select DELETE.\n\n+To learn more about tables, press SHIFT and then F10 within a table, select the TABLE option, and\n\n+then select ALTERNATIVE TEXT\n\n ---PAGE---\n\n-Event budget EXPENSE\n\n+Event budget EXPENSES\n\n Estimated Actual\n\n TOTAL EXPENSES\n\n $882.00 $333.00\n\n@@ -31,10 +32,10 @@\n Photocopying/Printing $20.00 Gifts $100.00\n\n Postage Total $100.00 $0.00\n\n Total $20.00 $0.00\n\n----PAGE---\n\n Miscellaneous Estimated Actual\n\n Telephone $13.00\n\n Transportation $12.00\n\n Stationery supplies\n\n Fax services\n\n-Total $12.00 $13.00\n+Total $12.00 $13.00\n\n+---PAGE---", + "visual_scores": [ + 0.961, + 0.5324, + 0.7295 + ], + "visual_avg": 0.741, + "diff_images": [ + { + "page": 1, + "minipdf_img": "Event budget1_p1_minipdf.png", + "reference_img": "Event budget1_p1_reference.png", + "auxiliary_img": "Event budget1_p1_libreoffice.png", + "heatmap_img": "Event budget1_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 73, + 153, + 1165, + 770 + ], + "changed_pixels": 93832, + "changed_fraction": 0.043107, + "mean_abs_rgb": 6.6463, + "rmse_rgb": 36.9543, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Event budget1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "Event budget1_p2_minipdf.png", + "reference_img": "Event budget1_p2_reference.png", + "auxiliary_img": "Event budget1_p2_libreoffice.png", + "heatmap_img": "Event budget1_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 61, + 143, + 1211, + 1625 + ], + "changed_pixels": 1056182, + "changed_fraction": 0.485219, + "mean_abs_rgb": 22.4906, + "rmse_rgb": 46.7637, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Event budget1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "Event budget1_p3_minipdf.png", + "reference_img": "Event budget1_p3_reference.png", + "auxiliary_img": "Event budget1_p3_libreoffice.png", + "heatmap_img": "Event budget1_p3_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 62, + 114, + 1211, + 568 + ], + "changed_pixels": 481866, + "changed_fraction": 0.221373, + "mean_abs_rgb": 4.318, + "rmse_rgb": 14.6122, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Event budget1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.7908 + }, + { + "name": "Expense report basic1", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "Expense report basic1", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Expense report basic1.xlsx", + "suite": "issue", + "minipdf_size": 48922, + "reference_size": 47896, + "pdf_valid": true, + "minipdf_pages": 1, + "reference_pages": 1, + "compared_pages": 3, + "text_similarity": 0.9556, + "flat_text_similarity": 0.942, + "word_text_similarity": 0.9556, + "text_diff": "--- minipdf/Expense report basic1.pdf\n+++ reference/Expense report basic1.pdf\n@@ -6,7 +6,7 @@\n Name Cora Thomas Position Sales rep SSN 123-45-****\n\n Department Marketing & sales Manager Liane Cormier Employee ID 8675309\n\n Date Account Description Hotel Transport Fuel Meals Phone Entertainment Misc. Total\n\n-10/5/23 Wide World Importers Networking $111.00 $250.00 $60.00 $50.00 $0.00 $300.00 $25.00 $796.00\n\n+10/5/2023 Wide World Importers Networking $111.00 $250.00 $60.00 $50.00 $0.00 $300.00 $25.00 $796.00\n\n $0.00\n\n $0.00\n\n $0.00\n\n@@ -16,10 +16,8 @@\n $0.00\n\n $0.00\n\n Total $111.00 $250.00 $60.00 $50.00 $0.00 $300.00 $25.00 $796.00\n\n-$796.00\n\n-Subtotal\n\n-$0.00\n\n+Subtotal $796.00\n\n+Advances $0.00\n\n APPROVED\n\n-NOTES Advances\n\n-$796.00\n\n-Total\n+NOTES\n\n+Total $796.00", + "visual_scores": [ + 0.5218 + ], + "visual_avg": 0.5218, + "diff_images": [ + { + "page": 1, + "minipdf_img": "Expense report basic1_p1_minipdf.png", + "reference_img": "Expense report basic1_p1_reference.png", + "auxiliary_img": "Expense report basic1_p1_libreoffice.png", + "heatmap_img": "Expense report basic1_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1754, + 1241 + ], + "difference_bbox_px": [ + 63, + 59, + 1690, + 856 + ], + "changed_pixels": 458410, + "changed_fraction": 0.210597, + "mean_abs_rgb": 6.7153, + "rmse_rgb": 23.9935, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Expense report basic1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.791 + }, + { + "name": "Grocery list1", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "Grocery list1", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Grocery list1.xlsx", + "suite": "issue", + "minipdf_size": 34874, + "reference_size": 71396, + "pdf_valid": true, + "minipdf_pages": 1, + "reference_pages": 1, + "compared_pages": 3, + "text_similarity": 0.8403, + "flat_text_similarity": 0.6784, + "word_text_similarity": 0.8403, + "text_diff": "--- minipdf/Grocery list1.pdf\n+++ reference/Grocery list1.pdf\n@@ -1,48 +1,28 @@\n ORCHARD GROCERY HOME DELIVERY LOCAL MARKET OTHER GRAND TOTAL\n\n GROCERY LIST\n\n-Customize this list. Replace the entries above with your own to track your most frequentl\n\n-y used categories.\n\n+Customize this list. Replace the entries above with your own to track your\n\n $11.95 $6.12 $31.85 $216.60 $3.99 $270.51\n\n+most frequently used categories.\n\n DONE? ITEM STORE CATEGORY QTY UNIT UNIT PRICE TOTAL NOTE\n\n-Yes Peaches Azure River Farm ORCHARD lbs $2.99 $5.98\n\n-2\n\n-Yes Apples Azure River Farm ORCHARD lbs $1.99 $5.97 Have coupon\n\n-3\n\n-Bananas Wide World Importers OTHER bunch $3.99 $3.99\n\n-1\n\n-Yes Lettuce Market LOCAL MARKET head $2.29 $4.58\n\n-2\n\n-Tomatoes Market LOCAL MARKET lbs $3.49 $13.96\n\n-4\n\n-Yes Squash Market LOCAL MARKET each $1.50 $3.00\n\n-2\n\n-Yes Celery Wide World Importers LOCAL MARKET bunch $1.99 $3.98\n\n-2\n\n-Cucumber Market LOCAL MARKET lbs $2.29 $2.29\n\n-1\n\n-Mushrooms Wide World Importers GROCERY lbs $2.25 $1.13\n\n-0.5\n\n-HOME DELIVER\n\n-Yes Milk Local Farmer gal $3.99 $7.98\n\n-Y 2\n\n-HOME DELIVER Variety of block c\n\n-Yes Cheese Local Farmer lbs $9.99 $9.99\n\n-Y 1 heeses\n\n-HOME DELIVER\n\n-Yes Eggs Local Farmer doz $3.50 $7.00\n\n-Y 2\n\n-HOME DELIVER\n\n-Yes Cottage cheese Local Farmer 16 oz $3.89 $3.89\n\n-Y 1\n\n-HOME DELIVER\n\n-Yes Sour cream Local Farmer 8 oz $2.99 $2.99\n\n-Y 1\n\n-Yogurt Wide World Importers GROCERY 16 oz $4.99 $4.99 Greek with honey\n\n-1\n\n-Bacon wrapped fil\n\n-Beef Farmer's Market LOCAL MARKET lbs $7.99 $79.90\n\n-10 ets\n\n-Wild Salmon Fish Market LOCAL MARKET lbs $8.99 $53.94\n\n-6\n\n-Alaskan King Crab Legs Fish Market LOCAL MARKET lbs $10.99 $54.95\n\n-5\n+Yes Peaches Azure River Farm ORCHARD 2 lbs $2.99 $5.98\n\n+Yes Apples Azure River Farm ORCHARD 3 lbs $1.99 $5.97 Have coupon\n\n+Bananas Wide World Importers OTHER 1 bunch $3.99 $3.99\n\n+Yes Lettuce Market LOCAL MARKET 2 head $2.29 $4.58\n\n+Tomatoes Market LOCAL MARKET 4 lbs $3.49 $13.96\n\n+Yes Squash Market LOCAL MARKET 2 each $1.50 $3.00\n\n+Yes Celery Wide World Importers LOCAL MARKET 2 bunch $1.99 $3.98\n\n+Cucumber Market LOCAL MARKET 1 lbs $2.29 $2.29\n\n+Mushrooms Wide World Importers GROCERY 0.5 lbs $2.25 $1.13\n\n+Yes Milk Local Farmer HOME DELIVERY 2 gal $3.99 $7.98\n\n+Variety of block\n\n+Yes Cheese Local Farmer HOME DELIVERY 1 lbs $9.99 $9.99\n\n+cheeses\n\n+Yes Eggs Local Farmer HOME DELIVERY 2 doz $3.50 $7.00\n\n+Yes Cottage cheese Local Farmer HOME DELIVERY 1 16 oz $3.89 $3.89\n\n+Yes Sour cream Local Farmer HOME DELIVERY 1 8 oz $2.99 $2.99\n\n+Yogurt Wide World Importers GROCERY 1 16 oz $4.99 $4.99 Greek with honey\n\n+Bacon wrapped\n\n+Beef Farmer's Market LOCAL MARKET 10 lbs $7.99 $79.90\n\n+filets\n\n+Wild Salmon Fish Market LOCAL MARKET 6 lbs $8.99 $53.94\n\n+Alaskan King Crab Legs Fish Market LOCAL MARKET 5 lbs $10.99 $54.95", + "visual_scores": [ + 0.6961 + ], + "visual_avg": 0.6961, + "diff_images": [ + { + "page": 1, + "minipdf_img": "Grocery list1_p1_minipdf.png", + "reference_img": "Grocery list1_p1_reference.png", + "auxiliary_img": "Grocery list1_p1_libreoffice.png", + "heatmap_img": "Grocery list1_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 43, + 77, + 1229, + 960 + ], + "changed_pixels": 495398, + "changed_fraction": 0.22759, + "mean_abs_rgb": 17.0865, + "rmse_rgb": 50.1037, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Grocery list1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.8146 + }, + { + "name": "Issue202609031340", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "Issue202609031340", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Issue202609031340.xlsx", + "suite": "issue", + "minipdf_size": 446118, + "reference_size": 346206, + "pdf_valid": true, + "minipdf_pages": 4, + "reference_pages": 4, + "compared_pages": 3, + "text_similarity": 0.9022, + "flat_text_similarity": 0.9011, + "word_text_similarity": 0.793, + "text_diff": "--- minipdf/Issue202609031340.pdf\n+++ reference/Issue202609031340.pdf\n@@ -1,30 +1,34 @@\n 表单编号 XXX-XXX-051-01\n\n-文件编号 QA-SIPI-XXXX-01-1-1\n\n-XXXXXX有限公司\n\n+XXXXXX有限公司 文件编号QA-SIPI-XXXX-01-1-1\n\n 发行日期 2025-04-11\n\n 文件版本 03 修订日期 2025-11-25\n\n 产品穴号 详见注意事项 产品单重 20.45±1.05 g\n\n-注塑制程检验标准书 ¢1.18*10MM(320度加强\n\n+注塑制程检验标准书\n\n+¢1.18*10MM(320度加强\n\n 附件编号 / 销钉规格\n\n 型)\n\n 产品型号 XXXX 部件名称 盖塑胶件 抽样计划 ANSI/ASQ Z1.4Ⅱ 巡检频率 2H/次\n\n-MO25XXXX0100/MO2\n\n+MO25XXXX0100/MO\n\n 模具编号 部件材质 PETG 允收水准 CR: 0 MA:1.0 MI: 2.0\n\n-5XXXX0110\n\n+25XXXX0110\n\n 检验条件 检验光源角度:45°-90°,检验距离30cm,光照900~1200lux\n\n 参考 图纸文件编号:XXXX系列 内部图纸 2025.4.10\n\n 项目 检验工具 巡检内容\n\n 图 部件图纸编号:HKXXXX-01-RB\n\n-结 目视、图纸 1、首件样品整模结构符合图纸设计、同PPS结构一致;\n\n-构 、PPS 2、制程巡检整模产品结构需同首件结构一致。\n\n-颜 目视、限度 1、首件样品颜色需无限接近限度样中的标准样;\n\n-色 样 2、制程巡检产品颜色需同首件颜色一致。\n\n-外 目视、限度 1、注塑成型外观缺陷大小不可超出限度样板;\n\n-观 样 2、其它外观缺陷无限度样的按常规通用标准判定。\n\n+结 目视、图 1、首件样品整模结构符合图纸设计、同PPS结构一致;\n\n+构 纸、PPS 2、制程巡检整模产品结构需同首件结构一致。\n\n+颜 目视、限 1、首件样品颜色需无限接近限度样中的标准样;\n\n+色 度样 2、制程巡检产品颜色需同首件颜色一致。\n\n+外 目视、限 1、注塑成型外观缺陷大小不可超出限度样板;\n\n+观 度样 2、其它外观缺陷无限度样的按常规通用标准判定。\n\n 包装 目视 参照注塑作业指导书(SOP)\n\n 仪器 项目 管控标准(mm) 测量位置 频率\n\n-卡尺 A 68.16 +0.05/-0.17 外形最长距离 1次/班\n\n-卡尺 B 62.03 +0.05/-0.20 外形最宽距离 1次/班\n\n+1次/\n\n+卡尺 A 68.16 +0.05/-0.17 外形最长距离\n\n+班\n\n+1次/\n\n+卡尺 B 62.03 +0.05/-0.20 外形最宽距离\n\n+班\n\n 卡尺 C 27.9 +0.03/-0.05 顶部装饰片槽长度 首件\n\n 卡尺 D 18.87 +0.00/-0.10 后钮侧面装饰片槽长度 首件\n\n 卡尺 E 6.70+0.00/-0.05 后钮侧面大卡槽宽度 首件\n\n@@ -36,44 +40,62 @@\n 后钮针孔中分线中心点至前扣弧\n\n 投影仪 J 53.93+0.04/-0.03 6H\n\n 线中心点距离\n\n-卡尺 K 18.61±0.05 后钮针孔左右间距 1次/班\n\n-高度规 L*2 4.65+0.00/-0.10 后钮针孔中心至口部平面间距 1次/班\n\n-参考资料/项目 代码 取样数量频率 代码 取样数量频率 注意事项及品质履历\n\n+1次/\n\n+卡尺 K 18.61±0.05 后钮针孔左右间距\n\n+班\n\n+1次/\n\n+高度规 L*2 4.65+0.00/-0.10 后钮针孔中心至口部平面间距\n\n+班\n\n+产品后钮装饰片槽缺\n\n+口竖边同卡尺贴紧\n\n+68.16 mm 62.03 mm\n\n+产品口部平面同\n\n+产品口部平面同\n\n+卡尺上平面平行\n\n+卡尺上平面平行\n\n+产品后钮装饰片槽缺\n\n+口竖边同卡尺贴紧\n\n+0.00 ~ 300mm卡尺\n\n+参考资料/项目 代码 取样数量 频率 代码 取样数量 频率 注意事项及品质履历\n\n 1.MO25XXXX0100:1#~4#/MO25XXXX0110:5#~12#\n\n 尺\n\n 寸\n\n 组\n\n 组装制程检验标\n\n-准书 1# 一模 1次/班 2# 一模 1次/班\n\n+1次/ 1次/\n\n+准书 1# 一模 2# 一模\n\n+班 班\n\n 合\n\n-XXXX-00组装成\n\n+XXXX-\n\n 功\n\n-3# 一模 1次/班 5# 一模 1次/班\n\n-品\n\n+1次/ 1次/\n\n+3# 一模 5# 一模\n\n+00组装成品 班 班\n\n 能\n\n-6# 一模 1次/班\n\n+1次/\n\n+6# 一模\n\n+班\n\n+日期 版本 工程担当 品质担当 修 订 内 容\n\n+2025/4/11 00 AAAA AAA 初版发行\n\n 修\n\n-日期 版本工程担当 品质担当 修 订 内 容\n\n+---PAGE---\n\n+修\n\n+A:68.16 +0.05/-0.13改为68.16 +0.05/-0.17;B:62.03 +0.05/-0.10改为62.03 +0.05/-0.20;D:18.87\n\n 订\n\n-2025/4/11 00 AAAA AAA 初版发行\n\n++0.00/-0.05改为18.87\n\n+2025/5/12 01 BBBB BBB\n\n 记\n\n----PAGE---\n\n-A:68.16 +0.05/-0.13改为68.16 +0.05/-0.17;B:62.03 +0.05/-0.10改为62.03 +0.05/-0.20;D:18.87 +0.\n\n-2025/5/12 01 BBBB BBB 00/-0.05改为18.87 +0.00/-0.10;I:8.35+0.00/-0.16改为8.35+0.10/-0.05;J:53.93+0.00/-0.10改为53.93\n\n-+0.05/-0.10;L*2:4.65±0.05改成4.65+0.00/-0.10;更新检验频率\n\n++0.00/-0.10;I:8.35+0.00/-0.16改为8.35+0.10/-0.05;J:53.93+0.00/-0.10改为53.93+0.05/-0.10;\n\n+录 L*2:4.65±0.05改成4.65+0.00/-0.10;更新检验频率\n\n 2025/8/6 02 CCCC CCCC 新增模具编号:MO25XXXX0110\n\n 2025/11/25 03 DDDD DDDD J:53.93+0.05/-0.10改为53.93+0.04/-0.03\n\n 研 制\n\n 制 品\n\n-发 造\n\n+审 发 审 造 审 审 制\n\n 造 保\n\n-工 工 制\n\n+核 工 核 工 核 核 作\n\n 部 部\n\n-程 程 作\n\n-审 审\n\n-审 审\n\n-核 核\n\n-核 核\n\n+程 程\n\n ---PAGE---\n\n 文件编号 QA-SIPI-XXXX-01-1-1 表单编号 QA-FM-051-01\n\n XXXXXX有限公司\n\n@@ -83,7 +105,5 @@\n 部件材质 / 附件编号 /\n\n 产品品质履历(SIP附件)\n\n 版本 日期 问题描述 图片\n\n-00 7/30/25 口部有麻点印NG,图1\n\n-审 制\n\n-刘伟鹏\n\n-核 作\n+00 7/30/2025 口部有麻点印NG,图1\n\n+图 1", + "visual_scores": [ + 0.898, + 0.9859, + 0.8947 + ], + "visual_avg": 0.9262, + "diff_images": [ + { + "page": 1, + "minipdf_img": "Issue202609031340_p1_minipdf.png", + "reference_img": "Issue202609031340_p1_reference.png", + "auxiliary_img": "Issue202609031340_p1_libreoffice.png", + "heatmap_img": "Issue202609031340_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 28, + 55, + 1212, + 1697 + ], + "changed_pixels": 443271, + "changed_fraction": 0.203642, + "mean_abs_rgb": 27.4178, + "rmse_rgb": 71.7062, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Issue202609031340_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "Issue202609031340_p2_minipdf.png", + "reference_img": "Issue202609031340_p2_reference.png", + "auxiliary_img": "Issue202609031340_p2_libreoffice.png", + "heatmap_img": "Issue202609031340_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 28, + 738, + 1212, + 1014 + ], + "changed_pixels": 59016, + "changed_fraction": 0.027112, + "mean_abs_rgb": 3.6137, + "rmse_rgb": 25.2653, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Issue202609031340_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "Issue202609031340_p3_minipdf.png", + "reference_img": "Issue202609031340_p3_reference.png", + "auxiliary_img": "Issue202609031340_p3_libreoffice.png", + "heatmap_img": "Issue202609031340_p3_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 34, + 29, + 1196, + 1725 + ], + "changed_pixels": 258293, + "changed_fraction": 0.118662, + "mean_abs_rgb": 16.8844, + "rmse_rgb": 56.4854, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Issue202609031340_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.9314 + }, + { + "name": "payroll-calculator_f", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "payroll-calculator_f", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/payroll-calculator_f.xlsx", + "suite": "issue", + "minipdf_size": 1021293, + "reference_size": 606513, + "pdf_valid": true, + "minipdf_pages": 36, + "reference_pages": 29, + "compared_pages": 3, + "text_similarity": 0.8386, + "flat_text_similarity": 0.6057, + "word_text_similarity": 0.8386, + "text_diff": "--- minipdf/payroll-calculator_f.pdf\n+++ reference/payroll-calculator_f.pdf\n@@ -1,43 +1,49 @@\n Employee Register\n\n-Information contained in this employee register is highly confidential Filing Status (W-4 before 2020) Filing Status (W-4 from 2020 or later)\n\n-Step 2 Step 3\n\n-Additional Amount to Wit\n\n+Information contained in this employee register is highly confidential Filing Status (W-4 before 2020) Filing St\n\n+Step 2\n\n+Additional Amount to\n\n Annual Regular Overtime Exempt\n\n-Pay Federal hhold\n\n+Pay Federal Withhold\n\n ID Employee's Name M/F Hire Date Occupation Salary Hourly Hourly from W-4 Form Filing Status Filing Status\n\n-Frequency Allowance (With every paycheck) Dependents Other\n\n+Frequency Allowance (With every paycheck)\n\n ($) Rate ($) Rate ($) Overtime Box in (c)\n\n-($) Under Age 17 Dependents\n\n+($)\n\n 1 Adam Jones M 15-Feb-13 Senior Accountant 42,000.00 20.19 30.29 Yes Monthly W-4 (2020 or later) Exempt 2 50 Single Not Checked\n\n 2 Nichola Brown F 28-Sep-11 CR Manager 54,481.00 26.19 39.29 Yes Monthly W-4 (2020 or later) Married 4 Single Not Checked\n\n 3 Benny Erwin M 11-May-11 Applications PM 48,785.00 23.45 35.18 No Monthly W-4 (before 2020) Married 4\n\n+When adding more rows, insert new rows above this one\n\n+Page 1 of 29\n\n ---PAGE---\n\n-When adding more rows, insert new rows above this one\n\n+tatus (W-4 from 2020 or later) Pre-Tax Adjustments Post-Tax Adjustments Post-Tax Deductions\n\n+Step 3 Step 4\n\n+Tax Deferral Plan Health Insurance Other State Local Other Social\n\n+(b) (c) Exempt from Insurance\n\n+(401k) Premiums Withholdings Tax Tax Deductions Address Security\n\n+Dependents Other Deductions Extra FICA ($)\n\n+(%) ($) ($) (%) (%) ($) #\n\n+Under Age 17 Dependents ($) withholding\n\n+($)\n\n+100 50 4.00% - - Not Exempt 4.63% 0.00% 45.00 - 111 Street, Town/City, ST, 00000 ***-**-6789\n\n+3.00% - - Not Exempt 4.63% 0.00% 42.00 - 111 Street, Town/City, ST, 00000 ***-**-4321\n\n+4.50% - - Not Exempt 4.63% 0.00% 14.00 30.00 111 Street, Town/City, ST, 00000 ***-**-0000\n\n+Page 2 of 29\n\n ---PAGE---\n\n © 2013 - 2026 Spreadsheet123 LTD\n\n-Pre-Tax Adjustments Post-Tax Adjustments Post-Tax Deductions Payroll Calculator\n\n-Step 4\n\n-Tax Deferral Pl Health Insuranc Other Withholdi Exempt from State Local Other Deduct Social\n\n-(b) (c) Insurance\n\n-an (401k) e Premiums ngs Tax Tax ions Address Security\n\n-Deductions Extra ($)\n\n-(%) ($) ($) FICA (%) (%) ($) #\n\n-($) withholding\n\n-($)\n\n-100 50 4.00% - 0 - 0 Not Exempt 4.63% 0.00% 45.00 - 0 111 Street, Town/City, ST, 00000 ***-**-6789\n\n-3.00% - 0 - 0 Not Exempt 4.63% 0.00% 42.00 - 0 111 Street, Town/City, ST, 00000 ***-**-4321\n\n-4.50% - 0 - 0 Not Exempt 4.63% 0.00% 14.00 30.00 111 Street, Town/City, ST, 00000 ***-**-0000\n\n+Payroll Calculator\n\n Disclaimer:\n\n-This template is provided as-is for informatio\n\n-nal, illustrative, or/and educational purposes\n\n-only and under no circumstances should be\n\n-construed as financial, legal, or tax advice.\n\n-The results provided by this calculator are o\n\n-nly estimates and may not apply to your spe\n\n-cific situation.\n\n-Spreadsheet123 LTD strongly recommends\n\n-seeking the advice of qualified professionals\n\n-regarding financial or legal decisions.\n\n-Spreadsheet123 LTD reserves the right to m\n\n-ake changes to this software without notifica\n\n-tion.\n+This template is provided as-is for\n\n+informational, illustrative, or/and\n\n+educational purposes only and under no\n\n+circumstances should be construed as\n\n+financial, legal, or tax advice.\n\n+The results provided by this calculator are\n\n+only estimates and may not apply to your\n\n+specific situation.\n\n+Spreadsheet123 LTD strongly\n\n+recommends seeking the advice of\n\n+qualified professionals regarding financial\n\n+or legal decisions.\n\n+Spreadsheet123 LTD reserves the right to\n\n+make changes to this software without\n\n+notification.\n\n+Page 3 of 29", + "visual_scores": [ + 0.6064, + 0.2485, + 0.5957 + ], + "visual_avg": 0.4835, + "diff_images": [ + { + "page": 1, + "minipdf_img": "payroll-calculator_f_p1_minipdf.png", + "reference_img": "payroll-calculator_f_p1_reference.png", + "auxiliary_img": "payroll-calculator_f_p1_libreoffice.png", + "heatmap_img": "payroll-calculator_f_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1754, + 1241 + ], + "difference_bbox_px": [ + 23, + 29, + 1754, + 1160 + ], + "changed_pixels": 532215, + "changed_fraction": 0.244504, + "mean_abs_rgb": 17.5896, + "rmse_rgb": 42.8265, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "payroll-calculator_f_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "payroll-calculator_f_p2_minipdf.png", + "reference_img": "payroll-calculator_f_p2_reference.png", + "auxiliary_img": "payroll-calculator_f_p2_libreoffice.png", + "heatmap_img": "payroll-calculator_f_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1754, + 1241 + ], + "difference_bbox_px": [ + 23, + 29, + 1682, + 1160 + ], + "changed_pixels": 394684, + "changed_fraction": 0.181321, + "mean_abs_rgb": 19.5001, + "rmse_rgb": 53.1636, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "payroll-calculator_f_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "payroll-calculator_f_p3_minipdf.png", + "reference_img": "payroll-calculator_f_p3_reference.png", + "auxiliary_img": "payroll-calculator_f_p3_libreoffice.png", + "heatmap_img": "payroll-calculator_f_p3_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1754, + 1241 + ], + "difference_bbox_px": [ + 23, + 29, + 1504, + 1160 + ], + "changed_pixels": 488426, + "changed_fraction": 0.224387, + "mean_abs_rgb": 21.1973, + "rmse_rgb": 55.8296, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "payroll-calculator_f_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.6288 + }, + { + "name": "PO_anonymized", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "PO_anonymized", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/PO_anonymized.xlsx", + "suite": "issue", + "minipdf_size": 165573, + "reference_size": 409049, + "pdf_valid": true, + "minipdf_pages": 69, + "reference_pages": 9, + "compared_pages": 3, + "text_similarity": 0.9385, + "flat_text_similarity": 0.9341, + "word_text_similarity": 0.8963, + "text_diff": "--- minipdf/PO_anonymized.pdf\n+++ reference/PO_anonymized.pdf\n@@ -1,36 +1,35 @@\n-Final Inspec Ɵon Report\n\n+Final Inspection Report\n\n Client: Global Tech Supplier: Alpha Labs Client PO#: PO-XX328\n\n-XXX office: TX Inspector: Sam Davis XXX PO#: 21668732\n\n-PM: Avery Wilson Inspec Ɵon Site: Greenfield county, Metro city PO Quan Ɵty: N/A\n\n-Project#: XXBFNO6 Inspec Ɵon date: 24-Jan-2026 Batch Quan Ɵty: 88907PCS\n\n-Date of Manufacture: 1/18/2026~1/21/2026 Lot ID: 9928-539898(1st lot)\n\n+XXX office: TX Inspector: Sam Davis XXX PO#: 21668732\n\n+PM: Avery Wilson Inspection Site: Greenfield county, Metro city PO Quantity: N/A\n\n+Project#: XXBFNO6 Inspection date: 24-Jan-2026 Batch Quantity: 88907PCS\n\n+Date of Manufacture: 1/18/2026~1/21/2026 Lot ID: 9928-539898(1st lot)\n\n Item#: XX-ABC-68878-C\n\n-Descrip Ɵon: Standard Component Assembly with Seal Insert\n\n-Sign-off sample: Yes Approved drawings Yes (Drawing#: K1VRJNVG REV: C )\n\n+Description: Standard Component Assembly with Seal Insert\n\n+Sign-off sample: Yes Approved drawings Yes (Drawing#: K1VRJNVG REV: C )\n\n Ship mark Yes Approved ranges Yes Ship to TBA\n\n-Inspec Ɵon Result: Accept\n\n-Re-in No\n\n-( Comm )\n\n-Inspec Ɵon Result Summary\n\n-Sample size Comment Remark\n\n-Check points\n\n+Inspection Result: Accept\n\n+Re-inspection: No\n\n+( Comment: )\n\n+Inspection Result Summary\n\n+Check points Sample size Comment Remark\n\n Dimension 20 Conformed\n\n-Aesthe Ɵcs 500 Conformed\n\n+Aesthetics 500 Conformed\n\n Color 500 Conformed\n\n Material N/A\n\n-Decora Ɵon 500 Conformed\n\n+Decoration 500 Conformed\n\n Packaging N/A\n\n Labeling N/A\n\n Assortment N/A\n\n Ship mark 1 Conformed\n\n Workmanship 500 Conformed\n\n-Func Ɵon 20 Conformed\n\n-Aesthe Ɵc InspecƟon\n\n-Inspec Ɵon method: ANSI/ASQ Z1.4 Sampling plan: Single sampling normal inspec Ɵon Sampling level: Level 2\n\n-Acceptable Quality Level (AQL): Cri Ɵcal A: 0 Cri Ɵcal B: 0.65 Major: 1.5 Minor: 4.0\n\n+Function 20 Conformed\n\n+Aesthetic Inspection\n\n+Inspection method: ANSI/ASQ Z1.4 Sampling plan: Single sampling normal inspection Sampling level: Level 2\n\n+Acceptable Quality Level (AQL): Critical A: 0 Critical B: 0.65 Major: 1.5 Minor: 4.0\n\n Sample size: 500 No. of carton drawn: 10\n\n Opened carton No.: No carton#\n\n-No. Defects descrip Ɵon Cri. A Cri. B Major Minor\n\n+No. Defects description Cri. A Cri. B Major Minor\n\n 1 K. Seal gap 1 1\n\n 2 J. Thread irregularity 3\n\n 3\n\n@@ -38,30 +37,32 @@\n 5\n\n 6\n\n 7\n\n-Total Defec Ɵves 1 4\n\n-Maximum Defec Ɵves 0 7 14 21\n\n-Inspec Ɵon qty: >80%\n\n-Inspec Ɵon quanƟty No. of carton\n\n+Total Defectives 1 4\n\n+Maximum Defectives 0 7 14 21\n\n+Inspection qty: >80%\n\n+Inspection quantity No. of carton\n\n Item# XXX PO No. Batch qty.\n\n Packed Unpacked Packed Unpacked\n\n XX-ABC-57052-C 71662963 61,859 41,466 8,462 61 16\n\n Total: 41,466 8,462 61 16\n\n+Doc#: FIR-003.5\n\n+Effective: 20171109 Page 1 of 9\n\n ---PAGE---\n\n-Final Inspec Ɵon Report\n\n+Final Inspection Report\n\n Client: Global Tech Supplier: Alpha Labs Client PO#: PO-XX328\n\n-XXX office: TX Inspector: Sam Davis XXX PO#: 21668732\n\n-PM: Avery Wilson Inspec Ɵon Site: Greenfield county, Metro city PO Quan Ɵty: N/A\n\n-Project#: XXBFNO6 Inspec Ɵon date: 24-Jan-2026 Batch Quan Ɵty: 88907PCS\n\n-Date of Manufacture: 1/18/2026~1/21/2026 Lot ID: 9928-539898(1st lot)\n\n+XXX office: TX Inspector: Sam Davis XXX PO#: 21668732\n\n+PM: Avery Wilson Inspection Site: Greenfield county, Metro city PO Quantity: N/A\n\n+Project#: XXBFNO6 Inspection date: 24-Jan-2026 Batch Quantity: 88907PCS\n\n+Date of Manufacture: 1/18/2026~1/21/2026 Lot ID: 9928-539898(1st lot)\n\n Item#: XX-ABC-68878-C\n\n-Descrip Ɵon: Standard Component Assembly with Seal Insert\n\n+Description: Standard Component Assembly with Seal Insert\n\n Carton Check\n\n Check point Inner carton Outer carton\n\n-Quan Ɵty per carton: Part C & Insert 619\n\n+Quantity per carton: Part C & Insert 619\n\n Dimension of carton (cm): L x W X H x x 47 x 32 x 43\n\n Weight of carton (Kg): Gross/Net / 15.3 / 14\n\n-Scan the barcode number: (Resul N/A )\n\n-Dimension and Func Ɵon check - Sampling level: S-2\n\n+Scan the barcode number: (Result: N/A )\n\n+Dimension and Function check - Sampling level: S-2\n\n Sample size: 13+7\n\n Dimension chart\n\n Measure\n\n@@ -83,10 +84,10 @@\n 21.49 21.04 20.84 20.86 20 21.08 21.4 21.08 20.41 20.89 20.43 21.64 21.52 21.44 20.8 20.45 21.49 21.62 20.53 21.01\n\n 47.06±0.14(in)\n\n Part C ID\n\n-126.15 131.51131.49126.58129.29129.91 127.64132.23128.91127.19 129.78131.35127.22128.01133.22130.59129.02129.68126.57127.38\n\n+126.15 131.51 131.49 126.58 129.29 129.91 127.64 132.23 128.91 127.19 129.78 131.35 127.22 128.01 133.22 130.59 129.02 129.68 126.57 127.38\n\n 19.14±0.17(mm)\n\n Part D Height\n\n-checked by ø4.56 and ø4.64 pin gauge , all within spec.\n\n+checked by ø4.56 and ø4.64 pin gauges , all within spec.\n\n 35.23±0.18(cm)\n\n Part D Width\n\n 46.81±0.47(mm)\n\n@@ -122,14 +123,18 @@\n OFC\n\n 13.64 14.08 14.11 13.75 13.88 13.32 13.63 14.19 13.87 13.73 13.9 13.43 13.77 13.7 13.99 13.32 14.08 13.35 13.44 13.78\n\n 29.9±0.17(in)\n\n-Date: 3/6/26\n\n+Date: 3/6/2026\n\n+Doc#: FIR-003.5\n\n+Effective: 20171109 Page 2 of 9\n\n ---PAGE---\n\n-Final Inspec Ɵon Report\n\n+Final Inspection Report\n\n Client: Global Tech Supplier: Alpha Labs Client PO#: PO-XX328\n\n-XXX office: TX Inspector: Sam Davis XXX PO#: 21668732\n\n-PM: Avery Wilson Inspec Ɵon Site: Greenfield county, Metro city PO Quan Ɵty: N/A\n\n-Project#: XXBFNO6 Inspec Ɵon date: 24-Jan-2026 Batch Quan Ɵty: 88907PCS\n\n-Date of Manufacture: 1/18/2026~1/21/2026 Lot ID: 9928-539898(1st lot)\n\n+XXX office: TX Inspector: Sam Davis XXX PO#: 21668732\n\n+PM: Avery Wilson Inspection Site: Greenfield county, Metro city PO Quantity: N/A\n\n+Project#: XXBFNO6 Inspection date: 24-Jan-2026 Batch Quantity: 88907PCS\n\n+Date of Manufacture: 1/18/2026~1/21/2026 Lot ID: 9928-539898(1st lot)\n\n Item#: XX-ABC-68878-C\n\n-Descrip Ɵon: Standard Component Assembly with Seal Insert\n\n-Authorized QC Inspector of XXX\n+Description: Standard Component Assembly with Seal Insert\n\n+Authorized QC Inspector of XXX\n\n+Doc#: FIR-003.5\n\n+Effective: 20171109 Page 3 of 9", + "visual_scores": [ + 0.7103, + 0.6755, + 0.8432 + ], + "visual_avg": 0.743, + "diff_images": [ + { + "page": 1, + "minipdf_img": "PO_anonymized_p1_minipdf.png", + "reference_img": "PO_anonymized_p1_reference.png", + "auxiliary_img": "PO_anonymized_p1_libreoffice.png", + "heatmap_img": "PO_anonymized_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 58, + 45, + 1182, + 1713 + ], + "changed_pixels": 514717, + "changed_fraction": 0.236465, + "mean_abs_rgb": 29.8818, + "rmse_rgb": 76.4864, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "PO_anonymized_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "PO_anonymized_p2_minipdf.png", + "reference_img": "PO_anonymized_p2_reference.png", + "auxiliary_img": "PO_anonymized_p2_libreoffice.png", + "heatmap_img": "PO_anonymized_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 59, + 45, + 1181, + 1713 + ], + "changed_pixels": 651275, + "changed_fraction": 0.299201, + "mean_abs_rgb": 34.8838, + "rmse_rgb": 80.9979, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "PO_anonymized_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "PO_anonymized_p3_minipdf.png", + "reference_img": "PO_anonymized_p3_reference.png", + "auxiliary_img": "PO_anonymized_p3_libreoffice.png", + "heatmap_img": "PO_anonymized_p3_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 61, + 45, + 1181, + 1713 + ], + "changed_pixels": 122180, + "changed_fraction": 0.05613, + "mean_abs_rgb": 7.7594, + "rmse_rgb": 40.8676, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "PO_anonymized_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.7726 + }, + { + "name": "Simple invoice1", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "Simple invoice1", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Simple invoice1.xlsx", + "suite": "issue", + "minipdf_size": 52865, + "reference_size": 94130, + "pdf_valid": true, + "minipdf_pages": 1, + "reference_pages": 1, + "compared_pages": 3, + "text_similarity": 0.7573, + "flat_text_similarity": 0.6438, + "word_text_similarity": 0.7573, + "text_diff": "--- minipdf/Simple invoice1.pdf\n+++ reference/Simple invoice1.pdf\n@@ -1,32 +1,20 @@\n-Elegant INVO\n\n+Elegant INVOICE\n\n Invoice #: 10654\n\n-Invoice date: 9/7/26\n\n-Embrace\n\n+Embrace Invoice date: 8/29/2026\n\n Job: Wedding florals\n\n-Bill to: Hailey Clark\n\n-345 W Main\n\n-Address: 123 Avenue A,\n\n-Los Angeles, CA 14151\n\n+345 W Main Bill to: Hailey Clark\n\n+Los Angeles, CA 14151 Address: 123 Avenue A,\n\n P: 915-555-0195 Burbank, CA 56789\n\n-Phone: 805-555-0185\n\n-F: 915-555-0105\n\n+F: 915-555-0105 Phone: 805-555-0185\n\n elegantembrace@example.com Fax: NA\n\n-Qty Unit price Discount Price\n\n-Item # Description\n\n-35 $1.05 $36.75\n\n-A875 Peonies\n\n-25 $2.00 $50.00\n\n-K245 Tulips\n\n-30 $1.35 $40.50\n\n-U123 Buttercup\n\n-$127.25\n\n-Invoice Subtotal\n\n-6.00%\n\n-Tax Rate\n\n-$7.64\n\n-Sales Tax\n\n-$50.00\n\n-Deposit Received\n\n+Item # Description Qty Unit price Discount Price\n\n+A875 Peonies 35 $1.05 $36.75\n\n+K245 Tulips 25 $2.00 $50.00\n\n+U123 Buttercup 30 $1.35 $40.50\n\n+Invoice Subtotal $127.25\n\n+Tax Rate 6.00%\n\n+Sales Tax $7.64\n\n+Deposit Received $50.00\n\n TOTAL $77.25\n\n Please make all checks payable to Elegant Embrace.\n\n Total due in 90 days. Overdue accounts subject to a service charge of 1.5% per month.\n", + "visual_scores": [ + 0.6953 + ], + "visual_avg": 0.6953, + "diff_images": [ + { + "page": 1, + "minipdf_img": "Simple invoice1_p1_minipdf.png", + "reference_img": "Simple invoice1_p1_reference.png", + "auxiliary_img": "Simple invoice1_p1_libreoffice.png", + "heatmap_img": "Simple invoice1_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 36, + 114, + 1237, + 1451 + ], + "changed_pixels": 344628, + "changed_fraction": 0.158325, + "mean_abs_rgb": 18.2359, + "rmse_rgb": 60.1872, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Simple invoice1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.781 + }, + { + "name": "Small business cash flow forecast1", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "Small business cash flow forecast1", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Small business cash flow forecast1.xlsx", + "suite": "issue", + "minipdf_size": 48698, + "reference_size": 93247, + "pdf_valid": true, + "minipdf_pages": 3, + "reference_pages": 5, + "compared_pages": 3, + "text_similarity": 0.9004, + "flat_text_similarity": 0.6103, + "word_text_similarity": 0.9004, + "text_diff": "--- minipdf/Small business cash flow forecast1.pdf\n+++ reference/Small business cash flow forecast1.pdf\n@@ -1,59 +1,82 @@\n ELBIDE REALTY\n\n Cash flow forecast\n\n-Starting cash on hand $ 10,000.00 Starting date Oct 2026 Cash minimum balance alert $ 2,000.00\n\n-Oct 2026 Nov 2026 Dec 2026 Jan 2027 Feb 2027 Mar 2027 Apr 2027 May 2027 Jun 2027 Jul 2027 Aug 2027 Sep 2027\n\n+Starting cash on hand $ 10,000.00 Starting date Sep 2026 Cash minimum balance alert $ 2,000.00\n\n+Sep 2026 Oct 2026 Nov 2026 Dec 2026 Jan 2027 Feb 2027 Mar 2027 Apr 2027 May 2027 Jun 2027 Jul 2027 Aug 2027\n\n Total\n\n-Cash on hand (beginning of month) $ 10,000.00 $ 8,050.00 $ 9,350.00 $ 890.00 $ 2,190.00 $ 13,590.00 $ 13,790.00 $ 15,290.00 $ 16,410.00 $ 14,360.00 $ 16,560.00 $ 18,780.00\n\n+Cash on hand (beginning of month) $ 10,000.00 $ 8,050.00 $ 9,350.00 $ 890.00 $ 2,190.00 $ 13,590.00 $ 13,790.00 $ 15,290.00 $ 16,410.00 $ 14,360.00 $ 16,560.00 $ 18,780.00\n\n Cash receipts\n\n-Cash sales $ 2,500.00 $ 3,000.00 $ 3,600.00 $ 3,000.00 $ 14,000.00 $ 6,000.00 $ 3,000.00 $ 2,800.00 $ 3,500.00 $ 4,000.00 $ 3,800.00 $ 4,200.00 $ 53,400.00\n\n-Returns and allowances $ 200.00 $ 200.00\n\n-Collections on accounts receivable $ - 0\n\n-Interest, other income $ - 0\n\n-Loan proceeds $ - 0\n\n-Owner contributions $ - 0\n\n-Other receipts $ - 0\n\n-Total cash receipts $ 2,500.00 $ 3,000.00 $ 3,400.00 $ 3,000.00 $ 14,000.00 $ 6,000.00 $ 3,000.00 $ 2,800.00 $ 3,500.00 $ 4,000.00 $ 3,800.00 $ 4,200.00 $ 53,600.00\n\n-Total cash available $ 12,500.00 $ 11,050.00 $ 12,750.00 $ 3,890.00 $ 16,190.00 $ 19,590.00 $ 16,790.00 $ 18,090.00 $ 19,910.00 $ 18,360.00 $ 20,360.00 $ 22,980.00\n\n+Cash sales $ 2,500.00 $ 3,000.00 $ 3,600.00 $ 3,000.00 $ 14,000.00 $ 6,000.00 $ 3,000.00 $ 2,800.00 $ 3,500.00 $ 4,000.00 $ 3,800.00 $ 4,200.00 $ 53,400.00\n\n+Returns and allowances $ 200.00 $ 200.00\n\n+Collections on accounts receivable $ -\n\n+Interest, other income $ -\n\n+Loan proceeds $ -\n\n+Owner contributions $ -\n\n+Other receipts $ -\n\n+Total cash receipts $ 2,500.00 $ 3,000.00 $ 3,400.00 $ 3,000.00 $ 14,000.00 $ 6,000.00 $ 3,000.00 $ 2,800.00 $ 3,500.00 $ 4,000.00 $ 3,800.00 $ 4,200.00 $ 53,600.00\n\n+Total cash available $ 12,500.00 $ 11,050.00 $ 12,750.00 $ 3,890.00 $ 16,190.00 $ 19,590.00 $ 16,790.00 $ 18,090.00 $ 19,910.00 $ 18,360.00 $ 20,360.00 $ 22,980.00\n\n Cash paid out\n\n-Advertising $ 3,000.00 $ 3,000.00\n\n-Commissions and fees $ 250.00 $ 300.00 $ 360.00 $ 300.00 $ 1,400.00 $ 400.00 $ 300.00 $ 280.00 $ 350.00 $ 400.00 $ 380.00 $ 420.00 $ 5,140.00\n\n-Contract labor $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 1,200.00\n\n-Employee benefit programs $ - 0\n\n-Insurance (other than health) $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 16,000.00\n\n-Interest expense $ - 0\n\n-Materials and supplies (in COGS) $ 1,200.00 $ 1,200.00 $ 7,500.00 $ 1,200.00 $ 1,200.00 $ 1,200.00 $ 1,200.00 $ 1,200.00 $ 1,200.00 $ 1,200.00 $ 1,200.00 $ 1,200.00 $ 20,700.00\n\n-Meals and entertainment $ - 0\n\n-Mortgage interest $ - 0\n\n-Office expense $ - 0\n\n-Other interest expense $ - 0\n\n-Pension and profit-sharing plan $ - 0\n\n-Purchases for resale $ - 0\n\n-Rent or lease $ - 0\n\n-Rent or lease: vehicles, equipment $ - 0\n\n-Repairs and maintenance $ - 0\n\n-Supplies (not in COGS) $ - 0\n\n-Taxes and licenses $ - 0\n\n-Travel $ - 0\n\n-Utilities $ - 0\n\n-Wages (less emp. credits) $ - 0\n\n-Other expenses $ - 0\n\n-Other expenses $ - 0\n\n-Other expenses $ - 0\n\n-Miscellaneous $ - 0\n\n-Subtotal $ 4,450.00 $ 1,700.00 $ 11,860.00 $ 1,700.00 $ 2,600.00 $ 5,800.00 $ 1,500.00 $ 1,680.00 $ 5,550.00 $ 1,800.00 $ 1,580.00 $ 5,820.00 $ 46,040.00\n\n-Loan principal payment $ - 0\n\n-Capital purchases $ - 0\n\n-Other startup costs $ - 0\n\n-To reserve and/or escrow $ - 0\n\n-Owners' withdrawal $ - 0\n\n-Total cash paid out $ 4,450.00 $ 1,700.00 $ 11,860.00 $ 1,700.00 $ 2,600.00 $ 5,800.00 $ 1,500.00 $ 1,680.00 $ 5,550.00 $ 1,800.00 $ 1,580.00 $ 5,820.00 $ 46,040.00\n\n-Cash on hand (end of month) $ 8,050.00 $ 9,350.00 $ 890.00 $ 2,190.00 $ 13,590.00 $ 13,790.00 $ 15,290.00 $ 16,410.00 $ 14,360.00 $ 16,560.00 $ 18,780.00 $ 17,160.00\n\n+Advertising $ 3,000.00 $ 3,000.00\n\n+Commissions and fees $ 250.00 $ 300.00 $ 360.00 $ 300.00 $ 1,400.00 $ 400.00 $ 300.00 $ 280.00 $ 350.00 $ 400.00 $ 380.00 $ 420.00 $ 5,140.00\n\n+Contract labor $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 1,200.00\n\n+Employee benefit programs $ -\n\n+Insurance (other than health) $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 16,000.00\n\n+Interest expense $ -\n\n+Materials and supplies (in COGS) $ 1,200.00 $ 1,200.00 $ 7,500.00 $ 1,200.00 $ 1,200.00 $ 1,200.00 $ 1,200.00 $ 1,200.00 $ 1,200.00 $ 1,200.00 $ 1,200.00 $ 1,200.00 $ 20,700.00\n\n+Meals and entertainment $ -\n\n+Mortgage interest $ -\n\n+Office expense $ -\n\n+Other interest expense $ -\n\n+Pension and profit-sharing plan $ -\n\n+Purchases for resale $ -\n\n+Rent or lease $ -\n\n+Rent or lease: vehicles, equipment $ -\n\n+Repairs and maintenance $ -\n\n+Supplies (not in COGS) $ -\n\n+Taxes and licenses $ -\n\n+Travel $ -\n\n+Utilities $ -\n\n+Wages (less emp. credits) $ -\n\n+Other expenses $ -\n\n+Other expenses $ -\n\n+Other expenses $ -\n\n+Miscellaneous $ -\n\n+Subtotal $ 4,450.00 $ 1,700.00 $ 11,860.00 $ 1,700.00 $ 2,600.00 $ 5,800.00 $ 1,500.00 $ 1,680.00 $ 5,550.00 $ 1,800.00 $ 1,580.00 $ 5,820.00 $ 46,040.00\n\n+Loan principal payment $ -\n\n+Capital purchases $ -\n\n+Other startup costs $ -\n\n+To reserve and/or escrow $ -\n\n+Owners' withdrawal $ -\n\n+Total cash paid out $ 4,450.00 $ 1,700.00 $ 11,860.00 $ 1,700.00 $ 2,600.00 $ 5,800.00 $ 1,500.00 $ 1,680.00 $ 5,550.00 $ 1,800.00 $ 1,580.00 $ 5,820.00 $ 46,040.00\n\n+Cash on hand (end of month) $ 8,050.00 $ 9,350.00 $ 890.00 $ 2,190.00 $ 13,590.00 $ 13,790.00 $ 15,290.00 $ 16,410.00 $ 14,360.00 $ 16,560.00 $ 18,780.00 $ 17,160.00\n\n Other operating data\n\n Sales volume (dollars)\n\n Accounts receivable balance\n\n Bad debt balance\n\n----PAGE---\n\n Inventory on hand\n\n Accounts payable balance\n\n Depreciation\n\n+---PAGE---\n\n+ELBIDE REALTY\n\n+Cash flow forecast\n\n+Month Cash on hand $20,000\n\n+September 2026 $ 10,000.00 $18,000\n\n+October 2026 $ 8,050.00\n\n+$16,000\n\n+November 2026 $ 9,350.00\n\n+$14,000\n\n+December 2026 $ 890.00\n\n+$12,000\n\n+January 2027 $ 2,190.00\n\n+$10,000\n\n+February 2027 $ 13,590.00\n\n+$8,000\n\n+March 2027 $ 13,790.00\n\n+April 2027 $ 15,290.00 $6,000\n\n+May 2027 $ 16,410.00\n\n+$4,000\n\n+June 2027 $ 14,360.00\n\n+$2,000\n\n+July 2027 $ 16,560.00\n\n+$-\n\n+August 2027 $ 18,780.00 Sep Oct Nov Dec Jan Feb Mar Apr May\n\n ---PAGE---", + "visual_scores": [ + 0.7356, + 0.3372, + 0.9953 + ], + "visual_avg": 0.6894, + "diff_images": [ + { + "page": 1, + "minipdf_img": "Small business cash flow forecast1_p1_minipdf.png", + "reference_img": "Small business cash flow forecast1_p1_reference.png", + "auxiliary_img": "Small business cash flow forecast1_p1_libreoffice.png", + "heatmap_img": "Small business cash flow forecast1_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 66, + 75, + 1173, + 1680 + ], + "changed_pixels": 815067, + "changed_fraction": 0.374448, + "mean_abs_rgb": 17.9447, + "rmse_rgb": 44.8225, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Small business cash flow forecast1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "Small business cash flow forecast1_p2_minipdf.png", + "reference_img": "Small business cash flow forecast1_p2_reference.png", + "auxiliary_img": "Small business cash flow forecast1_p2_libreoffice.png", + "heatmap_img": "Small business cash flow forecast1_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1241 + ], + "difference_bbox_px": [ + 87, + 53, + 1157, + 1071 + ], + "changed_pixels": 496069, + "changed_fraction": 0.322106, + "mean_abs_rgb": 42.0195, + "rmse_rgb": 87.6112, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Small business cash flow forecast1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "Small business cash flow forecast1_p3_minipdf.png", + "reference_img": "Small business cash flow forecast1_p3_reference.png", + "auxiliary_img": "Small business cash flow forecast1_p3_libreoffice.png", + "heatmap_img": "Small business cash flow forecast1_p3_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1754, + 1241 + ], + "difference_bbox_px": [ + 835, + 112, + 1532, + 116 + ], + "changed_pixels": 2092, + "changed_fraction": 0.000961, + "mean_abs_rgb": 0.0692, + "rmse_rgb": 2.9896, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Small business cash flow forecast1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.7359 + }, + { + "name": "Wedding_timeline_planner1_copy", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "Wedding_timeline_planner1_copy", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Wedding_timeline_planner1_copy.xlsx", + "suite": "issue", + "minipdf_size": 408701, + "reference_size": 180076, + "pdf_valid": true, + "minipdf_pages": 8, + "reference_pages": 8, + "compared_pages": 3, + "text_similarity": 0.9295, + "flat_text_similarity": 0.9291, + "word_text_similarity": 0.8404, + "text_diff": "--- minipdf/Wedding_timeline_planner1_copy.pdf\n+++ reference/Wedding_timeline_planner1_copy.pdf\n@@ -1,114 +1,121 @@\n Wedding timeline planner\n\n DONE?\n\n-? Arrange a gathering for you and your parents.\n\n-? Determine budget and how expenses will be shared.\n\n+☐ Arrange a gathering for you and your parents.\n\n 9 - 12\n\n+☐ Determine budget and how expenses will be shared.\n\n MONTHS TO GO\n\n-? Discuss the size, style, location, and scope of the wedding you want.\n\n-Choose a target wedding date and time. (The actual date will depend on v\n\n-?\n\n-enue availability.)\n\n-Create a binder to store and organize ideas, worksheets, receipts, brochur\n\n-?\n\n-es, etc.\n\n-? Visit and reserve wedding and reception sites.\n\n-? Meet with your officiant.\n\n-Start compiling your guest list to estimate head count. Consider budg\n\n-?\n\n-et when thinking about “must-invites” versus “nice-to-invites.”\n\n-? Begin shopping for the wedding gown.\n\n-? Choose the members of your wedding party.\n\n-? Enroll in wedding/shower gift registries.\n\n+☐ Discuss the size, style, location, and scope of the wedding you want.\n\n+Choose a target wedding date and time. (The actual date will depend\n\n+☐\n\n+on venue availability.)\n\n+Create a binder to store and organize ideas, worksheets, receipts,\n\n+☐\n\n+brochures, etc.\n\n+☐ Visit and reserve wedding and reception sites.\n\n+☐ Meet with your officiant.\n\n+Start compiling your guest list to estimate head count. Consider\n\n+☐\n\n+budget when thinking about “must-invites” versus “nice-to-invites.”\n\n+☐ Begin shopping for the wedding gown.\n\n+☐ Choose the members of your wedding party.\n\n 6 - 9\n\n+☐ Enroll in wedding/shower gift registries.\n\n MONTHS TO GO\n\n-? Hire a photographer and a videographer.\n\n-Book an engagement photo session, especially if you plan to include a prof\n\n-?\n\n-essional engagement picture with Save-the-Date cards.\n\n-? Hire a caterer.\n\n-? Hire a florist.\n\n-Make arrangements for music to be played at the ceremony and reception\n\n-? . (Tasks might include booking a band or solo musician, hiring a DJ, choosi\n\n-ng significant musical selections, and so on.).\n\n-Reserve a block of hotel rooms for out-of-town guests. (Ask about group r\n\n-?\n\n-ates.)\n\n-Send out Save-the-Date cards. (Include lodging info and maps, as possible\n\n-?\n\n-.)\n\n-? Shop for wedding rings.\n\n-Select and order wedding gown, leaving ample time for delivery and altera\n\n-?\n\n-tions.\n\n+☐ Hire a photographer and a videographer.\n\n+Book an engagement photo session, especially if you plan to include a\n\n+☐\n\n+professional engagement picture with Save-the-Date cards.\n\n+☐ Hire a caterer.\n\n+☐ Hire a florist.\n\n+Make arrangements for music to be played at the ceremony and\n\n+☐ reception. (Tasks might include booking a band or solo musician,\n\n+hiring a DJ, choosing significant musical selections, and so on.).\n\n+Reserve a block of hotel rooms for out-of-town guests. (Ask about\n\n+☐\n\n+group rates.)\n\n+Send out Save-the-Date cards. (Include lodging info and maps, as\n\n+☐\n\n+possible.)\n\n+☐ Shop for wedding rings.\n\n+Select and order wedding gown, leaving ample time for delivery and\n\n+☐\n\n+alterations.\n\n ---PAGE---\n\n Wedding timeline planner\n\n-? Shop for bridesmaids dresses.\n\n-? Schedule wedding cake design appointments and tastings.\n\n-? Start planning your honeymoon.\n\n-? Finalize the guest list.\n\n-? Order invitations and other wedding stationery.\n\n+☐ Shop for bridesmaids dresses.\n\n+☐ Schedule wedding cake design appointments and tastings.\n\n+☐ Start planning your honeymoon.\n\n+☐ Finalize the guest list.\n\n 4 - 6\n\n+☐ Order invitations and other wedding stationery.\n\n MONTHS TO GO\n\n-Plan wedding-day beauty preparations; ask your stylist how far in advance\n\n-? they book wedding parties, and whether they are willing to work on the w\n\n-edding site.\n\n-Finalize all honeymoon plans. If traveling outside the country, arrange for\n\n-?\n\n-visas, passports and inoculations.\n\n-? Hire your wedding day transportation (carriage, limousine service, etc.).\n\n-? Plan the rehearsal dinner.\n\n-? Obtain a marriage license. Bring all necessary documents.\n\n-? Order tuxedoes for the groom and groomsmen.\n\n+Plan wedding-day beauty preparations; ask your stylist how far in\n\n+☐ advance they book wedding parties, and whether they are willing to\n\n+work on the wedding site.\n\n+Finalize all honeymoon plans. If traveling outside the country, arrange\n\n+☐\n\n+for visas, passports and inoculations.\n\n+Hire your wedding day transportation (carriage, limousine service,\n\n+☐\n\n+etc.).\n\n+☐ Plan the rehearsal dinner.\n\n+☐ Obtain a marriage license. Bring all necessary documents.\n\n 2 - 4\n\n+☐ Order tuxedoes for the groom and groomsmen.\n\n MONTHS TO GO\n\n-? Meet with the caterer to go over menus, wine selections, etc.\n\n-? Order the wedding cake.\n\n-? Order your wedding rings.\n\n-? Confirm wedding ceremony and reception music.\n\n-? Book a hotel room for the wedding night.\n\n-? If you plan on writing your own vows, start writing them now.\n\n-? Mail the wedding invitations 8 weeks before your wedding date.\n\n-? Do a hair and makeup run-through (including wedding veil, if applicable).\n\n+☐ Meet with the caterer to go over menus, wine selections, etc.\n\n+☐ Order the wedding cake.\n\n+☐ Order your wedding rings.\n\n+☐ Confirm wedding ceremony and reception music.\n\n+☐ Book a hotel room for the wedding night.\n\n+☐ If you plan on writing your own vows, start writing them now.\n\n+☐ Mail the wedding invitations 8 weeks before your wedding date.\n\n+Do a hair and makeup run-through (including wedding veil, if\n\n+☐\n\n 4 - 8\n\n+applicable).\n\n WEEKS TO GO\n\n-? Confirm all transportation plans.\n\n-? Work on seating arrangements for the reception.\n\n-? Finalize arrangements for out of town attendants and guests.\n\n+☐ Confirm all transportation plans.\n\n+☐ Work on seating arrangements for the reception.\n\n 2 - 4\n\n+☐ Finalize arrangements for out of town attendants and guests.\n\n WEEKS TO GO\n\n-? Confirm details with the photographer, florist, and other vendors.\n\n+☐ Confirm details with the photographer, florist, and other vendors.\n\n ---PAGE---\n\n Wedding timeline planner\n\n-? Have final fitting for bridal gown and bridesmaids’ dresses.\n\n-? Write your rehearsal dinner toast.\n\n-? Purchase gifts for the wedding attendants.\n\n-Compile a list of all of the wedding vendors and wedding party, with conta\n\n-?\n\n-ct information. Carry this list with you everywhere you go (just in case).\n\n-Communicate rehearsal dinner details to those who will attend the rehear\n\n-?\n\n-sal and rehearsal dinner.\n\n-? Look into where bride, groom and attendants will dress for the ceremony.\n\n-? Enclose in envelopes any fees due for easy distribution.\n\n-? Give the caterer a final head count.\n\n+☐ Have final fitting for bridal gown and bridesmaids’ dresses.\n\n+☐ Write your rehearsal dinner toast.\n\n+☐ Purchase gifts for the wedding attendants.\n\n+Compile a list of all of the wedding vendors and wedding party, with\n\n+☐ contact information. Carry this list with you everywhere you go (just in\n\n+case).\n\n+Communicate rehearsal dinner details to those who will attend the\n\n+☐\n\n+rehearsal and rehearsal dinner.\n\n+Look into where bride, groom and attendants will dress for the\n\n+☐\n\n+ceremony.\n\n+☐ Enclose in envelopes any fees due for easy distribution.\n\n 1\n\n+☐ Give the caterer a final head count.\n\n WEEK TO GO\n\n-Appoint a trustworthy person to bring important items (cake knife, toastin\n\n-?\n\n-g glasses, etc.) to the reception.\n\n-Appoint someone to act as an “organizer” to handle any last-minut\n\n-?\n\n-e problems.\n\n-? Review final details for those in the wedding party.\n\n-Get final beauty treatments (manicure, facial, massage, waxing, brow sha\n\n-?\n\n-ping, etc.)\n\n-DAY BEFORE ? Gather together the following:\n\n+Appoint a trustworthy person to bring important items (cake knife,\n\n+☐\n\n+toasting glasses, etc.) to the reception.\n\n+Appoint someone to act as an “organizer” to handle any last-minute\n\n+☐\n\n+problems.\n\n+☐ Review final details for those in the wedding party.\n\n+Get final beauty treatments (manicure, facial, massage, waxing, brow\n\n+☐\n\n+shaping, etc.)\n\n+DAY BEFORE ☐ Gather together the following:\n\n THE WEDDING Something old : symbolizing continuity with family and heritage\n\n-Something new : symbolizing optimism and hope for the new life ahead\n\n-Something borrowed : an item from a happily married friend or family me\n\n-mber\n\n+Something new : symbolizing optimism and hope for the new life\n\n+ahead\n\n+Something borrowed : an item from a happily married friend or\n\n+family member\n\n Something blue : symbolizing love and fidelity\n\n-? Confirm honeymoon arrangements.\n\n-? Pack for the honeymoon.\n\n-? Enjoy a relaxing day with family and friends.\n+☐ Confirm honeymoon arrangements.\n\n+☐ Pack for the honeymoon.\n\n+☐ Enjoy a relaxing day with family and friends.", + "visual_scores": [ + 0.8982, + 0.8931, + 0.8978 + ], + "visual_avg": 0.8964, + "diff_images": [ + { + "page": 1, + "minipdf_img": "Wedding_timeline_planner1_copy_p1_minipdf.png", + "reference_img": "Wedding_timeline_planner1_copy_p1_reference.png", + "auxiliary_img": "Wedding_timeline_planner1_copy_p1_libreoffice.png", + "heatmap_img": "Wedding_timeline_planner1_copy_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 102, + 183, + 1158, + 1550 + ], + "changed_pixels": 298306, + "changed_fraction": 0.137044, + "mean_abs_rgb": 14.256, + "rmse_rgb": 46.0558, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Wedding_timeline_planner1_copy_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "Wedding_timeline_planner1_copy_p2_minipdf.png", + "reference_img": "Wedding_timeline_planner1_copy_p2_reference.png", + "auxiliary_img": "Wedding_timeline_planner1_copy_p2_libreoffice.png", + "heatmap_img": "Wedding_timeline_planner1_copy_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 102, + 183, + 1158, + 1542 + ], + "changed_pixels": 318572, + "changed_fraction": 0.146355, + "mean_abs_rgb": 14.539, + "rmse_rgb": 46.27, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Wedding_timeline_planner1_copy_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "Wedding_timeline_planner1_copy_p3_minipdf.png", + "reference_img": "Wedding_timeline_planner1_copy_p3_reference.png", + "auxiliary_img": "Wedding_timeline_planner1_copy_p3_libreoffice.png", + "heatmap_img": "Wedding_timeline_planner1_copy_p3_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 102, + 183, + 1158, + 1516 + ], + "changed_pixels": 291508, + "changed_fraction": 0.133921, + "mean_abs_rgb": 13.5658, + "rmse_rgb": 44.6731, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Wedding_timeline_planner1_copy_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.9304 + }, + { + "name": "Weekly schedule planner1", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "Weekly schedule planner1", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/Weekly schedule planner1.xlsx", + "suite": "issue", + "minipdf_size": 72332, + "reference_size": 148591, + "pdf_valid": true, + "minipdf_pages": 2, + "reference_pages": 1, + "compared_pages": 3, + "text_similarity": 0.6289, + "flat_text_similarity": 0.473, + "word_text_similarity": 0.6289, + "text_diff": "--- minipdf/Weekly schedule planner1.pdf\n+++ reference/Weekly schedule planner1.pdf\n@@ -1,16 +1,15 @@\n Weekly schedule planner\n\n-Week of: 9/7/26\n\n+Week of: 8/24/2026\n\n Weekly objectives To do items Deadlines this week\n\n-Run 3 miles Take FiFi to vet Presenta Ɵon on Thursday\n\n+Run 3 miles Take FiFi to vet Presentation on Thursday\n\n Read 30 min/day Go grocery shopping\n\n Stretch Pick up dry cleaning\n\n-46272.0 46273.0 46274.0 46275.0 46276.0 46277.0 46278.0\n\n-07\n\n-September 08 September 09 September 10 September 11 September 12 September 13 September\n\n-? Run ? Run ? Run Run Run Run Run\n\n-? Read ? Read ? Read Read Read Read Read\n\n-? Stretch ? Stretch ? Stretch Stretch Stretch Stretch Stretch\n\n-? Go to vet ? Shopping Present\n\n-? Rehearse\n\n-Notes\n\n----PAGE---\n+Monday Tuesday Wednesday Thursday Friday Saturday Sunday\n\n+24 25 26 27 28 29 30\n\n+August August August August August August August\n\n+✔ Run ✔ Run ✖ Run Run Run Run Run\n\n+✖ Read ✔ Read ✔ Read Read Read Read Read\n\n+✔ Stretch ✔ Stretch ✖ Stretch Stretch Stretch Stretch Stretch\n\n+✔ Go to vet ✔ Shopping Present\n\n+✔ Rehearse\n\n+Notes", + "visual_scores": [ + 0.7458, + 0.0 + ], + "visual_avg": 0.3729, + "diff_images": [ + { + "page": 1, + "minipdf_img": "Weekly schedule planner1_p1_minipdf.png", + "reference_img": "Weekly schedule planner1_p1_reference.png", + "auxiliary_img": "Weekly schedule planner1_p1_libreoffice.png", + "heatmap_img": "Weekly schedule planner1_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1754, + 1241 + ], + "difference_bbox_px": [ + 121, + 96, + 1571, + 1144 + ], + "changed_pixels": 686598, + "changed_fraction": 0.315429, + "mean_abs_rgb": 25.2436, + "rmse_rgb": 60.9064, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "Weekly schedule planner1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "Weekly schedule planner1_p2_minipdf.png", + "reference_img": null, + "auxiliary_img": null + } + ], + "overall_score": 0.5007 + }, + { + "name": "XlsxIssue75", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "XlsxIssue75", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue75.xlsx", + "suite": "issue", + "minipdf_size": 393485, + "reference_size": 5896201, + "pdf_valid": true, + "minipdf_pages": 152, + "reference_pages": 144, + "compared_pages": 3, + "text_similarity": 0.9694, + "flat_text_similarity": 0.9694, + "word_text_similarity": 0.9672, + "text_diff": "--- minipdf/XlsxIssue75.pdf\n+++ reference/XlsxIssue75.pdf\n@@ -46,10 +46,10 @@\n 3991293 Fred Invoice\n\n 30184 Fred Invoice\n\n 30184 Fred Invoice\n\n----PAGE---\n\n 30184 Fred Invoice\n\n 30184 Fred Invoice\n\n 30184 Fred Invoice\n\n+---PAGE---\n\n 30184 Fred Invoice\n\n 30184 Fred Invoice\n\n 30184 Fred Invoice\n\n@@ -95,13 +95,13 @@\n BLAC002 Fred Invoice\n\n BLAC002 Fred Invoice\n\n BLAC002 Fred Invoice\n\n----PAGE---\n\n BLAC002 Fred Invoice\n\n BLAC002 Fred Credit Memo\n\n BLAC002 Fred Credit Memo\n\n BLAC002 Fred Invoice\n\n BLAC002 Fred Invoice\n\n BLAC002 Fred Invoice\n\n+---PAGE---\n\n BLAC002 Fred Credit Memo\n\n BLAC002 Fred Invoice\n\n BLAC002 Fred Invoice\n\n@@ -143,4 +143,13 @@\n 26202 Fred Invoice\n\n 26202 Fred Invoice\n\n 26202 Fred Invoice\n\n-26202 Fred Invoice\n+26202 Fred Invoice\n\n+26202 Fred Invoice\n\n+26202 Fred Invoice\n\n+26202 Fred Invoice\n\n+12011 Fred Invoice\n\n+011299 Fred Credit Memo\n\n+48105 Fred Credit Memo\n\n+48105 Fred Credit Memo\n\n+12112 Fred Invoice\n\n+14449 Fred Invoice", + "visual_scores": [ + 0.9437, + 0.9666, + 0.9674 + ], + "visual_avg": 0.9592, + "diff_images": [ + { + "page": 1, + "minipdf_img": "XlsxIssue75_p1_minipdf.png", + "reference_img": "XlsxIssue75_p1_reference.png", + "auxiliary_img": "XlsxIssue75_p1_libreoffice.png", + "heatmap_img": "XlsxIssue75_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 109, + 114, + 1111, + 1649 + ], + "changed_pixels": 157587, + "changed_fraction": 0.072397, + "mean_abs_rgb": 8.9397, + "rmse_rgb": 40.5315, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue75_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "XlsxIssue75_p2_minipdf.png", + "reference_img": "XlsxIssue75_p2_reference.png", + "auxiliary_img": "XlsxIssue75_p2_libreoffice.png", + "heatmap_img": "XlsxIssue75_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 114, + 120, + 1076, + 1649 + ], + "changed_pixels": 107345, + "changed_fraction": 0.049315, + "mean_abs_rgb": 8.0094, + "rmse_rgb": 40.3943, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue75_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "XlsxIssue75_p3_minipdf.png", + "reference_img": "XlsxIssue75_p3_reference.png", + "auxiliary_img": "XlsxIssue75_p3_libreoffice.png", + "heatmap_img": "XlsxIssue75_p3_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 114, + 120, + 1076, + 1649 + ], + "changed_pixels": 102955, + "changed_fraction": 0.047298, + "mean_abs_rgb": 7.6331, + "rmse_rgb": 39.3545, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue75_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.8714 + }, + { + "name": "XlsxIssue77_MergedCellAlignment", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "XlsxIssue77_MergedCellAlignment", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue77_MergedCellAlignment.xlsx", + "suite": "issue", + "minipdf_size": 71248, + "reference_size": 172385, + "pdf_valid": true, + "minipdf_pages": 2, + "reference_pages": 2, + "compared_pages": 3, + "text_similarity": 1.0, + "flat_text_similarity": 1.0, + "word_text_similarity": 1.0, + "text_diff": "(identical)", + "visual_scores": [ + 0.886, + 0.896 + ], + "visual_avg": 0.891, + "diff_images": [ + { + "page": 1, + "minipdf_img": "XlsxIssue77_MergedCellAlignment_p1_minipdf.png", + "reference_img": "XlsxIssue77_MergedCellAlignment_p1_reference.png", + "auxiliary_img": "XlsxIssue77_MergedCellAlignment_p1_libreoffice.png", + "heatmap_img": "XlsxIssue77_MergedCellAlignment_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 35, + 119, + 1163, + 1541 + ], + "changed_pixels": 474317, + "changed_fraction": 0.217905, + "mean_abs_rgb": 33.3008, + "rmse_rgb": 82.9184, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue77_MergedCellAlignment_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "XlsxIssue77_MergedCellAlignment_p2_minipdf.png", + "reference_img": "XlsxIssue77_MergedCellAlignment_p2_reference.png", + "auxiliary_img": "XlsxIssue77_MergedCellAlignment_p2_libreoffice.png", + "heatmap_img": "XlsxIssue77_MergedCellAlignment_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 35, + 156, + 1163, + 1612 + ], + "changed_pixels": 443109, + "changed_fraction": 0.203568, + "mean_abs_rgb": 30.2766, + "rmse_rgb": 78.5097, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue77_MergedCellAlignment_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.9564 + }, + { + "name": "XlsxIssue77_Template1", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "XlsxIssue77_Template1", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue77_Template1.xlsx", + "suite": "issue", + "minipdf_size": 60540, + "reference_size": 64464, + "pdf_valid": true, + "minipdf_pages": 6, + "reference_pages": 6, + "compared_pages": 3, + "text_similarity": 0.9905, + "flat_text_similarity": 0.9904, + "word_text_similarity": 0.9804, + "text_diff": "--- minipdf/XlsxIssue77_Template1.pdf\n+++ reference/XlsxIssue77_Template1.pdf\n@@ -6,8 +6,8 @@\n Attn Customer: Please return parts to the return address below.\n\n Customer Name Sales Person Requestor\n\n Return Address: Reason for Return:\n\n-NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR cod\n\n-e, original factory packaging, with no extra labels or markings on the product.\n\n+NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR\n\n+code, original factory packaging, with no extra labels or markings on the product.\n\n Original Qty\n\n Part No. Per Unit\n\n Invoice # Authorized\n\n@@ -20,8 +20,8 @@\n Attn Customer: Please return parts to the return address below.\n\n Customer Name Sales Person Requestor\n\n Return Address: Reason for Return:\n\n-NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR cod\n\n-e, original factory packaging, with no extra labels or markings on the product.\n\n+NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR\n\n+code, original factory packaging, with no extra labels or markings on the product.\n\n Original Qty\n\n Part No. Per Unit\n\n Invoice # Authorized\n\n@@ -34,8 +34,8 @@\n Attn Customer: Please return parts to the return address below.\n\n Customer Name Sales Person Requestor\n\n Return Address: Reason for Return:\n\n-NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR cod\n\n-e, original factory packaging, with no extra labels or markings on the product.\n\n+NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR\n\n+code, original factory packaging, with no extra labels or markings on the product.\n\n Original Qty\n\n Part No. Per Unit\n\n Invoice # Authorized", + "visual_scores": [ + 0.9007, + 0.9007, + 0.9007 + ], + "visual_avg": 0.9007, + "diff_images": [ + { + "page": 1, + "minipdf_img": "XlsxIssue77_Template1_p1_minipdf.png", + "reference_img": "XlsxIssue77_Template1_p1_reference.png", + "auxiliary_img": "XlsxIssue77_Template1_p1_libreoffice.png", + "heatmap_img": "XlsxIssue77_Template1_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 82, + 166, + 1157, + 1565 + ], + "changed_pixels": 379981, + "changed_fraction": 0.174566, + "mean_abs_rgb": 20.849, + "rmse_rgb": 62.5945, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue77_Template1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "XlsxIssue77_Template1_p2_minipdf.png", + "reference_img": "XlsxIssue77_Template1_p2_reference.png", + "auxiliary_img": "XlsxIssue77_Template1_p2_libreoffice.png", + "heatmap_img": "XlsxIssue77_Template1_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 82, + 166, + 1157, + 1565 + ], + "changed_pixels": 380038, + "changed_fraction": 0.174593, + "mean_abs_rgb": 20.7739, + "rmse_rgb": 62.443, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue77_Template1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "XlsxIssue77_Template1_p3_minipdf.png", + "reference_img": "XlsxIssue77_Template1_p3_reference.png", + "auxiliary_img": "XlsxIssue77_Template1_p3_libreoffice.png", + "heatmap_img": "XlsxIssue77_Template1_p3_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 82, + 166, + 1157, + 1565 + ], + "changed_pixels": 380167, + "changed_fraction": 0.174652, + "mean_abs_rgb": 20.7364, + "rmse_rgb": 62.3609, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue77_Template1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.9565 + }, + { + "name": "XlsxIssue77_Template2_Workaround", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "XlsxIssue77_Template2_Workaround", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue77_Template2_Workaround.xlsx", + "suite": "issue", + "minipdf_size": 60494, + "reference_size": 64466, + "pdf_valid": true, + "minipdf_pages": 6, + "reference_pages": 6, + "compared_pages": 3, + "text_similarity": 0.9905, + "flat_text_similarity": 0.9904, + "word_text_similarity": 0.9804, + "text_diff": "--- minipdf/XlsxIssue77_Template2_Workaround.pdf\n+++ reference/XlsxIssue77_Template2_Workaround.pdf\n@@ -6,8 +6,8 @@\n Attn Customer: Please return parts to the return address below.\n\n Customer Name Sales Person Requestor\n\n Return Address: Reason for Return:\n\n-NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR cod\n\n-e, original factory packaging, with no extra labels or markings on the product.\n\n+NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR\n\n+code, original factory packaging, with no extra labels or markings on the product.\n\n Original Qty\n\n Part No. Per Unit\n\n Invoice # Authorized\n\n@@ -20,8 +20,8 @@\n Attn Customer: Please return parts to the return address below.\n\n Customer Name Sales Person Requestor\n\n Return Address: Reason for Return:\n\n-NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR cod\n\n-e, original factory packaging, with no extra labels or markings on the product.\n\n+NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR\n\n+code, original factory packaging, with no extra labels or markings on the product.\n\n Original Qty\n\n Part No. Per Unit\n\n Invoice # Authorized\n\n@@ -34,8 +34,8 @@\n Attn Customer: Please return parts to the return address below.\n\n Customer Name Sales Person Requestor\n\n Return Address: Reason for Return:\n\n-NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR cod\n\n-e, original factory packaging, with no extra labels or markings on the product.\n\n+NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR\n\n+code, original factory packaging, with no extra labels or markings on the product.\n\n Original Qty\n\n Part No. Per Unit\n\n Invoice # Authorized", + "visual_scores": [ + 0.9048, + 0.9048, + 0.9048 + ], + "visual_avg": 0.9048, + "diff_images": [ + { + "page": 1, + "minipdf_img": "XlsxIssue77_Template2_Workaround_p1_minipdf.png", + "reference_img": "XlsxIssue77_Template2_Workaround_p1_reference.png", + "auxiliary_img": "XlsxIssue77_Template2_Workaround_p1_libreoffice.png", + "heatmap_img": "XlsxIssue77_Template2_Workaround_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 78, + 166, + 1153, + 1569 + ], + "changed_pixels": 375573, + "changed_fraction": 0.172541, + "mean_abs_rgb": 20.7999, + "rmse_rgb": 62.6342, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue77_Template2_Workaround_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "XlsxIssue77_Template2_Workaround_p2_minipdf.png", + "reference_img": "XlsxIssue77_Template2_Workaround_p2_reference.png", + "auxiliary_img": "XlsxIssue77_Template2_Workaround_p2_libreoffice.png", + "heatmap_img": "XlsxIssue77_Template2_Workaround_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 78, + 166, + 1153, + 1569 + ], + "changed_pixels": 374803, + "changed_fraction": 0.172188, + "mean_abs_rgb": 20.6963, + "rmse_rgb": 62.4252, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue77_Template2_Workaround_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "XlsxIssue77_Template2_Workaround_p3_minipdf.png", + "reference_img": "XlsxIssue77_Template2_Workaround_p3_reference.png", + "auxiliary_img": "XlsxIssue77_Template2_Workaround_p3_libreoffice.png", + "heatmap_img": "XlsxIssue77_Template2_Workaround_p3_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 78, + 166, + 1153, + 1569 + ], + "changed_pixels": 374804, + "changed_fraction": 0.172188, + "mean_abs_rgb": 20.6898, + "rmse_rgb": 62.408, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue77_Template2_Workaround_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.9581 + }, + { + "name": "XlsxIssue81_LayoutOptions", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "XlsxIssue81_LayoutOptions", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue81_LayoutOptions.xlsx", + "suite": "issue", + "minipdf_size": 61053, + "reference_size": 242251, + "pdf_valid": true, + "minipdf_pages": 16, + "reference_pages": 16, + "compared_pages": 3, + "text_similarity": 0.9188, + "flat_text_similarity": 0.9188, + "word_text_similarity": 0.6587, + "text_diff": "--- minipdf/XlsxIssue81_LayoutOptions.pdf\n+++ reference/XlsxIssue81_LayoutOptions.pdf\n@@ -1,122 +1,119 @@\n Invoice Customer Region Owner\n\n-INV-00001 Customer account with extended legal nam Europe Opera Ɵons owner 2\n\n-INV-00002 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 3\n\n-INV-00003 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 4\n\n-INV-00004 Customer account with extended legal nam North America Opera Ɵons owner 5\n\n-INV-00005 Customer account with extended legal nam Europe Opera Ɵons owner 6\n\n-INV-00006 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 7\n\n-INV-00007 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 8\n\n-INV-00008 Customer account with extended legal nam North America Opera Ɵons owner 9\n\n-INV-00009 Customer account with extended legal nam Europe Opera Ɵons owner 1\n\n-INV-00010 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 2\n\n-INV-00011 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 3\n\n-INV-00012 Customer account with extended legal nam North America Opera Ɵons owner 4\n\n-INV-00013 Customer account with extended legal nam Europe Opera Ɵons owner 5\n\n-INV-00014 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 6\n\n-INV-00015 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 7\n\n-INV-00016 Customer account with extended legal nam North America Opera Ɵons owner 8\n\n-INV-00017 Customer account with extended legal nam Europe Opera Ɵons owner 9\n\n-INV-00018 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 1\n\n-INV-00019 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 2\n\n-INV-00020 Customer account with extended legal nam North America Opera Ɵons owner 3\n\n-INV-00021 Customer account with extended legal nam Europe Opera Ɵons owner 4\n\n-INV-00022 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 5\n\n-INV-00023 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 6\n\n-INV-00024 Customer account with extended legal nam North America Opera Ɵons owner 7\n\n-INV-00025 Customer account with extended legal nam Europe Opera Ɵons owner 8\n\n-INV-00026 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 9\n\n-INV-00027 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 1\n\n-INV-00028 Customer account with extended legal nam North America Opera Ɵons owner 2\n\n-INV-00029 Customer account with extended legal nam Europe Opera Ɵons owner 3\n\n-INV-00030 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 4\n\n-INV-00031 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 5\n\n-INV-00032 Customer account with extended legal nam North America Opera Ɵons owner 6\n\n-INV-00033 Customer account with extended legal nam Europe Opera Ɵons owner 7\n\n-INV-00034 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 8\n\n-INV-00035 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 9\n\n-INV-00036 Customer account with extended legal nam North America Opera Ɵons owner 1\n\n-INV-00037 Customer account with extended legal nam Europe Opera Ɵons owner 2\n\n-INV-00038 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 3\n\n-INV-00039 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 4\n\n+INV-00001 Customer account with extended legal namEurope Operations owner 2\n\n+INV-00002 Customer account with extended legal namAsia Pacific Operations owner 3\n\n+INV-00003 Customer account with extended legal namLatin America Operations owner 4\n\n+INV-00004 Customer account with extended legal namNorth America Operations owner 5\n\n+INV-00005 Customer account with extended legal namEurope Operations owner 6\n\n+INV-00006 Customer account with extended legal namAsia Pacific Operations owner 7\n\n+INV-00007 Customer account with extended legal namLatin America Operations owner 8\n\n+INV-00008 Customer account with extended legal namNorth America Operations owner 9\n\n+INV-00009 Customer account with extended legal namEurope Operations owner 1\n\n+INV-00010 Customer account with extended legal namAsia Pacific Operations owner 2\n\n+INV-00011 Customer account with extended legal namLatin America Operations owner 3\n\n+INV-00012 Customer account with extended legal namNorth America Operations owner 4\n\n+INV-00013 Customer account with extended legal namEurope Operations owner 5\n\n+INV-00014 Customer account with extended legal namAsia Pacific Operations owner 6\n\n+INV-00015 Customer account with extended legal namLatin America Operations owner 7\n\n+INV-00016 Customer account with extended legal namNorth America Operations owner 8\n\n+INV-00017 Customer account with extended legal namEurope Operations owner 9\n\n+INV-00018 Customer account with extended legal namAsia Pacific Operations owner 1\n\n+INV-00019 Customer account with extended legal namLatin America Operations owner 2\n\n+INV-00020 Customer account with extended legal namNorth America Operations owner 3\n\n+INV-00021 Customer account with extended legal namEurope Operations owner 4\n\n+INV-00022 Customer account with extended legal namAsia Pacific Operations owner 5\n\n+INV-00023 Customer account with extended legal namLatin America Operations owner 6\n\n+INV-00024 Customer account with extended legal namNorth America Operations owner 7\n\n+INV-00025 Customer account with extended legal namEurope Operations owner 8\n\n+INV-00026 Customer account with extended legal namAsia Pacific Operations owner 9\n\n+INV-00027 Customer account with extended legal namLatin America Operations owner 1\n\n+INV-00028 Customer account with extended legal namNorth America Operations owner 2\n\n+INV-00029 Customer account with extended legal namEurope Operations owner 3\n\n+INV-00030 Customer account with extended legal namAsia Pacific Operations owner 4\n\n+INV-00031 Customer account with extended legal namLatin America Operations owner 5\n\n+INV-00032 Customer account with extended legal namNorth America Operations owner 6\n\n+INV-00033 Customer account with extended legal namEurope Operations owner 7\n\n+INV-00034 Customer account with extended legal namAsia Pacific Operations owner 8\n\n+INV-00035 Customer account with extended legal namLatin America Operations owner 9\n\n+INV-00036 Customer account with extended legal namNorth America Operations owner 1\n\n+INV-00037 Customer account with extended legal namEurope Operations owner 2\n\n+INV-00038 Customer account with extended legal namAsia Pacific Operations owner 3\n\n ---PAGE---\n\n Invoice Customer Region Owner\n\n-INV-00040 Customer account with extended legal nam North America Opera Ɵons owner 5\n\n-INV-00041 Customer account with extended legal nam Europe Opera Ɵons owner 6\n\n-INV-00042 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 7\n\n-INV-00043 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 8\n\n-INV-00044 Customer account with extended legal nam North America Opera Ɵons owner 9\n\n-INV-00045 Customer account with extended legal nam Europe Opera Ɵons owner 1\n\n-INV-00046 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 2\n\n-INV-00047 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 3\n\n-INV-00048 Customer account with extended legal nam North America Opera Ɵons owner 4\n\n-INV-00049 Customer account with extended legal nam Europe Opera Ɵons owner 5\n\n-INV-00050 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 6\n\n-INV-00051 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 7\n\n-INV-00052 Customer account with extended legal nam North America Opera Ɵons owner 8\n\n-INV-00053 Customer account with extended legal nam Europe Opera Ɵons owner 9\n\n-INV-00054 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 1\n\n-INV-00055 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 2\n\n-INV-00056 Customer account with extended legal nam North America Opera Ɵons owner 3\n\n-INV-00057 Customer account with extended legal nam Europe Opera Ɵons owner 4\n\n-INV-00058 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 5\n\n-INV-00059 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 6\n\n-INV-00060 Customer account with extended legal nam North America Opera Ɵons owner 7\n\n-INV-00061 Customer account with extended legal nam Europe Opera Ɵons owner 8\n\n-INV-00062 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 9\n\n-INV-00063 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 1\n\n-INV-00064 Customer account with extended legal nam North America Opera Ɵons owner 2\n\n-INV-00065 Customer account with extended legal nam Europe Opera Ɵons owner 3\n\n-INV-00066 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 4\n\n-INV-00067 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 5\n\n-INV-00068 Customer account with extended legal nam North America Opera Ɵons owner 6\n\n-INV-00069 Customer account with extended legal nam Europe Opera Ɵons owner 7\n\n-INV-00070 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 8\n\n-INV-00071 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 9\n\n-INV-00072 Customer account with extended legal nam North America Opera Ɵons owner 1\n\n-INV-00073 Customer account with extended legal nam Europe Opera Ɵons owner 2\n\n-INV-00074 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 3\n\n-INV-00075 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 4\n\n-INV-00076 Customer account with extended legal nam North America Opera Ɵons owner 5\n\n-INV-00077 Customer account with extended legal nam Europe Opera Ɵons owner 6\n\n-INV-00078 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 7\n\n+INV-00039 Customer account with extended legal namLatin America Operations owner 4\n\n+INV-00040 Customer account with extended legal namNorth America Operations owner 5\n\n+INV-00041 Customer account with extended legal namEurope Operations owner 6\n\n+INV-00042 Customer account with extended legal namAsia Pacific Operations owner 7\n\n+INV-00043 Customer account with extended legal namLatin America Operations owner 8\n\n+INV-00044 Customer account with extended legal namNorth America Operations owner 9\n\n+INV-00045 Customer account with extended legal namEurope Operations owner 1\n\n+INV-00046 Customer account with extended legal namAsia Pacific Operations owner 2\n\n+INV-00047 Customer account with extended legal namLatin America Operations owner 3\n\n+INV-00048 Customer account with extended legal namNorth America Operations owner 4\n\n+INV-00049 Customer account with extended legal namEurope Operations owner 5\n\n+INV-00050 Customer account with extended legal namAsia Pacific Operations owner 6\n\n+INV-00051 Customer account with extended legal namLatin America Operations owner 7\n\n+INV-00052 Customer account with extended legal namNorth America Operations owner 8\n\n+INV-00053 Customer account with extended legal namEurope Operations owner 9\n\n+INV-00054 Customer account with extended legal namAsia Pacific Operations owner 1\n\n+INV-00055 Customer account with extended legal namLatin America Operations owner 2\n\n+INV-00056 Customer account with extended legal namNorth America Operations owner 3\n\n+INV-00057 Customer account with extended legal namEurope Operations owner 4\n\n+INV-00058 Customer account with extended legal namAsia Pacific Operations owner 5\n\n+INV-00059 Customer account with extended legal namLatin America Operations owner 6\n\n+INV-00060 Customer account with extended legal namNorth America Operations owner 7\n\n+INV-00061 Customer account with extended legal namEurope Operations owner 8\n\n+INV-00062 Customer account with extended legal namAsia Pacific Operations owner 9\n\n+INV-00063 Customer account with extended legal namLatin America Operations owner 1\n\n+INV-00064 Customer account with extended legal namNorth America Operations owner 2\n\n+INV-00065 Customer account with extended legal namEurope Operations owner 3\n\n+INV-00066 Customer account with extended legal namAsia Pacific Operations owner 4\n\n+INV-00067 Customer account with extended legal namLatin America Operations owner 5\n\n+INV-00068 Customer account with extended legal namNorth America Operations owner 6\n\n+INV-00069 Customer account with extended legal namEurope Operations owner 7\n\n+INV-00070 Customer account with extended legal namAsia Pacific Operations owner 8\n\n+INV-00071 Customer account with extended legal namLatin America Operations owner 9\n\n+INV-00072 Customer account with extended legal namNorth America Operations owner 1\n\n+INV-00073 Customer account with extended legal namEurope Operations owner 2\n\n+INV-00074 Customer account with extended legal namAsia Pacific Operations owner 3\n\n+INV-00075 Customer account with extended legal namLatin America Operations owner 4\n\n+INV-00076 Customer account with extended legal namNorth America Operations owner 5\n\n ---PAGE---\n\n Invoice Customer Region Owner\n\n-INV-00079 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 8\n\n-INV-00080 Customer account with extended legal nam North America Opera Ɵons owner 9\n\n-INV-00081 Customer account with extended legal nam Europe Opera Ɵons owner 1\n\n-INV-00082 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 2\n\n-INV-00083 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 3\n\n-INV-00084 Customer account with extended legal nam North America Opera Ɵons owner 4\n\n-INV-00085 Customer account with extended legal nam Europe Opera Ɵons owner 5\n\n-INV-00086 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 6\n\n-INV-00087 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 7\n\n-INV-00088 Customer account with extended legal nam North America Opera Ɵons owner 8\n\n-INV-00089 Customer account with extended legal nam Europe Opera Ɵons owner 9\n\n-INV-00090 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 1\n\n-INV-00091 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 2\n\n-INV-00092 Customer account with extended legal nam North America Opera Ɵons owner 3\n\n-INV-00093 Customer account with extended legal nam Europe Opera Ɵons owner 4\n\n-INV-00094 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 5\n\n-INV-00095 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 6\n\n-INV-00096 Customer account with extended legal nam North America Opera Ɵons owner 7\n\n-INV-00097 Customer account with extended legal nam Europe Opera Ɵons owner 8\n\n-INV-00098 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 9\n\n-INV-00099 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 1\n\n-INV-00100 Customer account with extended legal nam North America Opera Ɵons owner 2\n\n-INV-00101 Customer account with extended legal nam Europe Opera Ɵons owner 3\n\n-INV-00102 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 4\n\n-INV-00103 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 5\n\n-INV-00104 Customer account with extended legal nam North America Opera Ɵons owner 6\n\n-INV-00105 Customer account with extended legal nam Europe Opera Ɵons owner 7\n\n-INV-00106 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 8\n\n-INV-00107 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 9\n\n-INV-00108 Customer account with extended legal nam North America Opera Ɵons owner 1\n\n-INV-00109 Customer account with extended legal nam Europe Opera Ɵons owner 2\n\n-INV-00110 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 3\n\n-INV-00111 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 4\n\n-INV-00112 Customer account with extended legal nam North America Opera Ɵons owner 5\n\n-INV-00113 Customer account with extended legal nam Europe Opera Ɵons owner 6\n\n-INV-00114 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 7\n\n-INV-00115 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 8\n\n-INV-00116 Customer account with extended legal nam North America Opera Ɵons owner 9\n\n-INV-00117 Customer account with extended legal nam Europe Opera Ɵons owner 1\n+INV-00077 Customer account with extended legal namEurope Operations owner 6\n\n+INV-00078 Customer account with extended legal namAsia Pacific Operations owner 7\n\n+INV-00079 Customer account with extended legal namLatin America Operations owner 8\n\n+INV-00080 Customer account with extended legal namNorth America Operations owner 9\n\n+INV-00081 Customer account with extended legal namEurope Operations owner 1\n\n+INV-00082 Customer account with extended legal namAsia Pacific Operations owner 2\n\n+INV-00083 Customer account with extended legal namLatin America Operations owner 3\n\n+INV-00084 Customer account with extended legal namNorth America Operations owner 4\n\n+INV-00085 Customer account with extended legal namEurope Operations owner 5\n\n+INV-00086 Customer account with extended legal namAsia Pacific Operations owner 6\n\n+INV-00087 Customer account with extended legal namLatin America Operations owner 7\n\n+INV-00088 Customer account with extended legal namNorth America Operations owner 8\n\n+INV-00089 Customer account with extended legal namEurope Operations owner 9\n\n+INV-00090 Customer account with extended legal namAsia Pacific Operations owner 1\n\n+INV-00091 Customer account with extended legal namLatin America Operations owner 2\n\n+INV-00092 Customer account with extended legal namNorth America Operations owner 3\n\n+INV-00093 Customer account with extended legal namEurope Operations owner 4\n\n+INV-00094 Customer account with extended legal namAsia Pacific Operations owner 5\n\n+INV-00095 Customer account with extended legal namLatin America Operations owner 6\n\n+INV-00096 Customer account with extended legal namNorth America Operations owner 7\n\n+INV-00097 Customer account with extended legal namEurope Operations owner 8\n\n+INV-00098 Customer account with extended legal namAsia Pacific Operations owner 9\n\n+INV-00099 Customer account with extended legal namLatin America Operations owner 1\n\n+INV-00100 Customer account with extended legal namNorth America Operations owner 2\n\n+INV-00101 Customer account with extended legal namEurope Operations owner 3\n\n+INV-00102 Customer account with extended legal namAsia Pacific Operations owner 4\n\n+INV-00103 Customer account with extended legal namLatin America Operations owner 5\n\n+INV-00104 Customer account with extended legal namNorth America Operations owner 6\n\n+INV-00105 Customer account with extended legal namEurope Operations owner 7\n\n+INV-00106 Customer account with extended legal namAsia Pacific Operations owner 8\n\n+INV-00107 Customer account with extended legal namLatin America Operations owner 9\n\n+INV-00108 Customer account with extended legal namNorth America Operations owner 1\n\n+INV-00109 Customer account with extended legal namEurope Operations owner 2\n\n+INV-00110 Customer account with extended legal namAsia Pacific Operations owner 3\n\n+INV-00111 Customer account with extended legal namLatin America Operations owner 4\n\n+INV-00112 Customer account with extended legal namNorth America Operations owner 5\n\n+INV-00113 Customer account with extended legal namEurope Operations owner 6\n\n+INV-00114 Customer account with extended legal namAsia Pacific Operations owner 7", + "visual_scores": [ + 0.807, + 0.8077, + 0.8063 + ], + "visual_avg": 0.807, + "diff_images": [ + { + "page": 1, + "minipdf_img": "XlsxIssue81_LayoutOptions_p1_minipdf.png", + "reference_img": "XlsxIssue81_LayoutOptions_p1_reference.png", + "auxiliary_img": "XlsxIssue81_LayoutOptions_p1_libreoffice.png", + "heatmap_img": "XlsxIssue81_LayoutOptions_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1650 + ], + "difference_bbox_px": [ + 36, + 74, + 1068, + 1570 + ], + "changed_pixels": 511187, + "changed_fraction": 0.249646, + "mean_abs_rgb": 32.0216, + "rmse_rgb": 77.0589, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue81_LayoutOptions_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "XlsxIssue81_LayoutOptions_p2_minipdf.png", + "reference_img": "XlsxIssue81_LayoutOptions_p2_reference.png", + "auxiliary_img": "XlsxIssue81_LayoutOptions_p2_libreoffice.png", + "heatmap_img": "XlsxIssue81_LayoutOptions_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1650 + ], + "difference_bbox_px": [ + 36, + 74, + 1068, + 1570 + ], + "changed_pixels": 512225, + "changed_fraction": 0.250153, + "mean_abs_rgb": 32.1024, + "rmse_rgb": 77.1614, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue81_LayoutOptions_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "XlsxIssue81_LayoutOptions_p3_minipdf.png", + "reference_img": "XlsxIssue81_LayoutOptions_p3_reference.png", + "auxiliary_img": "XlsxIssue81_LayoutOptions_p3_libreoffice.png", + "heatmap_img": "XlsxIssue81_LayoutOptions_p3_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1650 + ], + "difference_bbox_px": [ + 36, + 74, + 1068, + 1570 + ], + "changed_pixels": 511075, + "changed_fraction": 0.249591, + "mean_abs_rgb": 31.9801, + "rmse_rgb": 77.0071, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue81_LayoutOptions_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.8903 + }, + { + "name": "XlsxIssue82_5mb", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "XlsxIssue82_5mb", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue82_5mb.xlsx", + "suite": "issue", + "minipdf_size": 9053125, + "reference_size": 21494385, + "pdf_valid": true, + "minipdf_pages": 383, + "reference_pages": 766, + "compared_pages": 3, + "text_similarity": 0.6052, + "flat_text_similarity": 0.529, + "word_text_similarity": 0.2639, + "text_diff": "--- minipdf/XlsxIssue82_5mb.pdf\n+++ reference/XlsxIssue82_5mb.pdf\n@@ -1,143 +1,143 @@\n-Name Email Phone Address Company Text Descrip Ɵo Job Title\n\n-Quen Ɵn H oschiller@573.920.9 22808 LueMraz and Labore et Non delenEmergenc\n\n-Lowell Olseve.lind@720.754.6 67029 DecRosenbau Soluta nih Aut iste quFast Food\n\n-Sydnee Cr gunnar.sch13128126 908 Ma Ʃe Strosin, Ki Voluptate Sed aliquidInterac Ɵon\n\n-Tomasa D gerlach.ar +1 (276) 9787 Rey HBalistreri-KProvident Et cupiditaMotorcycl\n\n-Payton Kuherman.ba1-201-33353401 HahWolff-ErdmVero iste l Culpa id a Janitorial S\n\n-Constan Ɵn crist.elme (551) 609-32868 Kul Runolfsso Officia vol Aut non d Pressing M\n\n-Tad Hartmkathryn041-928-43477833 Kle Kunze, FraIpsum pra Facilis undTherapist\n\n-Tris Ɵan Lin li Ʃle.bobb +1.870.92 83843 ReeMitchell-SDignissimoEum beataTechnical\n\n-Miss Tierr gpredovic@912-817-0310 Elliot Ward-WildAb at evenAut voluptCredit Che\n\n-Nicole Ʃe S domenic4 +1-352-6113158 StoKerluke GrCulpa ea aQuos earuPostsecon\n\n-Rosalind Fkimberly.p16786269 700 Hya Ʃ Bode-Swi Ō Est et qui Eveniet teLoan Coun\n\n-Hector Braelarkin@s 1-458-225987 Isom SStrosin-KuLabore ut Quidem p Cement M\n\n-Marjory K brandyn.e1-210-606671 Kaci VMann, McMoles Ɵas Fuga et veBrokerage\n\n-Forrest Tuwilmer93@216.242.5 214 BahrinBlick, O'CoEnim earuAut sequi Musician\n\n-Kennedy Wgutkowski+1.321.40 693 MossiAbshire, RDolor doloRerum aspIndustrial-\n\n-Lysanne Hgebert@y +1.272.47 4137 BergNitzsche LAsperioresAt doloresInterviewe\n\n-Randall Dagreenholt 17024567 90795 Bei Lue Ʃgen, Blandi Ɵis n Et natus q Mixing and\n\n-Chanelle Bsally46@g14438889 8856 AngeYundt-Kirl Voluptas l Dolores mCommunic\n\n-Mr. Gregoudietrich@1-469-314750 Ebert Goye Ʃe In Unde odit Qui aut doClinical La\n\n-Rosalia Vodonna.sim13853465 9022 CletaAbbo Ʃ, Ca Soluta id tAut sit et aMechanica\n\n-Sigmund Tteresa93@+1.937.53 2314 CristAufderharConsectet QuibusdamProducer\n\n-Prof. Janicahe ƫnger 312.745.3 50901 LudSawayn, WSint aut reAlias sed vLoading M\n\n-Mr. Brad Flhickle@ya856-513-791499 MoKeebler, L AssumendAsperioresAircra Ō M\n\n-Christop Gdstrosin@(563) 429-150 BertraKreiger LtdQuas occaCommodi Aircra Ō Bo\n\n-Dr. Toni Merling43@+1-765-386102 AssuJenkins IncLaborum aUt aut et uLog Grade\n\n-Reece Fadekirlin@lo463.613.7 9314 SibylFeeney GrVoluptate Quo exercRecordkee\n\n-Izaiah Skilehgoye Ʃe@ 240-241-28932 BartoDavis-WelQui fuga dEnim quia Biologist\n\n-Mathilde Sromaguer 1-218-29880599 ProCarter-PurAb voluptaSimilique sFence Erec\n\n-Mr. Jarreddimitri.hay279.899.6 6187 ConnKonopelskAutem sit Soluta dol Paralegal\n\n-Kameron Psimone.hy1-510-89134203 KatS Ɵedeman Ipsa ut amPerspicia Ɵ Directory A\n\n-Miss Libbyathena68@+1.937.89 1155 Max D'Amore-WEst dolor eEum volupGrinder O\n\n-Nayeli Bernadia28@1-781-79758562 BotLi Ʃle, Volk Harum sunExercita Ɵo Life Scienc\n\n-Chaz Bogadevan58@+1.870.44 657 Clo Ɵld Stracke In Est animi eIllum cum Health Tec\n\n-Frieda Moemuller@ 1-458-70091308 BarJerde PLC RecusandaEst eos et Rotary Dri\n\n-Jarod Grimqblanda@283-286-9315 O'HarUpton GroAperiam aQuasi repeCrane and\n\n-Mr. Mor Ɵ raleigh27@+1.989.30 67860 Lar Sa Ʃerfield ArchitectoCorporis ipDrilling an\n\n-Jamel Waeborer.bab (603) 715-9430 PrudDach-KovaAliquid quMoles Ɵae Environme\n\n-Reggie Simrosemary.+1.406.75 82982 HagSteuber-JeAt quia maEt voluptaProduc Ɵon\n\n-Jermey M shanahan.361.565.1 3769 NathKlocko, Ol Ut quae u Id qui qua Computer\n\n-Ms. Be ƫe lschiller@ 813.448.1 3590 KayliHerman-S Omnis sit Libero qui Telephone\n\n-Jairo Stroseunice85@+1 (540) 99011 Jaku Champlin,ReiciendisDoloremq Visual Des\n\n-Delbert Mdskiles@w410.520.5 8242 Trac Raynor PL Modi evenConsequatStaff Psych\n\n-Mr. Huntemarlon.wi(754) 982-556 IsabelStreich, TrIn esse no Aut quam Product Sp\n\n-Dr. Nedra porter.sch(281) 622-58710 RoxRosenbau Ea eaque tPorro et e Engineer\n\n-Katrine Sareyes95@951.258.8 86792 EffiLakin-HarrItaque vel Animi voluRecep Ɵon\n\n-Dr. Jarrod ignacio.fei+1-318-42150 ClemmBogisich-SHic at et s Facere ra Ɵ PR Manag\n\n+Name Email Phone Address Company Text DescriptionJob Title\n\n+Quentin Hyoschiller@ 573.920.9822808 LueiMraz and SLabore et mNon deleniEmergency Management Specialis\n\n+Lowell Olsoeve.lind@b720.754.6467029 Dec RosenbaumSoluta nihi Aut iste qu Fast Food Cook\n\n+Sydnee Crisgunnar.sch 1.31E+10 908 MatteoStrosin, Kil VoluptatemSed aliquidInteraction Designer\n\n+Tomasa Diegerlach.arn+1 (276) 97787 Rey HaBalistreri-KProvident hEt cupidita Motorcycle Mechanic\n\n+Payton Kutherman.ba1-201-333-53401 Hah Wolff-ErdmVero iste laCulpa id amJanitorial Supervisor\n\n+Constantin crist.elmer@(551) 609-532868 KulaRunolfssonOfficia voluAut non doPressing Machine Operator\n\n+Tad Hartm kathryn04@1-928-434-77833 KleinKunze, FramIpsum praeFacilis undeTherapist\n\n+Tristian Linlittle.bobbi+1.870.92383843 ReedMitchell-StDignissimoEum beata Technical Writer\n\n+Miss Tierragpredovic@912-817-07310 Elliot FWard-WildAb at even Aut voluptaCredit Checkers Clerk\n\n+Nicolette S domenic43+1-352-61413158 StoltKerluke GroCulpa ea amQuos earumPostsecondary Education Adminis\n\n+Rosalind Frkimberly.p 1.68E+10 700 Hyatt CBode-SwiftEst et qui qEveniet temLoan Counselor\n\n+Hector Bra elarkin@sc1-458-225-987 Isom S Strosin-KuhLabore ut cQuidem poCement Mason and Concrete Fini\n\n+Marjory Kebrandyn.er1-210-606-671 Kaci Vi Mann, McLMolestias aFuga et verBrokerage Clerk\n\n+Forrest Turwilmer93@216.242.51214 Bahrin Blick, O'Co Enim earumAut sequi qMusician\n\n+Kennedy Wgutkowski. +1.321.400693 MossieAbshire, Ri Dolor dolo Rerum asp Industrial-Organizational Psycholo\n\n+Lysanne Hugebert@ya+1.272.4734137 BergeNitzsche LLAsperiores At dolores Interviewer\n\n+Randall Da greenholt.s 1.7E+10 90795 BeieLuettgen, HBlanditiis nEt natus quMixing and Blending Machine Ope\n\n+Chanelle Basally46@gm1.44E+10 8856 Ange Yundt-KirlinVoluptas laDolores moCommunication Equipment Repai\n\n+Mr. Gregorudietrich@1-469-314-750 Ebert SGoyette IncUnde odit dQui aut do Clinical Laboratory Technician\n\n+Rosalia Vondonna.simo 1.39E+10 9022 Cleta Abbott, Ca Soluta id teAut sit et a Mechanical Engineer\n\n+Sigmund Thteresa93@+1.937.5302314 Crist Aufderhar, ConsectetuQuibusdamProducer\n\n+Prof. Janiceahettinger@312.745.3550901 LudwSawayn, WSint aut reiAlias sed voLoading Machine Operator\n\n+Mr. Brad Felhickle@ya856-513-7891499 MosKeebler, LuAssumendaAsperiores Aircraft Mechanics OR Aircraft Se\n\n+Christop Grdstrosin@c(563) 429-4150 BertranKreiger Ltd Quas occaeCommodi aAircraft Body Repairer\n\n+Dr. Toni Moerling43@w+1-765-3826102 AssunJenkins Inc Laborum a Ut aut et u Log Grader and Scaler\n\n+Reece Fadeekirlin@low463.613.729314 Sibyl Feeney GroVoluptate eQuo exerci Recordkeeping Clerk\n\n+Izaiah Skilehgoyette@240-241-268932 BartoDavis-WelcQui fuga doEnim quia aBiologist\n\n+Mathilde S romaguera1-218-298-80599 ProhCarter-PurdAb volupta Similique s Fence Erector\n\n+Mr. Jarred dimitri.hay279.899.676187 Conn KonopelskiAutem sit pSoluta doloParalegal\n\n+Kameron Psimone.hya1-510-891-34203 KathStiedeman Ipsa ut amePerspiciatisDirectory Assistance Operator\n\n+Miss Libby athena68@+1.937.8951155 MaximD'Amore-WEst dolor e Eum voluptGrinder OR Polisher\n\n+Nayeli Bergnadia28@y1-781-797-58562 BotsLittle, Volk Harum sunExercitatio Life Science Technician\n\n+Chaz Bogandevan58@ +1.870.440657 Clotild Stracke IncEst animi eIllum cum qHealth Technologist\n\n+Frieda Mosemuller@e1-458-700-91308 BarbJerde PLC Recusanda Est eos et eRotary Drill Operator\n\n+Jarod Grimqblanda@b283-286-97315 O'HaraUpton Gro Aperiam acQuasi repe Crane and Tower Operator\n\n+Mr. Mortimraleigh27@+1.989.30667860 Larr Satterfield Architecto Corporis ip Drilling and Boring Machine Tool S\n\n+Jamel Waeborer.baby(603) 715-99430 PrudeDach-Kova Aliquid quoMolestiae qEnvironmental Scientist\n\n+Reggie Simrosemary.k+1.406.75482982 Hag Steuber-Je At quia maEt voluptasProduction Inspector\n\n+Jermey Mushanahan.s361.565.143769 NathaKlocko, OlsUt quae ullId qui quasComputer Hardware Engineer\n\n+Ms. Bettie lschiller@h813.448.173590 Kayli Herman-ScOmnis sit cLibero qui Telephone Station Installer and Re\n\n+Jairo Strosieunice85@+1 (540) 939011 JakubChamplin, Reiciendis DoloremquVisual Designer\n\n+Delbert Mudskiles@w 410.520.528242 Trace Raynor PLCModi even Consequat Staff Psychologist\n\n+Mr. Huntermarlon.wit(754) 982-6556 Isabell Streich, TroIn esse nonAut quam qProduct Specialist\n\n+Dr. Nedra Uporter.scho(281) 622-958710 RoxaRosenbaumEa eaque tePorro et et Engineer\n\n+Katrine Satreyes95@h951.258.8086792 EffieLakin-HarriItaque vel lAnimi volu Receptionist and Information Cler\n\n+Dr. Jarrod Fignacio.feil +1-318-420150 ClemmBogisich-StHic at et sinFacere rati PR Manager\n\n ---PAGE---\n\n-Brenna Sc helen57@14587640 8311 BoscOberbrun Vel nemo Esse earumRental Cle\n\n-Candice Rockoelpin@223.596.0 41509 RohParisian anConsequatAutem omInterior De\n\n-Hertha Gaurippin@b984-914-7459 Schus Bea Ʃy-Joh Labore pa Error beatAircra Ō La\n\n-Beverly Hebogisich.te479-344-287134 ElisVonRuedeAspernatuIncidunt e Therapist\n\n-Enos Wild judy32@g+1-540-891233 JamaKessler-M Tempore qSed fuga inPatrol Offi\n\n-Hannah Mkari66@m703.247.3 254 KarianVeum Ltd Veniam quEst aut incParalegal\n\n-Magdalen jaeden20@+1-916-38510 HeaneNader, WoNisi tenetuVoluptate School Bus\n\n-Prof. Kale schowalte341.552.5 132 CecileKshlerin, HDolores fuVero haru Teacher\n\n-Constanceconnelly.h980.839.7 72179 EsteTerry PLC Laudan Ɵu Enim expliCafeteria C\n\n-Caesar Duvdooley@719-855-68487 Mos Botsford-MRepudiandModi ad mEngine Ass\n\n-Dr. Barbarjulia.olson+1 (620) 35720 TranTillman-Ki Est quidemAutem recElectrotyp\n\n-Jarred Kle hagenes.m315-845-017850 TanPaucek, FeDignissimoDeleni Ɵ sa Real Estat\n\n-Nyasia Brarashad68@(313) 726-416 Elise LZboncak-AEnim in reAliquid reiInterac Ɵon\n\n-Rowena K mariah29@13854988 510 KlockoHayes, He Aliquid et Minima omDirector O\n\n-Dr. Aric Roalycia09@559-279-62580 GradWeissnat- Rerum ad Dolore ne Precious S\n\n-Murl Bahraubree74@380-613-18410 GranFlatley LLCNisi laboreIure repellOpera Ɵon\n\n-Enid Leffleerica89@y352.489.2 367 AdamCarter GroEt voluptaEos verita Ɵ Social and\n\n-Marjorie Hbergnaum1-283-4788007 Cam Rempel, KFugit atquDoloremq Webmaste\n\n-Delbert Scjune.ullric (732) 879-51422 BevCummeratNon volupMagnam nAnnounce\n\n-Armani Kr isaiah95@980-658-1423 Ritchi Schaefer-FSunt id quQuas quo Farmwork\n\n-Emery D'Adevin73@(240) 487-6003 DelmToy-WalteAccusan Ɵu Alias sed qMedical A\n\n-Kirs Ɵn Hilp baumbach308.654.5 7362 IsabeSchmi Ʃ Gr ConsequatEt sint ut eAircra Ō Ri\n\n-Prof. Dam conn.anna(862) 562-89821 JohSchoen-HiTotam autVoluptas pLoan Inter\n\n-Gerald Pri jovani.bail435.856.7 4772 FriedHaag Inc Id hic laudUt accusanPhysical T\n\n-Mr. Gersobeier.trev 1-617-68436154 BoyKrajcik-JacId id eligenDelectus rPostsecon\n\n-Zaria Boregleason.ny586-452-7957 Davis ArmstrongTotam dolCumque eChiropract\n\n-Dr. Felicia hertha.jac1-323-7089794 Ripp McLaughliDolor auteMaxime toElectrical E\n\n-Conner Ri goldner.m+1-830-54484 HudsoAltenwert Eum corpoNulla quiaSubstance\n\n-Mr. Rigoberunolfsson689.992.9 6028 QuigO'Conner Inventore CupiditateAircra Ō La\n\n-Prof. Gabrchad44@y661.756.4 8028 O'KeWyman, CDoloremq Et verita Ɵs HVAC Mec\n\n-Americo Hjsawayn@984-313-49743 CharLemke, Cr Sed recusaSit et dele Professor\n\n-Winona Wlitzy74@y 260-906-11509 RebeFahey, WoQuia culpaEt sequi utMaintenan\n\n-Miss Wen tbeier@ho+1-941-63537 WandLangworthTempore nBlandi Ɵis f Medical Tr\n\n-Dr. Vince Fbe Ʃe01@ +1-920-7958974 AusNicolas, CaAspernatuVolupta Ɵb Pump Ope\n\n-Kara Mori bea Ʃy.rob +1-567-47356 GradyHahn, Wo Sunt corpoVoluptate Prepress T\n\n-Peter Croobins.regin 283.923.3 189 FlorenLeannon I In illum voVoluptas dShoe and\n\n-Prof. Valenywolff@gm+1.628.58 65234 Fre Bernhard Aperiam r Quia est dBusiness D\n\n-Jevon Kosskfeest@jo(657) 881-83762 AniRolfson GrQui quam Quia op Ɵo Registered\n\n-Laurel Bahaleen58@+1.270.73 2715 HowJakubowskCum qui nDicta volu Legal Secr\n\n-Lazaro Barmarvin.ko (757) 784-189 Balist Jaskolski, Id et liberoEst quod nStreetcar O\n\n-Idella Lockgeo.kessle201.266.4 25945 WeKassulke GReiciendisAliquam uCoremakin\n\n-Lola Sanfoetorp@ya 717.721.4 144 Nick PAbbo Ʃ, Sc Volupta Ɵb Magnam aRailroad In\n\n-Brionna Prrcorkery@+1-708-91250 Ernes Ɵ Walsh-WaAt animi iuVoluptate Tex Ɵle Dy\n\n-Aniya S Ɵe bell.schae +1-734-325596 O'HaJerde and Sint ea moNobis voluLibrary Te\n\n-Stephan L katrine68@(678) 874-7545 Jade Klocko, Sc Officiis seqAperiam aHistorian\n\n-Mrs. Linnecandido.ke678.578.3 97459 HaaReinger-D Deserunt sExercita Ɵo Vice Presid\n\n-Dr. Harmozhartmann+1-626-79766 ManteWindler, BVeniam exHarum un Typese Ʃe\n\n+Brenna Schhelen57@y 1.46E+10 8311 BoscoOberbrunnVel nemo oEsse earumRental Clerk\n\n+Candice Rockoelpin@ 223.596.0941509 Roh Parisian anConsequat Autem om Interior Designer\n\n+Hertha Gayurippin@b 984-914-76459 Schust Beatty-Joh Labore par Error beataAircraft Launch Specialist\n\n+Beverly He bogisich.te479-344-2187134 ElisaVonRuedenAspernaturIncidunt esTherapist\n\n+Enos Wildejudy32@gm+1-540-8951233 Jama Kessler-MaTempore qSed fuga inPatrol Officer\n\n+Hannah Makari66@ma703.247.34254 Karian Veum Ltd Veniam qu Est aut inciParalegal\n\n+Magdalenajaeden20@+1-916-380510 Heane Nader, Wo Nisi tenetuVoluptates School Bus Driver\n\n+Prof. Kale Jschowalter341.552.57132 Cecile Kshlerin, H Dolores fugVero harumTeacher\n\n+Constance connelly.he980.839.7772179 EsteTerry PLC LaudantiumEnim explicCafeteria Cook\n\n+Caesar Durvdooley@b719-855-608487 MoseBotsford-MRepudiand Modi ad m Engine Assembler\n\n+Dr. Barbarajulia.olson@+1 (620) 305720 Trant Tillman-KieEst quidemAutem recuElectrotyper\n\n+Jarred Kleinhagenes.m315-845-0317850 Tani Paucek, Fe DignissimoDeleniti saeReal Estate Sales Agent\n\n+Nyasia Bradrashad68@(313) 726-3416 Elise LaZboncak-A Enim in recAliquid reicInteraction Designer\n\n+Rowena Kinmariah29@ 1.39E+10 510 Klocko Hayes, Het Aliquid et vMinima omDirector Of Marketing\n\n+Dr. Aric Ro alycia09@h559-279-692580 GradyWeissnat-HRerum ad aDolore neqPrecious Stone Worker\n\n+Murl Bahri aubree74@380-613-118410 GrantFlatley LLC Nisi labore Iure repellaOperations Research Analyst\n\n+Enid Lefflererica89@y 352.489.25367 AdamsCarter GrouEt voluptasEos veritat Social and Human Service Assistan\n\n+Marjorie H bergnaum.1-283-478-8007 CamrRempel, Ki Fugit atqueDoloremquWebmaster\n\n+Delbert Schjune.ullrich(732) 879-751422 BeveCummerat Non voluptMagnam n Announcer\n\n+Armani Krisisaiah95@g980-658-11423 RitchieSchaefer-F Sunt id qui Quas quo qFarmworker\n\n+Emery D'Amdevin73@h(240) 487-76003 Delm Toy-WalterAccusantiuAlias sed q Medical Assistant\n\n+Kirstin Hilp baumbach 308.654.577362 Isabe Schmitt Gr Consequat Et sint ut e Aircraft Rigging Assembler\n\n+Prof. Damaconn.anna (862) 562-589821 JohnSchoen-HinTotam auteVoluptas p Loan Interviewer\n\n+Gerald Pricjovani.baile435.856.764772 Fried Haag Inc Id hic laudaUt accusanPhysical Therapist Aide\n\n+Mr. Gersonbeier.treve1-617-684-36154 Boy Krajcik-JacoId id eligenDelectus rePostsecondary Education Adminis\n\n+Zaria Borergleason.ny 586-452-77957 Davis LArmstrong,Totam doloCumque enChiropractor\n\n+Dr. Felicia Thertha.jaco1-323-708-9794 Rippi McLaughlinDolor aute Maxime to Electrical Engineer\n\n+Conner Ripgoldner.me+1-830-546484 Hudso AltenwerthEum corpo Nulla quia Substance Abuse Social Worker\n\n+Mr. Rigoberunolfsson 689.992.906028 Quigl O'Conner aInventore sCupiditate Aircraft Launch Specialist\n\n+Prof. Gabri chad44@y 661.756.428028 O'KeeWyman, ChDoloremquEt veritatis HVAC Mechanic\n\n+Americo Hyjsawayn@v984-313-479743 Charl Lemke, CroSed recusa Sit et delenProfessor\n\n+Winona W litzy74@ya260-906-151509 RebecFahey, Wo Quia culpa Et sequi ut Maintenance Supervisor\n\n+Miss Wendtbeier@ho +1-941-632537 WandaLangworth Tempore nBlanditiis fuMedical Transcriptionist\n\n+Dr. Vince F bette01@b+1-920-79158974 AustNicolas, CaAspernaturVoluptatib Pump Operators\n\n+Kara Moris beatty.rob +1-567-479356 Grady Hahn, WolfSunt corpoVoluptate dPrepress Technician\n\n+Peter Croo bins.regina283.923.32189 Floren Leannon InIn illum volVoluptas d Shoe and Leather Repairer\n\n+Prof. Valenywolff@gm+1.628.58465234 FreeBernhard aAperiam reQuia est doBusiness Development Manager\n\n+Jevon Koss kfeest@joh(657) 881-183762 AnitRolfson GroQui quam aQuia optio Registered Nurse\n\n+Laurel Bah aleen58@h+1.270.7322715 HoweJakubowsk Cum qui noDicta volupLegal Secretary\n\n+Lazaro Bartmarvin.koh(757) 784-4189 BalistreJaskolski, BId et liberoEst quod n Streetcar Operator\n\n+Idella Lock geo.kessler201.266.4525945 WebKassulke G Reiciendis Aliquam utCoremaking Machine Operator\n\n+Lola Sanforetorp@yah717.721.40144 Nick PoAbbott, SchVoluptatib Magnam a Railroad Inspector\n\n+Brionna Prorcorkery@y+1-708-918250 ErnestiWalsh-WatAt animi iu VoluptatemTextile Dyeing Machine Operator\n\n+Aniya Stiedbell.schaef +1-734-3205596 O'HarJerde and SSint ea mo Nobis volu Library Technician\n\n+Stephan Lekatrine68@(678) 874-47545 Jade Klocko, SchOfficiis seqAperiam arHistorian\n\n+Mrs. Linneacandido.ke678.578.3697459 Haa Reinger-DuDeserunt s Exercitatio Vice President Of Human Resourc\n\n+Dr. Harmonzhartmann+1-626-797766 ManteWindler, BeVeniam expHarum undTypesetter\n\n ---PAGE---\n\n-Nora Kub angie.berg18388205 648 HiltonLang and SRepudiandSaepe aut Extruding\n\n-Camylle G morn@sa 1-763-493639 Rex WBosco-Mc Dolor fugaExcepturi Glazier\n\n-Keara Croogertrude.r+1 (281) 66663 OletaHodkiewicTempore nUt vel et vElementar\n\n-Louisa Vanjordi77@g(919) 523-5284 Kars Klocko GroUt voluptaIllo eum p Service Sta\n\n-Dr. Floyd Bimelda.die+1-407-80386 BoscoDenesik-C Ut esse seEsse fugit Administra\n\n-Rachael Crgturner@g520.490.4 291 EstelleO'Conner,Est et doloEt minimaSheet Met\n\n-Johann M guy56@do1-347-934560 HayesStamm, StEt exercitaUnde eius Glass Cu ƫ\n\n-Silas Danieelissa29@+1-878-7941157 WisDouglas, WFacere arcAt nobis qMusician\n\n-Prof. Donamarcos82@+1.312.56 925 Buckr Jacobi-HarQuam mo Delectus pCultural St\n\n-Evan Wi ƫ sheaney@1-747-52026634 GiaZiemann-BDignissimoSit voluptaRehabilita\n\n-Prof. Mohraymond.f+1 (564) 328142 LouFay Ltd Est eum siDolores vi Grounds M\n\n-Prof. Veroyweissnat@1-414-5196123 Wes O'Conner Excepturi Odio aut sBra ƫce Bu\n\n-Jovani Labschaden.m+1.641.30 4512 TremCole Inc Sit doloresPraesen Ɵu Precision A\n\n-Mya Hesseathena67@+1-279-66115 Kaci InDooley, JaNemo aliaNobis a reParking Lo\n\n-Miss Auguryan.allie@351.225.7 92497 JamPredovic, Tenetur naUt omnis vCSI\n\n-Deonte Prnicola.web1-985-88099073 RosEmmerichAt vitae veQui nam nDoor To D\n\n-Simeon Grcorbin.kut+1-774-60209 RueckO'Conner AssumendQui reprehNetwork A\n\n-Blair Kohlevschmidt@502.577.2 2647 LeopKohler-Ba Qui deseruNihil maioShu Ʃle Ca\n\n-Devonte Harjun96@ 1-240-68557897 Lar Bailey PLCAliquid quLaudan Ɵu Prosthodo\n\n-Genoveva samantha 551-831-02967 MikeO'Conner,Autem ne Ipsum repProsthodo\n\n-Deborah Ojewel.berg(225) 395-59250 Kie Morisse Ʃe Libero ipsuDicta quasTour Guid\n\n-Earline Gr rasheed.b +1-407-8750070 BreDare GrouQui recusaSunt ut re Customer\n\n-Dr. Jordonjamaal57@(586) 597-5542 HermWeissnat, Eum iure aCorrup Ɵ e Tour Guid\n\n-Prof. Fran amina82@(973) 709-197 HelmeBashirian GOdio est qNatus con Command\n\n-Arno Jast evan.harri361-989-945465 TreWest PLC Ut a et pe Et atque aBookkeep\n\n-Bonita Lemmallory.zie+1.540.65 8639 Go Ʃ KonopelskQuam ea mMaxime a Aircra Ō Ca\n\n-Ms. Shannbergnaum+1 (540) 2695 HeathRempel Lt Hic alias v Rerum praRefrigera Ɵ\n\n-Lucie Daviabernathy(469) 927-957 MacejFeil-Doyle Id non eumExcepturi Conveyor\n\n-Je ƫe Kula ylarson@y727.916.9 9064 GweJacobs, ZuEos qui ut Esse rem vSocial Serv\n\n-Eda Ullrichcrona.jacq423-823-56441 GulgUpton Inc Magnam eEst doloreChild Care\n\n-Carley Mc tromp.jun (478) 585-19627 VeuPowlowsk Eveniet auRepudiandCarpenter\n\n-Dr. Americsbrown@g1-458-858261 Lue Ʃg Ebert and Cum esse QuisquamRadio Mec\n\n-Grace Cor marilou.to+1.847.44 9700 Will Mante LLCEst in voluQuibusdamPostmaste\n\n-Dr. Zane Cgbode@m+1 (973) 2398 Alan LRatke, WoQuia fugiaEaque mo Animal Hu\n\n-Trever Hillhills.hassa1-803-390463 Skiles Bogisich PUt et quia Natus quaReal Estat\n\n-Glenda Ritxkulas@ya417.525.8 46182 HirtEmmerichEst fuga naEt architecAnimal Bre\n\n-Leon Gerlafullrich@c1-754-62537482 Elb Rosenbau Earum beaAlias et et Speech-La\n\n-Jacky Schaqnienow@13806463 741 HayesSpinka-Ro AccusamuIn amet duInsurance\n\n-Miss Bern flatley.den1-850-87250381 KshEichmann-Rerum ut Error minuBindery M\n\n-Rick Jenkinawaters@(210) 663-6543 LoweBayer LLC Eum maio Consectet Sys Admin\n\n-Mr. Kamroelissa.hint747-447-88169 Karl Zulauf-StreNihil qui qDolores utFinancial E\n\n-Albina Maleonor.pu 602.426.7 119 Payto White, GisSimilique eSit maioreMail Clerk\n\n-Adam Bergflabadie@682-981-096270 SpoAbshire-PrLaborum aIpsum repBroadcast\n\n-Rafael Germeggie.zb858.951.4 9711 BashUpton Inc Et quo perId non et mOccupa Ɵo\n\n-Prof. Hermxbarton@ +1-412-53936 MabeJakubowskFacilis libeVolupta Ɵb Valve Rep\n\n-Prof. Monyost.cydne480.295.0 22290 AbsEmard-Be Aut repell Commodi Marine Ca\n\n-Sarah Led ona29@w602.463.4 72401 TroJenkins-MDolores quSunt id maTelecomm\n+Nora Kub angie.bergs 1.84E+10 648 Hilton Lang and S Repudiand Saepe aut vExtruding Machine Operator\n\n+Camylle Gumorn@san1-763-493-639 Rex WaBosco-McCDolor fuga Excepturi eGlazier\n\n+Keara Croogertrude.ro+1 (281) 666663 OletaHodkiewiczTempore nUt vel et veElementary and Secondary Schoo\n\n+Louisa Van jordi77@gm(919) 523-55284 KarsoKlocko GroUt voluptatIllo eum poService Station Attendant\n\n+Dr. Floyd B imelda.diet+1-407-803386 Bosco Denesik-CoUt esse sedEsse fugit uAdministrative Support Superviso\n\n+Rachael Crogturner@g 520.490.43291 Estelle O'Conner, Est et dolo Et minima Sheet Metal Worker\n\n+Johann Muguy56@do 1-347-934-560 Hayes Stamm, StrEt exercitatUnde eius qGlass Cutting Machine Operator\n\n+Silas Danie elissa29@k+1-878-79041157 WisoDouglas, WFacere archAt nobis quMusician\n\n+Prof. Dona marcos82@+1.312.562925 BuckridJacobi-Har Quam moleDelectus peCultural Studies Teacher\n\n+Evan Wittinsheaney@y1-747-520-26634 GianZiemann-B DignissimoSit volupta Rehabilitation Counselor\n\n+Prof. Moharaymond.fr+1 (564) 3028142 LourFay Ltd Est eum sinDolores vit Grounds Maintenance Worker\n\n+Prof. Veronyweissnat@1-414-519-6123 West O'Conner GExcepturi qOdio aut seBrattice Builder\n\n+Jovani Labaschaden.m+1.641.3014512 Trem Cole Inc Sit dolores Praesentiu Precision Aircraft Systems Assemb\n\n+Mya Hesse athena67@+1-279-666115 Kaci In Dooley, JacNemo aliasNobis a repParking Lot Attendant\n\n+Miss Augusryan.allie@351.225.7692497 Jam Predovic, STenetur naUt omnis v CSI\n\n+Deonte Pronicola.web 1-985-880-99073 RoscEmmerich-At vitae ve Qui nam niDoor To Door Sales\n\n+Simeon Grecorbin.kutc+1-774-603209 RueckeO'Conner PAssumendaQui repreh Network Admin OR Computer Sys\n\n+Blair Kohle vschmidt@502.577.252647 LeopoKohler-BartQui deseruNihil maiorShuttle Car Operator\n\n+Devonte Haarjun96@s1-240-685-57897 Lars Bailey PLC Aliquid qui LaudantiumProsthodontist\n\n+Genoveva samantha4551-831-012967 MikelO'Conner, Autem nemIpsum reprProsthodontist\n\n+Deborah Ojewel.bergn(225) 395-359250 Kier Morissette Libero ipsuDicta quas Tour Guide\n\n+Earline Grerasheed.bla+1-407-87250070 BreaDare GroupQui recusa Sunt ut repCustomer Service Representative\n\n+Dr. Jordon jamaal57@(586) 597-15542 HermWeissnat, REum iure a Corrupti euTour Guide\n\n+Prof. Francamina82@(973) 709-1197 Helme Bashirian GOdio est quNatus consCommand Control Center Officer\n\n+Arno Jast evan.harris361-989-9345465 TremWest PLC Ut a et per Et atque al Bookkeeper\n\n+Bonita Lemmallory.zie+1.540.6558639 GottliKonopelskiQuam ea mMaxime as Aircraft Cargo Handling Superviso\n\n+Ms. Shannobergnaum.+1 (540) 26695 HeathcRempel LtdHic alias voRerum praeRefrigeration Mechanic\n\n+Lucie Davisabernathy.(469) 927-7957 MacejkFeil-Doyle Id non eumExcepturi oConveyor Operator\n\n+Jettie Kulasylarson@ya727.916.919064 GwenJacobs, Zul Eos qui ut aEsse rem v Social Service Specialists\n\n+Eda Ullrich crona.jacqu423-823-536441 GulgoUpton Inc Magnam e Est doloremChild Care\n\n+Carley McKtromp.juni (478) 585-219627 Veu Powlowski-Eveniet autRepudiand Carpenter Assembler and Repaire\n\n+Dr. Americ sbrown@g 1-458-858-261 LuettgeEbert and SCum esse sQuisquam Radio Mechanic\n\n+Grace Corkmarilou.tow+1.847.4489700 Will RMante LLC Est in volupQuibusdamPostmasters\n\n+Dr. Zane Cogbode@mo+1 (973) 23398 Alan LiRatke, WolQuia fugiatEaque modAnimal Husbandry Worker\n\n+Trever Hillshills.hassan1-803-390-463 Skiles SBogisich PLUt et quia dNatus quaeReal Estate Sales Agent\n\n+Glenda Ritcxkulas@ya 417.525.8246182 Hirt Emmerich, Est fuga naEt architectAnimal Breeder\n\n+Leon Gerla fullrich@cr1-754-625-37482 ElbeRosenbaumEarum bea Alias et et nSpeech-Language Pathologist\n\n+Jacky Schamqnienow@ 1.38E+10 741 Hayes Spinka-RodAccusamusIn amet du Insurance Underwriter\n\n+Miss Bernitflatley.den 1-850-872-50381 Kshl Eichmann- Rerum ut cError minu Bindery Machine Operator\n\n+Rick Jenkinawaters@g(210) 663-16543 Lowe Bayer LLC Eum maiorConsectetuSys Admin\n\n+Mr. Kamro elissa.hintz747-447-888169 Karl GZulauf-StreNihil qui quDolores ut Financial Examiner\n\n+Albina Manleonor.pur 602.426.75119 PaytonWhite, GislSimilique eSit maioresMail Clerk\n\n+Adam Bergflabadie@c682-981-0196270 Spo Abshire-ProLaborum a Ipsum repeBroadcast News Analyst\n\n+Rafael Gerlmeggie.zbo858.951.459711 BashiUpton Inc Et quo persId non et mOccupational Therapist Aide\n\n+Prof. Hermxbarton@o+1-412-537936 Mabel Jakubowsk Facilis liberVoluptatib Valve Repairer OR Regulator Repa\n\n+Prof. Montyost.cydne 480.295.0922290 AbshEmard-Ber Aut repellaCommodi bMarine Cargo Inspector\n\n+Sarah Lednona29@we602.463.4972401 TromJenkins-MaDolores quSunt id ma Telecommunications Facility Exam", + "visual_scores": [ + 0.841, + 0.841, + 0.8394 + ], + "visual_avg": 0.8405, + "diff_images": [ + { + "page": 1, + "minipdf_img": "XlsxIssue82_5mb_p1_minipdf.png", + "reference_img": "XlsxIssue82_5mb_p1_reference.png", + "auxiliary_img": "XlsxIssue82_5mb_p1_libreoffice.png", + "heatmap_img": "XlsxIssue82_5mb_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1650 + ], + "difference_bbox_px": [ + 106, + 122, + 1100, + 1523 + ], + "changed_pixels": 434905, + "changed_fraction": 0.212392, + "mean_abs_rgb": 31.9401, + "rmse_rgb": 78.688, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue82_5mb_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "XlsxIssue82_5mb_p2_minipdf.png", + "reference_img": "XlsxIssue82_5mb_p2_reference.png", + "auxiliary_img": "XlsxIssue82_5mb_p2_libreoffice.png", + "heatmap_img": "XlsxIssue82_5mb_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1650 + ], + "difference_bbox_px": [ + 106, + 122, + 1100, + 1522 + ], + "changed_pixels": 430451, + "changed_fraction": 0.210217, + "mean_abs_rgb": 31.5113, + "rmse_rgb": 78.0558, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue82_5mb_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "XlsxIssue82_5mb_p3_minipdf.png", + "reference_img": "XlsxIssue82_5mb_p3_reference.png", + "auxiliary_img": "XlsxIssue82_5mb_p3_libreoffice.png", + "heatmap_img": "XlsxIssue82_5mb_p3_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1650 + ], + "difference_bbox_px": [ + 106, + 122, + 1100, + 1522 + ], + "changed_pixels": 433772, + "changed_fraction": 0.211839, + "mean_abs_rgb": 31.8166, + "rmse_rgb": 78.4756, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue82_5mb_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.6783 + }, + { + "name": "XlsxIssue82_SampleTestData5mb", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "XlsxIssue82_SampleTestData5mb", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue82_SampleTestData5mb.xlsx", + "suite": "issue", + "minipdf_size": 12343878, + "reference_size": 32924505, + "pdf_valid": true, + "minipdf_pages": 466, + "reference_pages": 1668, + "compared_pages": 3, + "text_similarity": 0.6595, + "flat_text_similarity": 0.6586, + "word_text_similarity": 0.6595, + "text_diff": "--- minipdf/XlsxIssue82_SampleTestData5mb.pdf\n+++ reference/XlsxIssue82_SampleTestData5mb.pdf\n@@ -1,131 +1,146 @@\n-ID Name Email City Country DepartmenNotes Value1 Value2 RandomTe\n\n-1 User 1 user1@exaToronto UK IT pwJqdCFm760613 0.6770745 aJ3NulIjekF\n\n-2 User 2 user2@exaDelhi Germany IT S6gI ƩJQrYi 456305 0.8501621 pf092rX59\n\n-3 User 3 user3@exaSydney UK Finance mmp5R2o 802115 0.4416719 FICghVXe4\n\n-4 User 4 user4@exaBerlin Australia HR BpiYtDuC1 929132 0.9823118 Dqy4Y ĬZV\n\n-5 User 5 user5@exaBerlin France HR DXnTIbeTy178492 0.9325545 KXaj1Xiogb\n\n-6 User 6 user6@exaDelhi Australia HR Iw9DkBED 518412 0.1261322 U601Kz3aU\n\n-7 User 7 user7@exaToronto Australia Finance tN5mvZpZ 72218 0.5143867 GuleIeBIYZ\n\n-8 User 8 user8@exaTokyo USA Ops xqmF3Xc2n238623 0.8771951 kEPOh7wm\n\n-9 User 9 user9@exaLondon Australia Ops k099328Ns369743 0.6153598 D5YOUBW\n\n-10 User 10 user10@exDelhi Germany IT 3YvAHvcSG24089 0.9405732 goDwaKqv\n\n-11 User 11 user11@exSydney France Sales r2O9ZtMJy929463 0.4255768 F4rYXgsl2m\n\n-12 User 12 user12@exTokyo Japan Sales y8JVUgTdff777742 0.6389745 wNpAAEw\n\n-13 User 13 user13@exTokyo India Support v5XTbqBU 223784 0.2318513 FlobOTEN9\n\n-14 User 14 user14@exNew York Japan Ops pxwvBMPV187168 0.7562123 cJSx1oYMF\n\n-15 User 15 user15@exSydney Japan Ops NPs68SCLX332785 0.3476629 82hWYSRr\n\n-16 User 16 user16@exDelhi Canada Ops JMgIo6JDv 966595 0.1094971 4BAbUAcF\n\n-17 User 17 user17@exParis Australia Ops LWFef8uCc429423 0.1728704 UQEtbOYiF\n\n-18 User 18 user18@exTokyo Australia Ops 4y2atULBn179954 0.9145142 AKEBEMk7\n\n-19 User 19 user19@exBerlin France Finance MoiyHIdz6416476 0.4178345 yKogEsvtgj\n\n-20 User 20 user20@exLondon India Sales Gg4eeM2f 152083 0.2796520 4bCh4zWg\n\n-21 User 21 user21@exTokyo India Finance hk0tj7hQtj913510 0.5214737 uQ5Qw22c\n\n-22 User 22 user22@exNew York UK IT FexqT7i2Zp959850 0.2004013 6WLsCwBv\n\n-23 User 23 user23@exSydney Japan Ops wZdZL0KlV813108 0.0758993 ovnVvOjCS\n\n-24 User 24 user24@exLondon Germany Support I6go0j9fZK 175461 0.2702658 euHzFEtXjD\n\n-25 User 25 user25@exLondon Canada Ops eE9wvY61e582815 0.8325950 4E725SLTR\n\n-26 User 26 user26@exTokyo Japan Support vTlTmSLZK698910 0.0572326 63fo6sebU\n\n-27 User 27 user27@exDelhi UK Ops 001jLkp56y463742 0.6366096 cPF7y1qrq\n\n-28 User 28 user28@exTokyo India Ops JYMn1HVG185984 0.7516507 aFVmUW0\n\n-29 User 29 user29@exLondon India Sales kDD8aBkfu110478 0.8380068 e8DIRNwL\n\n-30 User 30 user30@exBerlin UK Ops vt3rlC8s2T 165682 0.4784513 cuF6nwLU\n\n-31 User 31 user31@exSydney Canada Ops Sy0TGdVhk300288 0.5455362 17YQUGbp\n\n-32 User 32 user32@exLondon Japan IT nuLK3hv5k932811 0.9327351 RGlzsAMoP\n\n-33 User 33 user33@exTokyo Australia Finance 8QxYNykpz732250 0.0841050 14ZKlRNVj4\n\n-34 User 34 user34@exNew York Germany IT WpY292GK120021 0.2129102 zWJnnfwsk\n\n-35 User 35 user35@exParis India IT Jc9UIcHT95631634 0.3495153 aLR8YGHPO\n\n-36 User 36 user36@exSydney Canada Ops JuxIUrhxzG858909 0.8466705 8LPabTH0o\n\n-37 User 37 user37@exBerlin Germany Ops f3VPwwbQ335553 0.8283657 xevCKmwR\n\n-38 User 38 user38@exNew York India Support RK2dsJAxo77274 0.0923226 dG5rwOUq\n\n-39 User 39 user39@exLondon UK Ops h7clcYpBdQ127744 0.4235435 0zQYEUv9a\n\n-40 User 40 user40@exParis Canada IT 5fFW0pL9J766118 0.0962124 8uBRN1W1\n\n-41 User 41 user41@exTokyo Australia HR b0aptneoq18584 0.3069412 90pCYpBY8\n\n-42 User 42 user42@exSydney Canada HR zc3bKQDT0377914 0.1143153 ug1YisiJ5B6\n\n+ID Name Email City Country DepartmenNotes Value1 Value2\n\n+1 User 1 user1@exaToronto UK IT pwJqdCFm 760613 0.677075\n\n+2 User 2 user2@exaDelhi Germany IT S6gIttJQrYi 456305 0.850162\n\n+3 User 3 user3@exaSydney UK Finance mmp5R2oK 802115 0.441672\n\n+4 User 4 user4@exaBerlin Australia HR BpiYtDuC1 929132 0.982312\n\n+5 User 5 user5@exaBerlin France HR DXnTIbeTy 178492 0.932555\n\n+6 User 6 user6@exaDelhi Australia HR Iw9DkBEDh 518412 0.126132\n\n+7 User 7 user7@exaToronto Australia Finance tN5mvZpZF 72218 0.514387\n\n+8 User 8 user8@exaTokyo USA Ops xqmF3Xc2n 238623 0.877195\n\n+9 User 9 user9@exaLondon Australia Ops k099328Ns 369743 0.61536\n\n+10 User 10 user10@exDelhi Germany IT 3YvAHvcSG 24089 0.940573\n\n+11 User 11 user11@exSydney France Sales r2O9ZtMJy 929463 0.425577\n\n+12 User 12 user12@exTokyo Japan Sales y8JVUgTdff 777742 0.638975\n\n+13 User 13 user13@exTokyo India Support v5XTbqBUb 223784 0.231851\n\n+14 User 14 user14@exNew York Japan Ops pxwvBMPV 187168 0.756212\n\n+15 User 15 user15@exSydney Japan Ops NPs68SCLX 332785 0.347663\n\n+16 User 16 user16@exDelhi Canada Ops JMgIo6JDv 966595 0.109497\n\n+17 User 17 user17@exParis Australia Ops LWFef8uCc 429423 0.17287\n\n+18 User 18 user18@exTokyo Australia Ops 4y2atULBn 179954 0.914514\n\n+19 User 19 user19@exBerlin France Finance MoiyHIdz6 416476 0.417835\n\n+20 User 20 user20@exLondon India Sales Gg4eeM2f 152083 0.279652\n\n+21 User 21 user21@exTokyo India Finance hk0tj7hQtj 913510 0.521474\n\n+22 User 22 user22@exNew York UK IT FexqT7i2Zp 959850 0.200401\n\n+23 User 23 user23@exSydney Japan Ops wZdZL0KlV 813108 0.075899\n\n+24 User 24 user24@exLondon Germany Support I6go0j9fZK 175461 0.270266\n\n+25 User 25 user25@exLondon Canada Ops eE9wvY61e 582815 0.832595\n\n+26 User 26 user26@exTokyo Japan Support vTlTmSLZK 698910 0.057233\n\n+27 User 27 user27@exDelhi UK Ops 001jLkp56y 463742 0.63661\n\n+28 User 28 user28@exTokyo India Ops JYMn1HVG 185984 0.751651\n\n+29 User 29 user29@exLondon India Sales kDD8aBkfu 110478 0.838007\n\n+30 User 30 user30@exBerlin UK Ops vt3rlC8s2T 165682 0.478451\n\n+31 User 31 user31@exSydney Canada Ops Sy0TGdVhk 300288 0.545536\n\n+32 User 32 user32@exLondon Japan IT nuLK3hv5k 932811 0.932735\n\n+33 User 33 user33@exTokyo Australia Finance 8QxYNykpz 732250 0.084105\n\n+34 User 34 user34@exNew York Germany IT WpY292GK 120021 0.21291\n\n+35 User 35 user35@exParis India IT Jc9UIcHT95 631634 0.349515\n\n+36 User 36 user36@exSydney Canada Ops JuxIUrhxzG 858909 0.846671\n\n+37 User 37 user37@exBerlin Germany Ops f3VPwwbQ 335553 0.828366\n\n+38 User 38 user38@exNew York India Support RK2dsJAxo 77274 0.092323\n\n+39 User 39 user39@exLondon UK Ops h7clcYpBdQ 127744 0.423544\n\n+40 User 40 user40@exParis Canada IT 5fFW0pL9J 766118 0.096212\n\n+41 User 41 user41@exTokyo Australia HR b0aptneoq 18584 0.306941\n\n+42 User 42 user42@exSydney Canada HR zc3bKQDT0 377914 0.114315\n\n+43 User 43 user43@exSydney India IT kOXLmqe2 692339 0.917215\n\n+44 User 44 user44@exNew York Canada Sales IfbMmzIxeT 211604 0.760957\n\n+45 User 45 user45@exSydney Australia Ops pSgTVUUSc 678354 0.735938\n\n+46 User 46 user46@exToronto Australia Sales RfaAbjGWL 538685 0.10975\n\n+47 User 47 user47@exDelhi France IT qIEmsQfW 731498 0.602969\n\n ---PAGE---\n\n-43 User 43 user43@exSydney India IT kOXLmqe2692339 0.9172149 oziAXf1ScK\n\n-44 User 44 user44@exNew York Canada Sales I ĩMmzIxe 211604 0.7609569 6cuChdxef\n\n-45 User 45 user45@exSydney Australia Ops pSgTVUUS 678354 0.7359376 YqmZM6Q\n\n-46 User 46 user46@exToronto Australia Sales RfaAbjGW 538685 0.1097496 bgmSp49q\n\n-47 User 47 user47@exDelhi France IT qIEmsQfW731498 0.6029687 GdxIEtlPBr\n\n-48 User 48 user48@exToronto Japan HR gHfmzYTIg 949591 0.7494362 Jj5zeG3DcU\n\n-49 User 49 user49@exBerlin USA Finance y1rGMU6n942989 0.6763081 oznXGro8z\n\n-50 User 50 user50@exBerlin India Support 7hM3n4sC43099 0.8213021 EuGw0OQ\n\n-51 User 51 user51@exLondon Australia HR MmV8BaE 763744 0.8099885 XJETIxko9t\n\n-52 User 52 user52@exTokyo USA Sales XYWbId9ra567945 0.6771776 izWN8bHim\n\n-53 User 53 user53@exSydney India Ops wrhIJ4tOQ23173 0.7727330 H1whCyVf\n\n-54 User 54 user54@exBerlin UK Ops C1UzUHuIx640118 0.0928711 haO93rZXm\n\n-55 User 55 user55@exParis India Ops NwN8HJ0o861057 0.0633270 LEvHHR3L6\n\n-56 User 56 user56@exTokyo India Sales WCHK12hN781351 0.8121292 Vd3AvQeJc\n\n-57 User 57 user57@exNew York Japan Finance 52a67MbY553366 0.6360348 YiRarm1Pv\n\n-58 User 58 user58@exToronto UK Support zEDfqL3lSk571081 0.5216211 jw9NdvFPw\n\n-59 User 59 user59@exLondon Germany Ops GK2yaRjJ8G886667 0.2104232 vL4K3rOyA\n\n-60 User 60 user60@exSydney France Support uPoXGLysN120996 0.5698598 T6yRnrr92\n\n-61 User 61 user61@exTokyo France HR a0kjAST01V626587 0.9632653 N7dcOBQd\n\n-62 User 62 user62@exToronto Australia Sales Ca5t9ga4i0251280 0.8578650 XhopZtgu8\n\n-63 User 63 user63@exNew York France Ops X6vKuLHj2 374312 0.1000169 gls9pnyBaX\n\n-64 User 64 user64@exNew York Germany Sales KV3hqzMU542032 0.5769093 nQb817wG\n\n-65 User 65 user65@exNew York USA HR uMT8lMRA173041 0.1312740 D6wNDW0\n\n-66 User 66 user66@exBerlin India Sales K49Il5UBQ433186 0.5278215 O9XsNnkn\n\n-67 User 67 user67@exToronto India IT J7Y2aeVZO10813 0.4735151 DHH4M3H\n\n-68 User 68 user68@exDelhi India Support 7jeSfauKvK19370 0.7466147 B7PwW4P\n\n-69 User 69 user69@exLondon France HR jIpYsY4pZL 364549 0.2253328 IyOp6s2M4\n\n-70 User 70 user70@exDelhi India IT UwaV8I4Cw951943 0.7495851 JzUbUwYm\n\n-71 User 71 user71@exDelhi France Ops 0Ym9UoP1893176 0.3766673 ySdFxv18H\n\n-72 User 72 user72@exNew York India Support U6V62Wez70193 0.2139794 jbybfxkjGn\n\n-73 User 73 user73@exNew York UK Ops wH7id1Sd5157735 0.0699862 uG5xberBk\n\n-74 User 74 user74@exTokyo Japan IT 6N2f6QTvd335377 0.0463896 UVwuvCn9\n\n-75 User 75 user75@exParis Canada Finance I4WEtHWz686537 0.3693260 qy7vbZlWk\n\n-76 User 76 user76@exTokyo India Finance qvPya44Q2815804 0.3461168 t4eAXtrYsP\n\n-77 User 77 user77@exTokyo Japan Support 0orEFMnW349017 0.5786067 pe2IFbLuqJ\n\n-78 User 78 user78@exSydney India Finance 6wUPnX0T809884 0.4482304 wL2fDjOZ6\n\n-79 User 79 user79@exBerlin India Sales tOZjLiQMS585405 0.6793615 PMzwPuOr\n\n-80 User 80 user80@exBerlin France HR JmkJcjyJ51163635 0.6557601 Yy4x7aq6E\n\n-81 User 81 user81@exBerlin India Sales ymLZqumc336189 0.7734933 kazU4lZilm\n\n-82 User 82 user82@exSydney France HR 2ZDBcGlyI8519574 0.1512873 hTdECmFH\n\n-83 User 83 user83@exParis Australia Sales WJ8UNcsX739637 0.1624233 D79Vqncgu\n\n-84 User 84 user84@exParis USA Sales gJ5JKM9TF816943 0.3681694 dQJypGR24\n\n-85 User 85 user85@exTokyo Germany Ops 4Lwth3h5t294727 0.9645151 nSAj35RPs\n\n+48 User 48 user48@exToronto Japan HR gHfmzYTIg 949591 0.749436\n\n+49 User 49 user49@exBerlin USA Finance y1rGMU6n 942989 0.676308\n\n+50 User 50 user50@exBerlin India Support 7hM3n4sC 43099 0.821302\n\n+51 User 51 user51@exLondon Australia HR MmV8BaE0 763744 0.809989\n\n+52 User 52 user52@exTokyo USA Sales XYWbId9ra 567945 0.677178\n\n+53 User 53 user53@exSydney India Ops wrhIJ4tOQ 23173 0.772733\n\n+54 User 54 user54@exBerlin UK Ops C1UzUHuIx 640118 0.092871\n\n+55 User 55 user55@exParis India Ops NwN8HJ0o 861057 0.063327\n\n+56 User 56 user56@exTokyo India Sales WCHK12hN 781351 0.812129\n\n+57 User 57 user57@exNew York Japan Finance 52a67MbY 553366 0.636035\n\n+58 User 58 user58@exToronto UK Support zEDfqL3lSk 571081 0.521621\n\n+59 User 59 user59@exLondon Germany Ops GK2yaRjJ8G 886667 0.210423\n\n+60 User 60 user60@exSydney France Support uPoXGLysN 120996 0.56986\n\n+61 User 61 user61@exTokyo France HR a0kjAST01V 626587 0.963265\n\n+62 User 62 user62@exToronto Australia Sales Ca5t9ga4i0 251280 0.857865\n\n+63 User 63 user63@exNew York France Ops X6vKuLHj2 374312 0.100017\n\n+64 User 64 user64@exNew York Germany Sales KV3hqzMU 542032 0.576909\n\n+65 User 65 user65@exNew York USA HR uMT8lMRA 173041 0.131274\n\n+66 User 66 user66@exBerlin India Sales K49Il5UBQ 433186 0.527822\n\n+67 User 67 user67@exToronto India IT J7Y2aeVZO 10813 0.473515\n\n+68 User 68 user68@exDelhi India Support 7jeSfauKvK 19370 0.746615\n\n+69 User 69 user69@exLondon France HR jIpYsY4pZL 364549 0.225333\n\n+70 User 70 user70@exDelhi India IT UwaV8I4Cw 951943 0.749585\n\n+71 User 71 user71@exDelhi France Ops 0Ym9UoP1 893176 0.376667\n\n+72 User 72 user72@exNew York India Support U6V62Wez 70193 0.213979\n\n+73 User 73 user73@exNew York UK Ops wH7id1Sd5 157735 0.069986\n\n+74 User 74 user74@exTokyo Japan IT 6N2f6QTvd 335377 0.04639\n\n+75 User 75 user75@exParis Canada Finance I4WEtHWz 686537 0.369326\n\n+76 User 76 user76@exTokyo India Finance qvPya44Q2 815804 0.346117\n\n+77 User 77 user77@exTokyo Japan Support 0orEFMnW 349017 0.578607\n\n+78 User 78 user78@exSydney India Finance 6wUPnX0T 809884 0.44823\n\n+79 User 79 user79@exBerlin India Sales tOZjLiQMS 585405 0.679362\n\n+80 User 80 user80@exBerlin France HR JmkJcjyJ51 163635 0.65576\n\n+81 User 81 user81@exBerlin India Sales ymLZqumc 336189 0.773493\n\n+82 User 82 user82@exSydney France HR 2ZDBcGlyI8 519574 0.151287\n\n+83 User 83 user83@exParis Australia Sales WJ8UNcsX 739637 0.162423\n\n+84 User 84 user84@exParis USA Sales gJ5JKM9TF 816943 0.368169\n\n+85 User 85 user85@exTokyo Germany Ops 4Lwth3h5t 294727 0.964515\n\n+86 User 86 user86@exBerlin Australia Support qdHkuwuA 26051 0.155339\n\n+87 User 87 user87@exLondon Germany Sales Rm8ULi8zC 510690 0.214005\n\n+88 User 88 user88@exLondon Germany Ops RLiCwPFsf8 882997 0.530643\n\n+89 User 89 user89@exParis UK Ops 8uJGoN4bm 541389 0.648206\n\n+90 User 90 user90@exDelhi Australia Finance s3OwOdf4 182072 0.197334\n\n+91 User 91 user91@exNew York India Sales WNxiOf7t0 558356 0.110729\n\n+92 User 92 user92@exToronto Australia HR 6Ahj9jv5lv7 456649 0.237787\n\n+93 User 93 user93@exTokyo Japan Support oJ0UurS10 725729 0.667981\n\n+94 User 94 user94@exTokyo France Support 3S1nUyHzL 528395 0.574581\n\n+95 User 95 user95@exLondon Japan Ops pIeB2mVQ 824787 0.36571\n\n ---PAGE---\n\n-86 User 86 user86@exBerlin Australia Support qdHkuwuA26051 0.1553391 nZZZB3rto\n\n-87 User 87 user87@exLondon Germany Sales Rm8ULi8zC510690 0.2140052 QC331rVyz\n\n-88 User 88 user88@exLondon Germany Ops RLiCwPFsf8882997 0.5306427 uOObOMiF\n\n-89 User 89 user89@exParis UK Ops 8uJGoN4bm541389 0.6482057 wO9NiI7NF\n\n-90 User 90 user90@exDelhi Australia Finance s3OwOdf4 182072 0.1973342 5knRqv5hD\n\n-91 User 91 user91@exNew York India Sales WNxiOf7t0558356 0.1107289 SWlW1Yod\n\n-92 User 92 user92@exToronto Australia HR 6Ahj9jv5lv 456649 0.2377873 MWBsNJTe\n\n-93 User 93 user93@exTokyo Japan Support oJ0UurS10725729 0.6679805 JnpAFdtZaC\n\n-94 User 94 user94@exTokyo France Support 3S1nUyHzL528395 0.5745808 h8CfoCCHn\n\n-95 User 95 user95@exLondon Japan Ops pIeB2mVQ824787 0.3657098 zla4L847k1\n\n-96 User 96 user96@exNew York France IT hulUkDiMo235296 0.5696921 SBO8S ŅXK\n\n-97 User 97 user97@exLondon Japan HR HcWR2JVD820757 0.3114619 ysmCZ7IYo\n\n-98 User 98 user98@exToronto Canada Finance rzAyXFQJp 424891 0.4222309 MDPBvBfm\n\n-99 User 99 user99@exTokyo Canada IT 0812MWb 968152 0.1284013 VRvKjHgiQ\n\n-100 User 100 user100@eParis India IT NufGb8y3N843439 0.1581288 hZJR6K6I9o\n\n-101 User 101 user101@eToronto Japan IT deU8iHNYk34908 0.1964766 dzKPO8hFt\n\n-102 User 102 user102@eLondon Canada IT DhGtReG3 479050 0.7616127 qvZ2wvV2s\n\n-103 User 103 user103@eDelhi Germany IT eDxVpFoh8458438 0.1964282 taNTdhntk\n\n-104 User 104 user104@eSydney Australia Ops k8PUmmzK312354 0.7133815 zjjtTZsprhV\n\n-105 User 105 user105@eParis France Ops ZKoxM3lPT915347 0.3699949 NXNkwDRx\n\n-106 User 106 user106@eBerlin Japan Sales h9nfVqLXY702812 0.7484500 1PkadibIgv\n\n-107 User 107 user107@eSydney India Ops ahdv8h3CZ763038 0.0104155 NOpPEsayx\n\n-108 User 108 user108@eSydney USA Finance s4H4yCdRu758153 0.1850179 85n ŅbQlq\n\n-109 User 109 user109@eSydney USA IT mkVORAG 571933 0.4315153 L8SQDUYp\n\n-110 User 110 user110@eBerlin USA Finance Y4DpetM8219537 0.7557194 qYWL18pw\n\n-111 User 111 user111@eDelhi India Ops 1t60ENNne649507 0.1117389 Vq9y2RoEh\n\n-112 User 112 user112@eBerlin France IT GZkcW97c 187557 0.1275561 bXiL29EjRX\n\n-113 User 113 user113@eToronto Canada Support sHmAji1IXN297243 0.8072703 PWXElVXH\n\n-114 User 114 user114@eBerlin India Ops 48Aezwrq6315163 0.1882047 QzQhpniJD\n\n-115 User 115 user115@eTokyo France Ops 5iJn7C2wM78489 0.1588379 XOqPeijTfF\n\n-116 User 116 user116@eToronto UK Ops YJwkek68h160903 0.0992863 hPyZHq53G\n\n-117 User 117 user117@eSydney France IT dOkiXIQMk732106 0.2668870 3P83ZuF31\n\n-118 User 118 user118@eLondon Japan HR sfxPBku9Fv287096 0.0985303 imkFllt6GF\n\n-119 User 119 user119@eTokyo India Ops KDVrmeQK308729 0.4164513 9MAF6PLK\n\n-120 User 120 user120@eLondon Canada Ops jD9hrR0Gz 537720 0.7938233 t83P4yZUx\n\n-121 User 121 user121@eNew York USA HR c7kZ7tYKb 441172 0.2294726 QI5u7F7uk\n\n-122 User 122 user122@eSydney Canada Finance I1MExdeqH499737 0.9000335 4QSDIGe9T\n\n-123 User 123 user123@eLondon UK HR OHmzoY1W567629 0.0525116 6ohFIZRi8y\n\n-124 User 124 user124@eToronto Germany HR h1pzgN8BT722752 0.7936499 kIoGcYsEYL\n\n-125 User 125 user125@eSydney Canada HR f17e8htrtn218736 0.9971520 CuEityvykiW\n\n-126 User 126 user126@eSydney USA HR upw4M0l4324442 0.1536136 vX1aoo1S0\n\n-127 User 127 user127@eLondon France HR AQuCMExF738485 0.2527435 p6qqOrii2p\n\n-128 User 128 user128@eTokyo India Finance ExhcxbIlLsC133333 0.6261561 5KmmdfQu\n+96 User 96 user96@exNew York France IT hulUkDiMo 235296 0.569692\n\n+97 User 97 user97@exLondon Japan HR HcWR2JVD 820757 0.311462\n\n+98 User 98 user98@exToronto Canada Finance rzAyXFQJp 424891 0.422231\n\n+99 User 99 user99@exTokyo Canada IT 0812MWb 968152 0.128401\n\n+100 User 100 user100@eParis India IT NufGb8y3N 843439 0.158129\n\n+101 User 101 user101@eToronto Japan IT deU8iHNYk 34908 0.196477\n\n+102 User 102 user102@eLondon Canada IT DhGtReG3 479050 0.761613\n\n+103 User 103 user103@eDelhi Germany IT eDxVpFoh8 458438 0.196428\n\n+104 User 104 user104@eSydney Australia Ops k8PUmmzK 312354 0.713382\n\n+105 User 105 user105@eParis France Ops ZKoxM3lPT 915347 0.369995\n\n+106 User 106 user106@eBerlin Japan Sales h9nfVqLXY 702812 0.74845\n\n+107 User 107 user107@eSydney India Ops ahdv8h3CZ 763038 0.010416\n\n+108 User 108 user108@eSydney USA Finance s4H4yCdRu 758153 0.185018\n\n+109 User 109 user109@eSydney USA IT mkVORAGK 571933 0.431515\n\n+110 User 110 user110@eBerlin USA Finance Y4DpetM8 219537 0.755719\n\n+111 User 111 user111@eDelhi India Ops 1t60ENNne 649507 0.111739\n\n+112 User 112 user112@eBerlin France IT GZkcW97c 187557 0.127556\n\n+113 User 113 user113@eToronto Canada Support sHmAji1IXN 297243 0.80727\n\n+114 User 114 user114@eBerlin India Ops 48Aezwrq6 315163 0.188205\n\n+115 User 115 user115@eTokyo France Ops 5iJn7C2wM 78489 0.158838\n\n+116 User 116 user116@eToronto UK Ops YJwkek68h 160903 0.099286\n\n+117 User 117 user117@eSydney France IT dOkiXIQMk 732106 0.266887\n\n+118 User 118 user118@eLondon Japan HR sfxPBku9Fv 287096 0.09853\n\n+119 User 119 user119@eTokyo India Ops KDVrmeQK 308729 0.416451\n\n+120 User 120 user120@eLondon Canada Ops jD9hrR0Gz 537720 0.793823\n\n+121 User 121 user121@eNew York USA HR c7kZ7tYKbU 441172 0.229473\n\n+122 User 122 user122@eSydney Canada Finance I1MExdeqH 499737 0.900034\n\n+123 User 123 user123@eLondon UK HR OHmzoY1W 567629 0.052512\n\n+124 User 124 user124@eToronto Germany HR h1pzgN8BT 722752 0.79365\n\n+125 User 125 user125@eSydney Canada HR f17e8htrtn 218736 0.997152\n\n+126 User 126 user126@eSydney USA HR upw4M0l4 324442 0.153614\n\n+127 User 127 user127@eLondon France HR AQuCMExF 738485 0.252744\n\n+128 User 128 user128@eTokyo India Finance ExhcxbIlLsC 133333 0.626156\n\n+129 User 129 user129@eSydney Canada HR 3ISteehQH 348122 0.615977\n\n+130 User 130 user130@eTokyo France Ops bDyPWDq4 213592 0.004476\n\n+131 User 131 user131@eToronto Japan Ops gWYJqcRCR 929719 0.58812\n\n+132 User 132 user132@eTokyo Australia Ops 5Gyykn9s6 139678 0.1422\n\n+133 User 133 user133@eSydney Germany Support 7b87Byn4C 532024 0.521675\n\n+134 User 134 user134@eLondon Australia Support mNDhwFlU 184668 0.237346\n\n+135 User 135 user135@eParis USA Support EMsNaracP 578362 0.596993\n\n+136 User 136 user136@eDelhi Germany Support 8KEpYImbB 255681 0.772566\n\n+137 User 137 user137@eNew York Canada IT LR6JoYTkPJ 529150 0.677791\n\n+138 User 138 user138@eBerlin Australia Ops ifrlUWuVD 104741 0.173994\n\n+139 User 139 user139@eTokyo Australia IT rEmdtnwU 680725 0.970682\n\n+140 User 140 user140@eSydney UK Ops FGqYHnrao 644846 0.001783\n\n+141 User 141 user141@eLondon UK Ops JSlUmVmk 844498 0.290946\n\n+142 User 142 user142@eNew York Canada HR oW2cNeNj 186421 0.892564\n\n+143 User 143 user143@eLondon India Ops ui1afoCfLk 139589 0.524195", + "visual_scores": [ + 0.8861, + 0.8816, + 0.8807 + ], + "visual_avg": 0.8828, + "diff_images": [ + { + "page": 1, + "minipdf_img": "XlsxIssue82_SampleTestData5mb_p1_minipdf.png", + "reference_img": "XlsxIssue82_SampleTestData5mb_p1_reference.png", + "auxiliary_img": "XlsxIssue82_SampleTestData5mb_p1_libreoffice.png", + "heatmap_img": "XlsxIssue82_SampleTestData5mb_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 114, + 157, + 1078, + 1599 + ], + "changed_pixels": 356955, + "changed_fraction": 0.163988, + "mean_abs_rgb": 26.6364, + "rmse_rgb": 73.6748, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue82_SampleTestData5mb_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "XlsxIssue82_SampleTestData5mb_p2_minipdf.png", + "reference_img": "XlsxIssue82_SampleTestData5mb_p2_reference.png", + "auxiliary_img": "XlsxIssue82_SampleTestData5mb_p2_libreoffice.png", + "heatmap_img": "XlsxIssue82_SampleTestData5mb_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 114, + 157, + 1078, + 1600 + ], + "changed_pixels": 365254, + "changed_fraction": 0.167801, + "mean_abs_rgb": 27.2049, + "rmse_rgb": 74.4386, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue82_SampleTestData5mb_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "XlsxIssue82_SampleTestData5mb_p3_minipdf.png", + "reference_img": "XlsxIssue82_SampleTestData5mb_p3_reference.png", + "auxiliary_img": "XlsxIssue82_SampleTestData5mb_p3_libreoffice.png", + "heatmap_img": "XlsxIssue82_SampleTestData5mb_p3_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1241, + 1754 + ], + "difference_bbox_px": [ + 114, + 157, + 1078, + 1599 + ], + "changed_pixels": 369955, + "changed_fraction": 0.16996, + "mean_abs_rgb": 27.6909, + "rmse_rgb": 75.189, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue82_SampleTestData5mb_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.7169 + }, + { + "name": "XlsxIssue82_WideTable", + "minipdf_exists": true, + "reference_exists": true, + "report_scope": "java-issue-xlsx", + "case_id": "XlsxIssue82_WideTable", + "format": "xlsx", + "source_path": "tests/Issue_Files/xlsx/XlsxIssue82_WideTable.xlsx", + "suite": "issue", + "minipdf_size": 67131, + "reference_size": 467940, + "pdf_valid": true, + "minipdf_pages": 13, + "reference_pages": 13, + "compared_pages": 3, + "text_similarity": 0.9103, + "flat_text_similarity": 0.5423, + "word_text_similarity": 0.9103, + "text_diff": "--- minipdf/XlsxIssue82_WideTable.pdf\n+++ reference/XlsxIssue82_WideTable.pdf\n@@ -1,110 +1,113 @@\n Record ID First Name Last Name Street Address City Region Postal Code\n\n ID-00001 Naveen Adhikari 1000 North Evergreen Avenue Suite 200 Kathmandu WA 98000\n\n ID-00002 Alicia Patel 1001 North Evergreen Avenue Suite 201 Dublin BC 98001\n\n-ID-00003 Marcus Benne Ʃ 1002 North Evergreen Avenue Suite 202 Aus Ɵn WA 98002\n\n+ID-00003 Marcus Bennett 1002 North Evergreen Avenue Suite 202 Austin WA 98002\n\n ID-00004 Priya Olsen 1003 North Evergreen Avenue Suite 203 Berlin BC 98003\n\n ID-00005 Daniel Chen 1004 North Evergreen Avenue Suite 204 Singapore WA 98004\n\n-ID-00006 Mei Tanaka 1005 North Evergreen Avenue Suite 205 Sea Ʃle BC 98005\n\n-ID-00007 Sofia Kim 1006 North Evergreen Avenue Suite 206 Melbourne WA 98006\n\n+ID-00006 Mei Tanaka 1005 North Evergreen Avenue Suite 205 Seattle BC 98005\n\n+ID-00007 Sofia Kim 1006 North Evergreen Avenue Suite 206 Melbourne WA 98006\n\n ID-00008 Owen Morrison 1007 North Evergreen Avenue Suite 207 Toronto BC 98007\n\n ID-00009 Ibrahim Rodriguez 1008 North Evergreen Avenue Suite 208 Kathmandu WA 98008\n\n ID-00010 Caroline Singh 1009 North Evergreen Avenue Suite 209 Dublin BC 98009\n\n-ID-00011 Naveen Adhikari 1010 North Evergreen Avenue Suite 210 Aus Ɵn WA 98010\n\n+ID-00011 Naveen Adhikari 1010 North Evergreen Avenue Suite 210 Austin WA 98010\n\n ID-00012 Alicia Patel 1011 North Evergreen Avenue Suite 211 Berlin BC 98011\n\n-ID-00013 Marcus Benne Ʃ 1012 North Evergreen Avenue Suite 212 Singapore WA 98012\n\n-ID-00014 Priya Olsen 1013 North Evergreen Avenue Suite 213 Sea Ʃle BC 98013\n\n+ID-00013 Marcus Bennett 1012 North Evergreen Avenue Suite 212 Singapore WA 98012\n\n+ID-00014 Priya Olsen 1013 North Evergreen Avenue Suite 213 Seattle BC 98013\n\n ID-00015 Daniel Chen 1014 North Evergreen Avenue Suite 214 Melbourne WA 98014\n\n ID-00016 Mei Tanaka 1015 North Evergreen Avenue Suite 215 Toronto BC 98015\n\n-ID-00017 Sofia Kim 1016 North Evergreen Avenue Suite 216 Kathmandu WA 98016\n\n+ID-00017 Sofia Kim 1016 North Evergreen Avenue Suite 216 Kathmandu WA 98016\n\n ID-00018 Owen Morrison 1017 North Evergreen Avenue Suite 217 Dublin BC 98017\n\n-ID-00019 Ibrahim Rodriguez 1018 North Evergreen Avenue Suite 218 Aus Ɵn WA 98018\n\n+ID-00019 Ibrahim Rodriguez 1018 North Evergreen Avenue Suite 218 Austin WA 98018\n\n ID-00020 Caroline Singh 1019 North Evergreen Avenue Suite 219 Berlin BC 98019\n\n ID-00021 Naveen Adhikari 1020 North Evergreen Avenue Suite 220 Singapore WA 98020\n\n-ID-00022 Alicia Patel 1021 North Evergreen Avenue Suite 221 Sea Ʃle BC 98021\n\n-ID-00023 Marcus Benne Ʃ 1022 North Evergreen Avenue Suite 222 Melbourne WA 98022\n\n+ID-00022 Alicia Patel 1021 North Evergreen Avenue Suite 221 Seattle BC 98021\n\n+ID-00023 Marcus Bennett 1022 North Evergreen Avenue Suite 222 Melbourne WA 98022\n\n ID-00024 Priya Olsen 1023 North Evergreen Avenue Suite 223 Toronto BC 98023\n\n ID-00025 Daniel Chen 1024 North Evergreen Avenue Suite 224 Kathmandu WA 98024\n\n ID-00026 Mei Tanaka 1025 North Evergreen Avenue Suite 225 Dublin BC 98025\n\n-ID-00027 Sofia Kim 1026 North Evergreen Avenue Suite 226 Aus Ɵn WA 98026\n\n+ID-00027 Sofia Kim 1026 North Evergreen Avenue Suite 226 Austin WA 98026\n\n ID-00028 Owen Morrison 1027 North Evergreen Avenue Suite 227 Berlin BC 98027\n\n ID-00029 Ibrahim Rodriguez 1028 North Evergreen Avenue Suite 228 Singapore WA 98028\n\n-ID-00030 Caroline Singh 1029 North Evergreen Avenue Suite 229 Sea Ʃle BC 98029\n\n+ID-00030 Caroline Singh 1029 North Evergreen Avenue Suite 229 Seattle BC 98029\n\n ID-00031 Naveen Adhikari 1030 North Evergreen Avenue Suite 230 Melbourne WA 98030\n\n ID-00032 Alicia Patel 1031 North Evergreen Avenue Suite 231 Toronto BC 98031\n\n-ID-00033 Marcus Benne Ʃ 1032 North Evergreen Avenue Suite 232 Kathmandu WA 98032\n\n+ID-00033 Marcus Bennett 1032 North Evergreen Avenue Suite 232 Kathmandu WA 98032\n\n ID-00034 Priya Olsen 1033 North Evergreen Avenue Suite 233 Dublin BC 98033\n\n-ID-00035 Daniel Chen 1034 North Evergreen Avenue Suite 234 Aus Ɵn WA 98034\n\n+ID-00035 Daniel Chen 1034 North Evergreen Avenue Suite 234 Austin WA 98034\n\n+ID-00036 Mei Tanaka 1035 North Evergreen Avenue Suite 235 Berlin BC 98035\n\n ---PAGE---\n\n Record ID First Name Last Name Street Address City Region Postal Code\n\n-ID-00036 Mei Tanaka 1035 North Evergreen Avenue Suite 235 Berlin BC 98035\n\n-ID-00037 Sofia Kim 1036 North Evergreen Avenue Suite 236 Singapore WA 98036\n\n-ID-00038 Owen Morrison 1037 North Evergreen Avenue Suite 237 Sea Ʃle BC 98037\n\n+ID-00037 Sofia Kim 1036 North Evergreen Avenue Suite 236 Singapore WA 98036\n\n+ID-00038 Owen Morrison 1037 North Evergreen Avenue Suite 237 Seattle BC 98037\n\n ID-00039 Ibrahim Rodriguez 1038 North Evergreen Avenue Suite 238 Melbourne WA 98038\n\n ID-00040 Caroline Singh 1039 North Evergreen Avenue Suite 239 Toronto BC 98039\n\n ID-00041 Naveen Adhikari 1040 North Evergreen Avenue Suite 240 Kathmandu WA 98040\n\n ID-00042 Alicia Patel 1041 North Evergreen Avenue Suite 241 Dublin BC 98041\n\n-ID-00043 Marcus Benne Ʃ 1042 North Evergreen Avenue Suite 242 Aus Ɵn WA 98042\n\n+ID-00043 Marcus Bennett 1042 North Evergreen Avenue Suite 242 Austin WA 98042\n\n ID-00044 Priya Olsen 1043 North Evergreen Avenue Suite 243 Berlin BC 98043\n\n ID-00045 Daniel Chen 1044 North Evergreen Avenue Suite 244 Singapore WA 98044\n\n-ID-00046 Mei Tanaka 1045 North Evergreen Avenue Suite 245 Sea Ʃle BC 98045\n\n-ID-00047 Sofia Kim 1046 North Evergreen Avenue Suite 246 Melbourne WA 98046\n\n+ID-00046 Mei Tanaka 1045 North Evergreen Avenue Suite 245 Seattle BC 98045\n\n+ID-00047 Sofia Kim 1046 North Evergreen Avenue Suite 246 Melbourne WA 98046\n\n ID-00048 Owen Morrison 1047 North Evergreen Avenue Suite 247 Toronto BC 98047\n\n ID-00049 Ibrahim Rodriguez 1048 North Evergreen Avenue Suite 248 Kathmandu WA 98048\n\n ID-00050 Caroline Singh 1049 North Evergreen Avenue Suite 249 Dublin BC 98049\n\n-ID-00051 Naveen Adhikari 1050 North Evergreen Avenue Suite 200 Aus Ɵn WA 98050\n\n+ID-00051 Naveen Adhikari 1050 North Evergreen Avenue Suite 200 Austin WA 98050\n\n ID-00052 Alicia Patel 1051 North Evergreen Avenue Suite 201 Berlin BC 98051\n\n-ID-00053 Marcus Benne Ʃ 1052 North Evergreen Avenue Suite 202 Singapore WA 98052\n\n-ID-00054 Priya Olsen 1053 North Evergreen Avenue Suite 203 Sea Ʃle BC 98053\n\n+ID-00053 Marcus Bennett 1052 North Evergreen Avenue Suite 202 Singapore WA 98052\n\n+ID-00054 Priya Olsen 1053 North Evergreen Avenue Suite 203 Seattle BC 98053\n\n ID-00055 Daniel Chen 1054 North Evergreen Avenue Suite 204 Melbourne WA 98054\n\n ID-00056 Mei Tanaka 1055 North Evergreen Avenue Suite 205 Toronto BC 98055\n\n-ID-00057 Sofia Kim 1056 North Evergreen Avenue Suite 206 Kathmandu WA 98056\n\n+ID-00057 Sofia Kim 1056 North Evergreen Avenue Suite 206 Kathmandu WA 98056\n\n ID-00058 Owen Morrison 1057 North Evergreen Avenue Suite 207 Dublin BC 98057\n\n-ID-00059 Ibrahim Rodriguez 1058 North Evergreen Avenue Suite 208 Aus Ɵn WA 98058\n\n+ID-00059 Ibrahim Rodriguez 1058 North Evergreen Avenue Suite 208 Austin WA 98058\n\n ID-00060 Caroline Singh 1059 North Evergreen Avenue Suite 209 Berlin BC 98059\n\n ID-00061 Naveen Adhikari 1060 North Evergreen Avenue Suite 210 Singapore WA 98060\n\n-ID-00062 Alicia Patel 1061 North Evergreen Avenue Suite 211 Sea Ʃle BC 98061\n\n-ID-00063 Marcus Benne Ʃ 1062 North Evergreen Avenue Suite 212 Melbourne WA 98062\n\n+ID-00062 Alicia Patel 1061 North Evergreen Avenue Suite 211 Seattle BC 98061\n\n+ID-00063 Marcus Bennett 1062 North Evergreen Avenue Suite 212 Melbourne WA 98062\n\n ID-00064 Priya Olsen 1063 North Evergreen Avenue Suite 213 Toronto BC 98063\n\n ID-00065 Daniel Chen 1064 North Evergreen Avenue Suite 214 Kathmandu WA 98064\n\n ID-00066 Mei Tanaka 1065 North Evergreen Avenue Suite 215 Dublin BC 98065\n\n-ID-00067 Sofia Kim 1066 North Evergreen Avenue Suite 216 Aus Ɵn WA 98066\n\n+ID-00067 Sofia Kim 1066 North Evergreen Avenue Suite 216 Austin WA 98066\n\n ID-00068 Owen Morrison 1067 North Evergreen Avenue Suite 217 Berlin BC 98067\n\n ID-00069 Ibrahim Rodriguez 1068 North Evergreen Avenue Suite 218 Singapore WA 98068\n\n-ID-00070 Caroline Singh 1069 North Evergreen Avenue Suite 219 Sea Ʃle BC 98069\n\n+ID-00070 Caroline Singh 1069 North Evergreen Avenue Suite 219 Seattle BC 98069\n\n+ID-00071 Naveen Adhikari 1070 North Evergreen Avenue Suite 220 Melbourne WA 98070\n\n+ID-00072 Alicia Patel 1071 North Evergreen Avenue Suite 221 Toronto BC 98071\n\n ---PAGE---\n\n Record ID First Name Last Name Street Address City Region Postal Code\n\n-ID-00071 Naveen Adhikari 1070 North Evergreen Avenue Suite 220 Melbourne WA 98070\n\n-ID-00072 Alicia Patel 1071 North Evergreen Avenue Suite 221 Toronto BC 98071\n\n-ID-00073 Marcus Benne Ʃ 1072 North Evergreen Avenue Suite 222 Kathmandu WA 98072\n\n+ID-00073 Marcus Bennett 1072 North Evergreen Avenue Suite 222 Kathmandu WA 98072\n\n ID-00074 Priya Olsen 1073 North Evergreen Avenue Suite 223 Dublin BC 98073\n\n-ID-00075 Daniel Chen 1074 North Evergreen Avenue Suite 224 Aus Ɵn WA 98074\n\n+ID-00075 Daniel Chen 1074 North Evergreen Avenue Suite 224 Austin WA 98074\n\n ID-00076 Mei Tanaka 1075 North Evergreen Avenue Suite 225 Berlin BC 98075\n\n-ID-00077 Sofia Kim 1076 North Evergreen Avenue Suite 226 Singapore WA 98076\n\n-ID-00078 Owen Morrison 1077 North Evergreen Avenue Suite 227 Sea Ʃle BC 98077\n\n+ID-00077 Sofia Kim 1076 North Evergreen Avenue Suite 226 Singapore WA 98076\n\n+ID-00078 Owen Morrison 1077 North Evergreen Avenue Suite 227 Seattle BC 98077\n\n ID-00079 Ibrahim Rodriguez 1078 North Evergreen Avenue Suite 228 Melbourne WA 98078\n\n ID-00080 Caroline Singh 1079 North Evergreen Avenue Suite 229 Toronto BC 98079\n\n ID-00081 Naveen Adhikari 1080 North Evergreen Avenue Suite 230 Kathmandu WA 98080\n\n ID-00082 Alicia Patel 1081 North Evergreen Avenue Suite 231 Dublin BC 98081\n\n-ID-00083 Marcus Benne Ʃ 1082 North Evergreen Avenue Suite 232 Aus Ɵn WA 98082\n\n+ID-00083 Marcus Bennett 1082 North Evergreen Avenue Suite 232 Austin WA 98082\n\n ID-00084 Priya Olsen 1083 North Evergreen Avenue Suite 233 Berlin BC 98083\n\n ID-00085 Daniel Chen 1084 North Evergreen Avenue Suite 234 Singapore WA 98084\n\n-ID-00086 Mei Tanaka 1085 North Evergreen Avenue Suite 235 Sea Ʃle BC 98085\n\n-ID-00087 Sofia Kim 1086 North Evergreen Avenue Suite 236 Melbourne WA 98086\n\n+ID-00086 Mei Tanaka 1085 North Evergreen Avenue Suite 235 Seattle BC 98085\n\n+ID-00087 Sofia Kim 1086 North Evergreen Avenue Suite 236 Melbourne WA 98086\n\n ID-00088 Owen Morrison 1087 North Evergreen Avenue Suite 237 Toronto BC 98087\n\n ID-00089 Ibrahim Rodriguez 1088 North Evergreen Avenue Suite 238 Kathmandu WA 98088\n\n ID-00090 Caroline Singh 1089 North Evergreen Avenue Suite 239 Dublin BC 98089\n\n-ID-00091 Naveen Adhikari 1090 North Evergreen Avenue Suite 240 Aus Ɵn WA 98090\n\n+ID-00091 Naveen Adhikari 1090 North Evergreen Avenue Suite 240 Austin WA 98090\n\n ID-00092 Alicia Patel 1091 North Evergreen Avenue Suite 241 Berlin BC 98091\n\n-ID-00093 Marcus Benne Ʃ 1092 North Evergreen Avenue Suite 242 Singapore WA 98092\n\n-ID-00094 Priya Olsen 1093 North Evergreen Avenue Suite 243 Sea Ʃle BC 98093\n\n+ID-00093 Marcus Bennett 1092 North Evergreen Avenue Suite 242 Singapore WA 98092\n\n+ID-00094 Priya Olsen 1093 North Evergreen Avenue Suite 243 Seattle BC 98093\n\n ID-00095 Daniel Chen 1094 North Evergreen Avenue Suite 244 Melbourne WA 98094\n\n ID-00096 Mei Tanaka 1095 North Evergreen Avenue Suite 245 Toronto BC 98095\n\n-ID-00097 Sofia Kim 1096 North Evergreen Avenue Suite 246 Kathmandu WA 98096\n\n+ID-00097 Sofia Kim 1096 North Evergreen Avenue Suite 246 Kathmandu WA 98096\n\n ID-00098 Owen Morrison 1097 North Evergreen Avenue Suite 247 Dublin BC 98097\n\n-ID-00099 Ibrahim Rodriguez 1098 North Evergreen Avenue Suite 248 Aus Ɵn WA 98098\n\n+ID-00099 Ibrahim Rodriguez 1098 North Evergreen Avenue Suite 248 Austin WA 98098\n\n ID-00100 Caroline Singh 1099 North Evergreen Avenue Suite 249 Berlin BC 98099\n\n ID-00101 Naveen Adhikari 1100 North Evergreen Avenue Suite 200 Singapore WA 98100\n\n-ID-00102 Alicia Patel 1101 North Evergreen Avenue Suite 201 Sea Ʃle BC 98101\n\n-ID-00103 Marcus Benne Ʃ 1102 North Evergreen Avenue Suite 202 Melbourne WA 98102\n\n+ID-00102 Alicia Patel 1101 North Evergreen Avenue Suite 201 Seattle BC 98101\n\n+ID-00103 Marcus Bennett 1102 North Evergreen Avenue Suite 202 Melbourne WA 98102\n\n ID-00104 Priya Olsen 1103 North Evergreen Avenue Suite 203 Toronto BC 98103\n\n-ID-00105 Daniel Chen 1104 North Evergreen Avenue Suite 204 Kathmandu WA 98104\n+ID-00105 Daniel Chen 1104 North Evergreen Avenue Suite 204 Kathmandu WA 98104\n\n+ID-00106 Mei Tanaka 1105 North Evergreen Avenue Suite 205 Dublin BC 98105\n\n+ID-00107 Sofia Kim 1106 North Evergreen Avenue Suite 206 Austin WA 98106\n\n+ID-00108 Owen Morrison 1107 North Evergreen Avenue Suite 207 Berlin BC 98107", + "visual_scores": [ + 0.7469, + 0.7619, + 0.7469 + ], + "visual_avg": 0.7519, + "diff_images": [ + { + "page": 1, + "minipdf_img": "XlsxIssue82_WideTable_p1_minipdf.png", + "reference_img": "XlsxIssue82_WideTable_p1_reference.png", + "auxiliary_img": "XlsxIssue82_WideTable_p1_libreoffice.png", + "heatmap_img": "XlsxIssue82_WideTable_p1_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1650, + 1241 + ], + "difference_bbox_px": [ + 52, + 73, + 1522, + 1168 + ], + "changed_pixels": 466771, + "changed_fraction": 0.227954, + "mean_abs_rgb": 27.6719, + "rmse_rgb": 70.3825, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue82_WideTable_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 2, + "minipdf_img": "XlsxIssue82_WideTable_p2_minipdf.png", + "reference_img": "XlsxIssue82_WideTable_p2_reference.png", + "auxiliary_img": "XlsxIssue82_WideTable_p2_libreoffice.png", + "heatmap_img": "XlsxIssue82_WideTable_p2_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1650, + 1241 + ], + "difference_bbox_px": [ + 52, + 73, + 1522, + 1168 + ], + "changed_pixels": 459731, + "changed_fraction": 0.224516, + "mean_abs_rgb": 27.6212, + "rmse_rgb": 70.4357, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue82_WideTable_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + }, + { + "page": 3, + "minipdf_img": "XlsxIssue82_WideTable_p3_minipdf.png", + "reference_img": "XlsxIssue82_WideTable_p3_reference.png", + "auxiliary_img": "XlsxIssue82_WideTable_p3_libreoffice.png", + "heatmap_img": "XlsxIssue82_WideTable_p3_heatmap.png", + "heatmap_metrics": { + "size_px": [ + 1650, + 1241 + ], + "difference_bbox_px": [ + 52, + 73, + 1522, + 1168 + ], + "changed_pixels": 467887, + "changed_fraction": 0.228499, + "mean_abs_rgb": 27.692, + "rmse_rgb": 70.4004, + "threshold": 12, + "gain": 5.0 + }, + "composite_img": "XlsxIssue82_WideTable_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png" + } + ], + "overall_score": 0.8649 } ] \ No newline at end of file diff --git a/artifacts/java-benchmark/issue/xlsx/report/comparison_report.md b/artifacts/java-benchmark/issue/xlsx/report/comparison_report.md index b5ff1c5a..ced7a70c 100644 --- a/artifacts/java-benchmark/issue/xlsx/report/comparison_report.md +++ b/artifacts/java-benchmark/issue/xlsx/report/comparison_report.md @@ -1,19 +1,185 @@ # java MiniPdf vs Microsoft 365 Excel Reference PDF Comparison Report -Generated: 2026-09-06T20:42:47.973286 +Generated: 2026-09-07T11:54:12.982984 ## Summary | # | Test Case | Valid | Text Sim | Visual Avg | Pages (M/R) | Overall | |---|-----------|-------|----------|------------|-------------|--------| -| 1 | 🟢 XlsxIssue77_MergedCellAlignment | ✅ | 1.0 | 0.891 | 2/2 | **0.9564** | +| 1 | 🟡 Academic Achievement Summary Table | ✅ | 0.9068 | 0.6289 | 4/2 | **0.7143** | +| 2 | 🟡 AcademicAchievement_temp | ✅ | 0.9068 | 0.6289 | 4/2 | **0.7143** | +| 3 | 🟢 Business expense budget1 | ✅ | 0.9712 | 0.8317 | 4/4 | **0.9212** | +| 4 | 🟡 Business expenses budget2 | ✅ | 0.8422 | 0.8064 | 4/4 | **0.8594** | +| 5 | 🟡 Business plan checklist with SWOT analysis1 | ✅ | 0.8583 | 0.582 | 1/1 | **0.7761** | +| 6 | 🟡 Event budget1 | ✅ | 0.9859 | 0.741 | 7/5 | **0.7908** | +| 7 | 🟡 Expense report basic1 | ✅ | 0.9556 | 0.5218 | 1/1 | **0.791** | +| 8 | 🟡 Grocery list1 | ✅ | 0.8403 | 0.6961 | 1/1 | **0.8146** | +| 9 | 🟢 Issue202609031340 | ✅ | 0.9022 | 0.9262 | 4/4 | **0.9314** | +| 10 | 🔴 payroll-calculator_f | ✅ | 0.8386 | 0.4835 | 36/29 | **0.6288** | +| 11 | 🟡 PO_anonymized | ✅ | 0.9385 | 0.743 | 69/9 | **0.7726** | +| 12 | 🟡 Simple invoice1 | ✅ | 0.7573 | 0.6953 | 1/1 | **0.781** | +| 13 | 🟡 Small business cash flow forecast1 | ✅ | 0.9004 | 0.6894 | 3/5 | **0.7359** | +| 14 | 🟢 Wedding_timeline_planner1_copy | ✅ | 0.9295 | 0.8964 | 8/8 | **0.9304** | +| 15 | 🔴 Weekly schedule planner1 | ✅ | 0.6289 | 0.3729 | 2/1 | **0.5007** | +| 16 | 🟡 XlsxIssue75 | ✅ | 0.9694 | 0.9592 | 152/144 | **0.8714** | +| 17 | 🟢 XlsxIssue77_MergedCellAlignment | ✅ | 1.0 | 0.891 | 2/2 | **0.9564** | +| 18 | 🟢 XlsxIssue77_Template1 | ✅ | 0.9905 | 0.9007 | 6/6 | **0.9565** | +| 19 | 🟢 XlsxIssue77_Template2_Workaround | ✅ | 0.9905 | 0.9048 | 6/6 | **0.9581** | +| 20 | 🟡 XlsxIssue81_LayoutOptions | ✅ | 0.9188 | 0.807 | 16/16 | **0.8903** | +| 21 | 🔴 XlsxIssue82_5mb | ✅ | 0.6052 | 0.8405 | 383/766 | **0.6783** | +| 22 | 🟡 XlsxIssue82_SampleTestData5mb | ✅ | 0.6595 | 0.8828 | 466/1668 | **0.7169** | +| 23 | 🟡 XlsxIssue82_WideTable | ✅ | 0.9103 | 0.7519 | 13/13 | **0.8649** | -**Average Overall Score: 0.9564** +**Average Overall Score: 0.8068** ## Labeled Side-by-Side Comparison + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -22,6 +188,78 @@ Generated: 2026-09-06T20:42:47.973286 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CaseComparison
Academic Achievement Summary Table
format: xlsx | case: Academic Achievement Summary Table | scope: java-issue-xlsx

Page 1
Academic Achievement Summary Table page 1 comparison
Academic Achievement Summary Table
format: xlsx | case: Academic Achievement Summary Table | scope: java-issue-xlsx

Page 2
Academic Achievement Summary Table page 2 comparison
AcademicAchievement_temp
format: xlsx | case: AcademicAchievement_temp | scope: java-issue-xlsx

Page 1
AcademicAchievement_temp page 1 comparison
AcademicAchievement_temp
format: xlsx | case: AcademicAchievement_temp | scope: java-issue-xlsx

Page 2
AcademicAchievement_temp page 2 comparison
Business expense budget1
format: xlsx | case: Business expense budget1 | scope: java-issue-xlsx

Page 1
Business expense budget1 page 1 comparison
Business expense budget1
format: xlsx | case: Business expense budget1 | scope: java-issue-xlsx

Page 2
Business expense budget1 page 2 comparison
Business expense budget1
format: xlsx | case: Business expense budget1 | scope: java-issue-xlsx

Page 3
Business expense budget1 page 3 comparison
Business expenses budget2
format: xlsx | case: Business expenses budget2 | scope: java-issue-xlsx

Page 1
Business expenses budget2 page 1 comparison
Business expenses budget2
format: xlsx | case: Business expenses budget2 | scope: java-issue-xlsx

Page 2
Business expenses budget2 page 2 comparison
Business expenses budget2
format: xlsx | case: Business expenses budget2 | scope: java-issue-xlsx

Page 3
Business expenses budget2 page 3 comparison
Business plan checklist with SWOT analysis1
format: xlsx | case: Business plan checklist with SWOT analysis1 | scope: java-issue-xlsx

Page 1
Business plan checklist with SWOT analysis1 page 1 comparison
Event budget1
format: xlsx | case: Event budget1 | scope: java-issue-xlsx

Page 1
Event budget1 page 1 comparison
Event budget1
format: xlsx | case: Event budget1 | scope: java-issue-xlsx

Page 2
Event budget1 page 2 comparison
Event budget1
format: xlsx | case: Event budget1 | scope: java-issue-xlsx

Page 3
Event budget1 page 3 comparison
Expense report basic1
format: xlsx | case: Expense report basic1 | scope: java-issue-xlsx

Page 1
Expense report basic1 page 1 comparison
Grocery list1
format: xlsx | case: Grocery list1 | scope: java-issue-xlsx

Page 1
Grocery list1 page 1 comparison
Issue202609031340
format: xlsx | case: Issue202609031340 | scope: java-issue-xlsx

Page 1
Issue202609031340 page 1 comparison
Issue202609031340
format: xlsx | case: Issue202609031340 | scope: java-issue-xlsx

Page 2
Issue202609031340 page 2 comparison
Issue202609031340
format: xlsx | case: Issue202609031340 | scope: java-issue-xlsx

Page 3
Issue202609031340 page 3 comparison
payroll-calculator_f
format: xlsx | case: payroll-calculator_f | scope: java-issue-xlsx

Page 1
payroll-calculator_f page 1 comparison
payroll-calculator_f
format: xlsx | case: payroll-calculator_f | scope: java-issue-xlsx

Page 2
payroll-calculator_f page 2 comparison
payroll-calculator_f
format: xlsx | case: payroll-calculator_f | scope: java-issue-xlsx

Page 3
payroll-calculator_f page 3 comparison
PO_anonymized
format: xlsx | case: PO_anonymized | scope: java-issue-xlsx

Page 1
PO_anonymized page 1 comparison
PO_anonymized
format: xlsx | case: PO_anonymized | scope: java-issue-xlsx

Page 2
PO_anonymized page 2 comparison
PO_anonymized
format: xlsx | case: PO_anonymized | scope: java-issue-xlsx

Page 3
PO_anonymized page 3 comparison
Simple invoice1
format: xlsx | case: Simple invoice1 | scope: java-issue-xlsx

Page 1
Simple invoice1 page 1 comparison
Small business cash flow forecast1
format: xlsx | case: Small business cash flow forecast1 | scope: java-issue-xlsx

Page 1
Small business cash flow forecast1 page 1 comparison
Small business cash flow forecast1
format: xlsx | case: Small business cash flow forecast1 | scope: java-issue-xlsx

Page 2
Small business cash flow forecast1 page 2 comparison
Small business cash flow forecast1
format: xlsx | case: Small business cash flow forecast1 | scope: java-issue-xlsx

Page 3
Small business cash flow forecast1 page 3 comparison
Wedding_timeline_planner1_copy
format: xlsx | case: Wedding_timeline_planner1_copy | scope: java-issue-xlsx

Page 1
Wedding_timeline_planner1_copy page 1 comparison
Wedding_timeline_planner1_copy
format: xlsx | case: Wedding_timeline_planner1_copy | scope: java-issue-xlsx

Page 2
Wedding_timeline_planner1_copy page 2 comparison
Wedding_timeline_planner1_copy
format: xlsx | case: Wedding_timeline_planner1_copy | scope: java-issue-xlsx

Page 3
Wedding_timeline_planner1_copy page 3 comparison
Weekly schedule planner1
format: xlsx | case: Weekly schedule planner1 | scope: java-issue-xlsx

Page 1
Weekly schedule planner1 page 1 comparison
XlsxIssue75
format: xlsx | case: XlsxIssue75 | scope: java-issue-xlsx

Page 1
XlsxIssue75 page 1 comparison
XlsxIssue75
format: xlsx | case: XlsxIssue75 | scope: java-issue-xlsx

Page 2
XlsxIssue75 page 2 comparison
XlsxIssue75
format: xlsx | case: XlsxIssue75 | scope: java-issue-xlsx

Page 3
XlsxIssue75 page 3 comparison
XlsxIssue77_MergedCellAlignment
format: xlsx | case: XlsxIssue77_MergedCellAlignment | scope: java-issue-xlsx

Page 1
XlsxIssue77_MergedCellAlignment page 1 comparisonXlsxIssue77_MergedCellAlignment
format: xlsx | case: XlsxIssue77_MergedCellAlignment | scope: java-issue-xlsx

Page 2
XlsxIssue77_MergedCellAlignment page 2 comparison
XlsxIssue77_Template1
format: xlsx | case: XlsxIssue77_Template1 | scope: java-issue-xlsx

Page 1
XlsxIssue77_Template1 page 1 comparison
XlsxIssue77_Template1
format: xlsx | case: XlsxIssue77_Template1 | scope: java-issue-xlsx

Page 2
XlsxIssue77_Template1 page 2 comparison
XlsxIssue77_Template1
format: xlsx | case: XlsxIssue77_Template1 | scope: java-issue-xlsx

Page 3
XlsxIssue77_Template1 page 3 comparison
XlsxIssue77_Template2_Workaround
format: xlsx | case: XlsxIssue77_Template2_Workaround | scope: java-issue-xlsx

Page 1
XlsxIssue77_Template2_Workaround page 1 comparison
XlsxIssue77_Template2_Workaround
format: xlsx | case: XlsxIssue77_Template2_Workaround | scope: java-issue-xlsx

Page 2
XlsxIssue77_Template2_Workaround page 2 comparison
XlsxIssue77_Template2_Workaround
format: xlsx | case: XlsxIssue77_Template2_Workaround | scope: java-issue-xlsx

Page 3
XlsxIssue77_Template2_Workaround page 3 comparison
XlsxIssue81_LayoutOptions
format: xlsx | case: XlsxIssue81_LayoutOptions | scope: java-issue-xlsx

Page 1
XlsxIssue81_LayoutOptions page 1 comparison
XlsxIssue81_LayoutOptions
format: xlsx | case: XlsxIssue81_LayoutOptions | scope: java-issue-xlsx

Page 2
XlsxIssue81_LayoutOptions page 2 comparison
XlsxIssue81_LayoutOptions
format: xlsx | case: XlsxIssue81_LayoutOptions | scope: java-issue-xlsx

Page 3
XlsxIssue81_LayoutOptions page 3 comparison
XlsxIssue82_5mb
format: xlsx | case: XlsxIssue82_5mb | scope: java-issue-xlsx

Page 1
XlsxIssue82_5mb page 1 comparison
XlsxIssue82_5mb
format: xlsx | case: XlsxIssue82_5mb | scope: java-issue-xlsx

Page 2
XlsxIssue82_5mb page 2 comparison
XlsxIssue82_5mb
format: xlsx | case: XlsxIssue82_5mb | scope: java-issue-xlsx

Page 3
XlsxIssue82_5mb page 3 comparison
XlsxIssue82_SampleTestData5mb
format: xlsx | case: XlsxIssue82_SampleTestData5mb | scope: java-issue-xlsx

Page 1
XlsxIssue82_SampleTestData5mb page 1 comparison
XlsxIssue82_SampleTestData5mb
format: xlsx | case: XlsxIssue82_SampleTestData5mb | scope: java-issue-xlsx

Page 2
XlsxIssue82_SampleTestData5mb page 2 comparison
XlsxIssue82_SampleTestData5mb
format: xlsx | case: XlsxIssue82_SampleTestData5mb | scope: java-issue-xlsx

Page 3
XlsxIssue82_SampleTestData5mb page 3 comparison
XlsxIssue82_WideTable
format: xlsx | case: XlsxIssue82_WideTable | scope: java-issue-xlsx

Page 1
XlsxIssue82_WideTable page 1 comparison
XlsxIssue82_WideTable
format: xlsx | case: XlsxIssue82_WideTable | scope: java-issue-xlsx

Page 2
XlsxIssue82_WideTable page 2 comparison
XlsxIssue82_WideTable
format: xlsx | case: XlsxIssue82_WideTable | scope: java-issue-xlsx

Page 3
XlsxIssue82_WideTable page 3 comparison
## Difference Heatmaps @@ -30,6 +268,186 @@ Blue areas are below the configured difference threshold; red areas have stronge + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -40,6 +458,96 @@ Blue areas are below the configured difference threshold; red areas have stronge + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CaseHeatmapMetrics
Academic Achievement Summary Table
Page 1
Academic Achievement Summary Table page 1 difference heatmapchanged: 177377 px (8.15%)
bbox: [46, 24, 1717, 1143]
mean abs RGB: 12.1082
RMSE RGB: 47.6028
threshold: 12, gain: 5.0
Academic Achievement Summary Table
Page 2
Academic Achievement Summary Table page 2 difference heatmapchanged: 256408 px (11.78%)
bbox: [46, 11, 1717, 1170]
mean abs RGB: 16.7922
RMSE RGB: 55.8028
threshold: 12, gain: 5.0
AcademicAchievement_temp
Page 1
AcademicAchievement_temp page 1 difference heatmapchanged: 177377 px (8.15%)
bbox: [46, 24, 1717, 1143]
mean abs RGB: 12.1082
RMSE RGB: 47.6028
threshold: 12, gain: 5.0
AcademicAchievement_temp
Page 2
AcademicAchievement_temp page 2 difference heatmapchanged: 256408 px (11.78%)
bbox: [46, 11, 1717, 1170]
mean abs RGB: 16.7922
RMSE RGB: 55.8028
threshold: 12, gain: 5.0
Business expense budget1
Page 1
Business expense budget1 page 1 difference heatmapchanged: 439037 px (20.17%)
bbox: [147, 176, 1016, 1596]
mean abs RGB: 25.4757
RMSE RGB: 68.6251
threshold: 12, gain: 5.0
Business expense budget1
Page 2
Business expense budget1 page 2 difference heatmapchanged: 178210 px (8.19%)
bbox: [112, 178, 1016, 1225]
mean abs RGB: 10.7438
RMSE RGB: 41.8304
threshold: 12, gain: 5.0
Business expense budget1
Page 3
Business expense budget1 page 3 difference heatmapchanged: 217907 px (10.01%)
bbox: [112, 297, 450, 1596]
mean abs RGB: 12.8481
RMSE RGB: 48.2032
threshold: 12, gain: 5.0
Business expenses budget2
Page 1
Business expenses budget2 page 1 difference heatmapchanged: 470506 px (21.62%)
bbox: [229, 75, 1522, 1124]
mean abs RGB: 11.7846
RMSE RGB: 35.2513
threshold: 12, gain: 5.0
Business expenses budget2
Page 2
Business expenses budget2 page 2 difference heatmapchanged: 471683 px (21.67%)
bbox: [204, 75, 1548, 1163]
mean abs RGB: 11.0576
RMSE RGB: 32.6913
threshold: 12, gain: 5.0
Business expenses budget2
Page 3
Business expenses budget2 page 3 difference heatmapchanged: 435364 px (20.00%)
bbox: [153, 75, 1598, 1163]
mean abs RGB: 10.0189
RMSE RGB: 29.5823
threshold: 12, gain: 5.0
Business plan checklist with SWOT analysis1
Page 1
Business plan checklist with SWOT analysis1 page 1 difference heatmapchanged: 955797 px (43.91%)
bbox: [88, 62, 1214, 1448]
mean abs RGB: 33.8616
RMSE RGB: 70.0944
threshold: 12, gain: 5.0
Event budget1
Page 1
Event budget1 page 1 difference heatmapchanged: 93832 px (4.31%)
bbox: [73, 153, 1165, 770]
mean abs RGB: 6.6463
RMSE RGB: 36.9543
threshold: 12, gain: 5.0
Event budget1
Page 2
Event budget1 page 2 difference heatmapchanged: 1056182 px (48.52%)
bbox: [61, 143, 1211, 1625]
mean abs RGB: 22.4906
RMSE RGB: 46.7637
threshold: 12, gain: 5.0
Event budget1
Page 3
Event budget1 page 3 difference heatmapchanged: 481866 px (22.14%)
bbox: [62, 114, 1211, 568]
mean abs RGB: 4.318
RMSE RGB: 14.6122
threshold: 12, gain: 5.0
Expense report basic1
Page 1
Expense report basic1 page 1 difference heatmapchanged: 458410 px (21.06%)
bbox: [63, 59, 1690, 856]
mean abs RGB: 6.7153
RMSE RGB: 23.9935
threshold: 12, gain: 5.0
Grocery list1
Page 1
Grocery list1 page 1 difference heatmapchanged: 495398 px (22.76%)
bbox: [43, 77, 1229, 960]
mean abs RGB: 17.0865
RMSE RGB: 50.1037
threshold: 12, gain: 5.0
Issue202609031340
Page 1
Issue202609031340 page 1 difference heatmapchanged: 443271 px (20.36%)
bbox: [28, 55, 1212, 1697]
mean abs RGB: 27.4178
RMSE RGB: 71.7062
threshold: 12, gain: 5.0
Issue202609031340
Page 2
Issue202609031340 page 2 difference heatmapchanged: 59016 px (2.71%)
bbox: [28, 738, 1212, 1014]
mean abs RGB: 3.6137
RMSE RGB: 25.2653
threshold: 12, gain: 5.0
Issue202609031340
Page 3
Issue202609031340 page 3 difference heatmapchanged: 258293 px (11.87%)
bbox: [34, 29, 1196, 1725]
mean abs RGB: 16.8844
RMSE RGB: 56.4854
threshold: 12, gain: 5.0
payroll-calculator_f
Page 1
payroll-calculator_f page 1 difference heatmapchanged: 532215 px (24.45%)
bbox: [23, 29, 1754, 1160]
mean abs RGB: 17.5896
RMSE RGB: 42.8265
threshold: 12, gain: 5.0
payroll-calculator_f
Page 2
payroll-calculator_f page 2 difference heatmapchanged: 394684 px (18.13%)
bbox: [23, 29, 1682, 1160]
mean abs RGB: 19.5001
RMSE RGB: 53.1636
threshold: 12, gain: 5.0
payroll-calculator_f
Page 3
payroll-calculator_f page 3 difference heatmapchanged: 488426 px (22.44%)
bbox: [23, 29, 1504, 1160]
mean abs RGB: 21.1973
RMSE RGB: 55.8296
threshold: 12, gain: 5.0
PO_anonymized
Page 1
PO_anonymized page 1 difference heatmapchanged: 514717 px (23.65%)
bbox: [58, 45, 1182, 1713]
mean abs RGB: 29.8818
RMSE RGB: 76.4864
threshold: 12, gain: 5.0
PO_anonymized
Page 2
PO_anonymized page 2 difference heatmapchanged: 651275 px (29.92%)
bbox: [59, 45, 1181, 1713]
mean abs RGB: 34.8838
RMSE RGB: 80.9979
threshold: 12, gain: 5.0
PO_anonymized
Page 3
PO_anonymized page 3 difference heatmapchanged: 122180 px (5.61%)
bbox: [61, 45, 1181, 1713]
mean abs RGB: 7.7594
RMSE RGB: 40.8676
threshold: 12, gain: 5.0
Simple invoice1
Page 1
Simple invoice1 page 1 difference heatmapchanged: 344628 px (15.83%)
bbox: [36, 114, 1237, 1451]
mean abs RGB: 18.2359
RMSE RGB: 60.1872
threshold: 12, gain: 5.0
Small business cash flow forecast1
Page 1
Small business cash flow forecast1 page 1 difference heatmapchanged: 815067 px (37.44%)
bbox: [66, 75, 1173, 1680]
mean abs RGB: 17.9447
RMSE RGB: 44.8225
threshold: 12, gain: 5.0
Small business cash flow forecast1
Page 2
Small business cash flow forecast1 page 2 difference heatmapchanged: 496069 px (32.21%)
bbox: [87, 53, 1157, 1071]
mean abs RGB: 42.0195
RMSE RGB: 87.6112
threshold: 12, gain: 5.0
Small business cash flow forecast1
Page 3
Small business cash flow forecast1 page 3 difference heatmapchanged: 2092 px (0.10%)
bbox: [835, 112, 1532, 116]
mean abs RGB: 0.0692
RMSE RGB: 2.9896
threshold: 12, gain: 5.0
Wedding_timeline_planner1_copy
Page 1
Wedding_timeline_planner1_copy page 1 difference heatmapchanged: 298306 px (13.70%)
bbox: [102, 183, 1158, 1550]
mean abs RGB: 14.256
RMSE RGB: 46.0558
threshold: 12, gain: 5.0
Wedding_timeline_planner1_copy
Page 2
Wedding_timeline_planner1_copy page 2 difference heatmapchanged: 318572 px (14.64%)
bbox: [102, 183, 1158, 1542]
mean abs RGB: 14.539
RMSE RGB: 46.27
threshold: 12, gain: 5.0
Wedding_timeline_planner1_copy
Page 3
Wedding_timeline_planner1_copy page 3 difference heatmapchanged: 291508 px (13.39%)
bbox: [102, 183, 1158, 1516]
mean abs RGB: 13.5658
RMSE RGB: 44.6731
threshold: 12, gain: 5.0
Weekly schedule planner1
Page 1
Weekly schedule planner1 page 1 difference heatmapchanged: 686598 px (31.54%)
bbox: [121, 96, 1571, 1144]
mean abs RGB: 25.2436
RMSE RGB: 60.9064
threshold: 12, gain: 5.0
XlsxIssue75
Page 1
XlsxIssue75 page 1 difference heatmapchanged: 157587 px (7.24%)
bbox: [109, 114, 1111, 1649]
mean abs RGB: 8.9397
RMSE RGB: 40.5315
threshold: 12, gain: 5.0
XlsxIssue75
Page 2
XlsxIssue75 page 2 difference heatmapchanged: 107345 px (4.93%)
bbox: [114, 120, 1076, 1649]
mean abs RGB: 8.0094
RMSE RGB: 40.3943
threshold: 12, gain: 5.0
XlsxIssue75
Page 3
XlsxIssue75 page 3 difference heatmapchanged: 102955 px (4.73%)
bbox: [114, 120, 1076, 1649]
mean abs RGB: 7.6331
RMSE RGB: 39.3545
threshold: 12, gain: 5.0
XlsxIssue77_MergedCellAlignment
Page 1
XlsxIssue77_MergedCellAlignment page 1 difference heatmapXlsxIssue77_MergedCellAlignment page 2 difference heatmap changed: 443109 px (20.36%)
bbox: [35, 156, 1163, 1612]
mean abs RGB: 30.2766
RMSE RGB: 78.5097
threshold: 12, gain: 5.0
XlsxIssue77_Template1
Page 1
XlsxIssue77_Template1 page 1 difference heatmapchanged: 379981 px (17.46%)
bbox: [82, 166, 1157, 1565]
mean abs RGB: 20.849
RMSE RGB: 62.5945
threshold: 12, gain: 5.0
XlsxIssue77_Template1
Page 2
XlsxIssue77_Template1 page 2 difference heatmapchanged: 380038 px (17.46%)
bbox: [82, 166, 1157, 1565]
mean abs RGB: 20.7739
RMSE RGB: 62.443
threshold: 12, gain: 5.0
XlsxIssue77_Template1
Page 3
XlsxIssue77_Template1 page 3 difference heatmapchanged: 380167 px (17.47%)
bbox: [82, 166, 1157, 1565]
mean abs RGB: 20.7364
RMSE RGB: 62.3609
threshold: 12, gain: 5.0
XlsxIssue77_Template2_Workaround
Page 1
XlsxIssue77_Template2_Workaround page 1 difference heatmapchanged: 375573 px (17.25%)
bbox: [78, 166, 1153, 1569]
mean abs RGB: 20.7999
RMSE RGB: 62.6342
threshold: 12, gain: 5.0
XlsxIssue77_Template2_Workaround
Page 2
XlsxIssue77_Template2_Workaround page 2 difference heatmapchanged: 374803 px (17.22%)
bbox: [78, 166, 1153, 1569]
mean abs RGB: 20.6963
RMSE RGB: 62.4252
threshold: 12, gain: 5.0
XlsxIssue77_Template2_Workaround
Page 3
XlsxIssue77_Template2_Workaround page 3 difference heatmapchanged: 374804 px (17.22%)
bbox: [78, 166, 1153, 1569]
mean abs RGB: 20.6898
RMSE RGB: 62.408
threshold: 12, gain: 5.0
XlsxIssue81_LayoutOptions
Page 1
XlsxIssue81_LayoutOptions page 1 difference heatmapchanged: 511187 px (24.96%)
bbox: [36, 74, 1068, 1570]
mean abs RGB: 32.0216
RMSE RGB: 77.0589
threshold: 12, gain: 5.0
XlsxIssue81_LayoutOptions
Page 2
XlsxIssue81_LayoutOptions page 2 difference heatmapchanged: 512225 px (25.02%)
bbox: [36, 74, 1068, 1570]
mean abs RGB: 32.1024
RMSE RGB: 77.1614
threshold: 12, gain: 5.0
XlsxIssue81_LayoutOptions
Page 3
XlsxIssue81_LayoutOptions page 3 difference heatmapchanged: 511075 px (24.96%)
bbox: [36, 74, 1068, 1570]
mean abs RGB: 31.9801
RMSE RGB: 77.0071
threshold: 12, gain: 5.0
XlsxIssue82_5mb
Page 1
XlsxIssue82_5mb page 1 difference heatmapchanged: 434905 px (21.24%)
bbox: [106, 122, 1100, 1523]
mean abs RGB: 31.9401
RMSE RGB: 78.688
threshold: 12, gain: 5.0
XlsxIssue82_5mb
Page 2
XlsxIssue82_5mb page 2 difference heatmapchanged: 430451 px (21.02%)
bbox: [106, 122, 1100, 1522]
mean abs RGB: 31.5113
RMSE RGB: 78.0558
threshold: 12, gain: 5.0
XlsxIssue82_5mb
Page 3
XlsxIssue82_5mb page 3 difference heatmapchanged: 433772 px (21.18%)
bbox: [106, 122, 1100, 1522]
mean abs RGB: 31.8166
RMSE RGB: 78.4756
threshold: 12, gain: 5.0
XlsxIssue82_SampleTestData5mb
Page 1
XlsxIssue82_SampleTestData5mb page 1 difference heatmapchanged: 356955 px (16.40%)
bbox: [114, 157, 1078, 1599]
mean abs RGB: 26.6364
RMSE RGB: 73.6748
threshold: 12, gain: 5.0
XlsxIssue82_SampleTestData5mb
Page 2
XlsxIssue82_SampleTestData5mb page 2 difference heatmapchanged: 365254 px (16.78%)
bbox: [114, 157, 1078, 1600]
mean abs RGB: 27.2049
RMSE RGB: 74.4386
threshold: 12, gain: 5.0
XlsxIssue82_SampleTestData5mb
Page 3
XlsxIssue82_SampleTestData5mb page 3 difference heatmapchanged: 369955 px (17.00%)
bbox: [114, 157, 1078, 1599]
mean abs RGB: 27.6909
RMSE RGB: 75.189
threshold: 12, gain: 5.0
XlsxIssue82_WideTable
Page 1
XlsxIssue82_WideTable page 1 difference heatmapchanged: 466771 px (22.80%)
bbox: [52, 73, 1522, 1168]
mean abs RGB: 27.6719
RMSE RGB: 70.3825
threshold: 12, gain: 5.0
XlsxIssue82_WideTable
Page 2
XlsxIssue82_WideTable page 2 difference heatmapchanged: 459731 px (22.45%)
bbox: [52, 73, 1522, 1168]
mean abs RGB: 27.6212
RMSE RGB: 70.4357
threshold: 12, gain: 5.0
XlsxIssue82_WideTable
Page 3
XlsxIssue82_WideTable page 3 difference heatmapchanged: 467887 px (22.85%)
bbox: [52, 73, 1522, 1168]
mean abs RGB: 27.692
RMSE RGB: 70.4004
threshold: 12, gain: 5.0
## Visual Comparison @@ -49,35 +557,2997 @@ Scores compare java MiniPdf against Microsoft 365 Excel Reference. LibreOffice i - - + + - - - + + + - - - + + + -
java MiniPdfMicrosoft 365 Excel ReferenceLibreOffice
XlsxIssue77_MergedCellAlignment
format: xlsx | case: XlsxIssue77_MergedCellAlignment | scope: java-issue-xlsx
XlsxIssue77_MergedCellAlignment ⬤ 95.6%Academic Achievement Summary Table
format: xlsx | case: Academic Achievement Summary Table | scope: java-issue-xlsx
Academic Achievement Summary Table ⬤ 71.4%
java MiniPdfMicrosoft 365 Excel ReferenceLibreOfficejava MiniPdfMicrosoft 365 Excel ReferenceLibreOffice
java MiniPdfMicrosoft 365 Excel ReferenceLibreOfficejava MiniPdfMicrosoft 365 Excel ReferenceLibreOffice
- -## Detailed Results - -### XlsxIssue77_MergedCellAlignment - -- **Case Metadata:** format: xlsx | case: XlsxIssue77_MergedCellAlignment | scope: java-issue-xlsx -- **Source:** tests/Issue_Files/xlsx/XlsxIssue77_MergedCellAlignment.xlsx -- **Text Similarity:** 1.0 -- **Visual Average:** 0.891 -- **Overall Score:** 0.9564 -- **Pages:** MiniPdf=2, Reference=2 -- **File Size:** MiniPdf=71248 bytes, Reference=172385 bytes - -Text content: ✅ Identical - -## Improvement Suggestions + + java MiniPdf + missing + missing + + + AcademicAchievement_temp
format: xlsx | case: AcademicAchievement_temp | scope: java-issue-xlsx
+ AcademicAchievement_temp ⬤ 71.4% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + missing + missing + + + Business expense budget1
format: xlsx | case: Business expense budget1 | scope: java-issue-xlsx
+ Business expense budget1 ⬤ 92.1% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + Business expenses budget2
format: xlsx | case: Business expenses budget2 | scope: java-issue-xlsx
+ Business expenses budget2 ⬤ 85.9% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + Business plan checklist with SWOT analysis1
format: xlsx | case: Business plan checklist with SWOT analysis1 | scope: java-issue-xlsx
+ Business plan checklist with SWOT analysis1 ⬤ 77.6% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + Event budget1
format: xlsx | case: Event budget1 | scope: java-issue-xlsx
+ Event budget1 ⬤ 79.1% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + Expense report basic1
format: xlsx | case: Expense report basic1 | scope: java-issue-xlsx
+ Expense report basic1 ⬤ 79.1% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + Grocery list1
format: xlsx | case: Grocery list1 | scope: java-issue-xlsx
+ Grocery list1 ⬤ 81.5% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + Issue202609031340
format: xlsx | case: Issue202609031340 | scope: java-issue-xlsx
+ Issue202609031340 ⬤ 93.1% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + payroll-calculator_f
format: xlsx | case: payroll-calculator_f | scope: java-issue-xlsx
+ payroll-calculator_f ⬤ 62.9% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + PO_anonymized
format: xlsx | case: PO_anonymized | scope: java-issue-xlsx
+ PO_anonymized ⬤ 77.3% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + Simple invoice1
format: xlsx | case: Simple invoice1 | scope: java-issue-xlsx
+ Simple invoice1 ⬤ 78.1% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + Small business cash flow forecast1
format: xlsx | case: Small business cash flow forecast1 | scope: java-issue-xlsx
+ Small business cash flow forecast1 ⬤ 73.6% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + Wedding_timeline_planner1_copy
format: xlsx | case: Wedding_timeline_planner1_copy | scope: java-issue-xlsx
+ Wedding_timeline_planner1_copy ⬤ 93.0% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + Weekly schedule planner1
format: xlsx | case: Weekly schedule planner1 | scope: java-issue-xlsx
+ Weekly schedule planner1 ⬤ 50.1% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + missing + missing + + + XlsxIssue75
format: xlsx | case: XlsxIssue75 | scope: java-issue-xlsx
+ XlsxIssue75 ⬤ 87.1% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + XlsxIssue77_MergedCellAlignment
format: xlsx | case: XlsxIssue77_MergedCellAlignment | scope: java-issue-xlsx
+ XlsxIssue77_MergedCellAlignment ⬤ 95.6% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + XlsxIssue77_Template1
format: xlsx | case: XlsxIssue77_Template1 | scope: java-issue-xlsx
+ XlsxIssue77_Template1 ⬤ 95.7% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + XlsxIssue77_Template2_Workaround
format: xlsx | case: XlsxIssue77_Template2_Workaround | scope: java-issue-xlsx
+ XlsxIssue77_Template2_Workaround ⬤ 95.8% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + XlsxIssue81_LayoutOptions
format: xlsx | case: XlsxIssue81_LayoutOptions | scope: java-issue-xlsx
+ XlsxIssue81_LayoutOptions ⬤ 89.0% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + XlsxIssue82_5mb
format: xlsx | case: XlsxIssue82_5mb | scope: java-issue-xlsx
+ XlsxIssue82_5mb ⬤ 67.8% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + XlsxIssue82_SampleTestData5mb
format: xlsx | case: XlsxIssue82_SampleTestData5mb | scope: java-issue-xlsx
+ XlsxIssue82_SampleTestData5mb ⬤ 71.7% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + XlsxIssue82_WideTable
format: xlsx | case: XlsxIssue82_WideTable | scope: java-issue-xlsx
+ XlsxIssue82_WideTable ⬤ 86.5% + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + java MiniPdf + Microsoft 365 Excel Reference + LibreOffice + + + +## Detailed Results + +### Academic Achievement Summary Table + +- **Case Metadata:** format: xlsx | case: Academic Achievement Summary Table | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/Academic Achievement Summary Table.xlsx +- **Text Similarity:** 0.9068 +- **Visual Average:** 0.6289 +- **Overall Score:** 0.7143 +- **Pages:** MiniPdf=4, Reference=2 +- **File Size:** MiniPdf=54546 bytes, Reference=151877 bytes + +
Text Diff + +```diff +--- minipdf/Academic Achievement Summary Table.pdf ++++ reference/Academic Achievement Summary Table.pdf +@@ -1,10 +1,10 @@ + 附件3 + + 学术业绩汇总表 + +-报考岗位: 报考岗位代码: 考⽣姓名: + +-博⼠论⽂题⽬: 博⼠论⽂研究⽅向: + +-公开发表的主要论⽂情况 + +-⻆⾊ 转载刊物、转载字数及 是否为代表作 + +-序号 题⽬ 刊物名称 核⼼期刊情况 刊号 发表时间 + ++报考岗位: 报考岗位代码: 考生姓名: + ++博士论文题目: 博士论文研究方向: + ++公开发表的主要论文情况 + ++角色 转载刊物、转载字数及 是否为代表作 + ++序号 题目 刊物名称 核心期刊情况 刊号 发表时间 + + (排名) 转载时间等 (指定1篇) + + 1 + + 2 + +@@ -20,29 +20,28 @@ + 12 + + ---PAGE--- + + 公开出版的主要专(译)著、教材情况 + +-⻆⾊ 全书⽂ 本⼈写 转载刊物、转载字数及 + +-序号 题⽬ 出版社名称 出版号 出版时间 备注 + ++角色 全书文 本人写 转载刊物、转载字数及 + ++序号 题目 出版社名称 出版号 出版时间 备注 + + (排名) 字数 作量 转载时间等 + + 1 + + 2 + + 获批的决策咨询报告情况 + +-序号 题⽬ 批⽰领导级别 获批时间 ⻆⾊(排名) 备注 + ++序号 题目 批示领导级别 获批时间 角色(排名) 备注 + + 1 + + 2 + + 3 + + 4 + + 承担的主要科研课题情况 + +-项⽬ + +-序号 课题名称 项⽬来源 课题编号 ⻆⾊(排名) 起⽌时间 成果鉴定(评价) 备注 + ++项目 + ++序号 课题名称 项目来源 课题编号 角色(排名) 起止时间 成果鉴定(评价) 备注 + + 级别 + + 1 + + 2 + + 3 + + 4 + +-本⼈承诺以上情况属实,并有相应证明。如有不实之处,愿意承担相应责任。 + +-报名⼈员签名: + +-⽇期: 年 ⽉ ⽇ + +-填表说明:1.请将各类学术成果按等级、层次及⽔平⾃⾼到低顺序填写。不加⾏、减⾏,不加⻚、减⻚,本表采⽤A4正反⾯打印。 + +-2.核⼼期刊是指北京⼤学图书馆“中⽂核⼼期刊”、南京⼤学“中⽂社会科学引⽂索引(CSSCI)来源期刊”(含扩展版、集刊)、中国科学技术信息研究所 + +-“中国科技论⽂统计源期刊”和科学引⽂索引(SCI)、社会科学引⽂索引(SSCI)。其中,被SCI、SSCI收录的期刊要求进⼊所在学科领域Q1、Q2。 + +----PAGE--- ++本人承诺以上情况属实,并有相应证明。如有不实之处,愿意承担相应责任。 + ++报名人员签名: + ++日期: 年 月 日 + ++填表说明:1.请将各类学术成果按等级、层次及水平自高到低顺序填写。不加行、减行,不加页、减页,本表采用A4正反面打印。 + ++2.核心期刊是指北京大学图书馆“中文核心期刊”、南京大学“中文社会科学引文索引(CSSCI)来源期刊”(含扩展版、集刊)、中国科学技术信息研究所 + ++“中国科技论文统计源期刊”和科学引文索引(SCI)、社会科学引文索引(SSCI)。其中,被SCI、SSCI收录的期刊要求进入所在学科领域Q1、Q2。 +``` +
+ +### AcademicAchievement_temp + +- **Case Metadata:** format: xlsx | case: AcademicAchievement_temp | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/AcademicAchievement_temp.xlsx +- **Text Similarity:** 0.9068 +- **Visual Average:** 0.6289 +- **Overall Score:** 0.7143 +- **Pages:** MiniPdf=4, Reference=2 +- **File Size:** MiniPdf=54546 bytes, Reference=151877 bytes + +
Text Diff + +```diff +--- minipdf/AcademicAchievement_temp.pdf ++++ reference/AcademicAchievement_temp.pdf +@@ -1,10 +1,10 @@ + 附件3 + + 学术业绩汇总表 + +-报考岗位: 报考岗位代码: 考⽣姓名: + +-博⼠论⽂题⽬: 博⼠论⽂研究⽅向: + +-公开发表的主要论⽂情况 + +-⻆⾊ 转载刊物、转载字数及 是否为代表作 + +-序号 题⽬ 刊物名称 核⼼期刊情况 刊号 发表时间 + ++报考岗位: 报考岗位代码: 考生姓名: + ++博士论文题目: 博士论文研究方向: + ++公开发表的主要论文情况 + ++角色 转载刊物、转载字数及 是否为代表作 + ++序号 题目 刊物名称 核心期刊情况 刊号 发表时间 + + (排名) 转载时间等 (指定1篇) + + 1 + + 2 + +@@ -20,29 +20,28 @@ + 12 + + ---PAGE--- + + 公开出版的主要专(译)著、教材情况 + +-⻆⾊ 全书⽂ 本⼈写 转载刊物、转载字数及 + +-序号 题⽬ 出版社名称 出版号 出版时间 备注 + ++角色 全书文 本人写 转载刊物、转载字数及 + ++序号 题目 出版社名称 出版号 出版时间 备注 + + (排名) 字数 作量 转载时间等 + + 1 + + 2 + + 获批的决策咨询报告情况 + +-序号 题⽬ 批⽰领导级别 获批时间 ⻆⾊(排名) 备注 + ++序号 题目 批示领导级别 获批时间 角色(排名) 备注 + + 1 + + 2 + + 3 + + 4 + + 承担的主要科研课题情况 + +-项⽬ + +-序号 课题名称 项⽬来源 课题编号 ⻆⾊(排名) 起⽌时间 成果鉴定(评价) 备注 + ++项目 + ++序号 课题名称 项目来源 课题编号 角色(排名) 起止时间 成果鉴定(评价) 备注 + + 级别 + + 1 + + 2 + + 3 + + 4 + +-本⼈承诺以上情况属实,并有相应证明。如有不实之处,愿意承担相应责任。 + +-报名⼈员签名: + +-⽇期: 年 ⽉ ⽇ + +-填表说明:1.请将各类学术成果按等级、层次及⽔平⾃⾼到低顺序填写。不加⾏、减⾏,不加⻚、减⻚,本表采⽤A4正反⾯打印。 + +-2.核⼼期刊是指北京⼤学图书馆“中⽂核⼼期刊”、南京⼤学“中⽂社会科学引⽂索引(CSSCI)来源期刊”(含扩展版、集刊)、中国科学技术信息研究所 + +-“中国科技论⽂统计源期刊”和科学引⽂索引(SCI)、社会科学引⽂索引(SSCI)。其中,被SCI、SSCI收录的期刊要求进⼊所在学科领域Q1、Q2。 + +----PAGE--- ++本人承诺以上情况属实,并有相应证明。如有不实之处,愿意承担相应责任。 + ++报名人员签名: + ++日期: 年 月 日 + ++填表说明:1.请将各类学术成果按等级、层次及水平自高到低顺序填写。不加行、减行,不加页、减页,本表采用A4正反面打印。 + ++2.核心期刊是指北京大学图书馆“中文核心期刊”、南京大学“中文社会科学引文索引(CSSCI)来源期刊”(含扩展版、集刊)、中国科学技术信息研究所 + ++“中国科技论文统计源期刊”和科学引文索引(SCI)、社会科学引文索引(SSCI)。其中,被SCI、SSCI收录的期刊要求进入所在学科领域Q1、Q2。 +``` +
+ +### Business expense budget1 + +- **Case Metadata:** format: xlsx | case: Business expense budget1 | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/Business expense budget1.xlsx +- **Text Similarity:** 0.9712 +- **Visual Average:** 0.8317 +- **Overall Score:** 0.9212 +- **Pages:** MiniPdf=4, Reference=4 +- **File Size:** MiniPdf=45757 bytes, Reference=159864 bytes + +
Text Diff + +```diff +--- minipdf/Business expense budget1.pdf ++++ reference/Business expense budget1.pdf +@@ -3,43 +3,46 @@ + CATEGORY Q1 BUDGET Q1 ACTUAL Q2 BUDGET + + PERSONNEL + + Salaries & Wages 45,000.00 44,200.00 46,000.00 + +-Benefits & Insurance 12,000.00 11,850.00 12,500.00 + ++Benefits & Insurance 12,000.00 11,850.00 12,500.00 + + Training & Development 3,000.00 2,800.00 3,200.00 + + Recruitment 2,000.00 1,500.00 2,500.00 + + Personnel Subtotal 62,000.00 60,350.00 64,200.00 + + OPERATIONS + +-Rent & U ƟliƟes 8,000.00 8,000.00 8,200.00 + +-Office Supplies 1,500.00 1,650.00 1,500.00 + ++Rent & Utilities 8,000.00 8,000.00 8,200.00 + ++Office Supplies 1,500.00 1,650.00 1,500.00 + + Equipment & Maintenance 3,000.00 2,700.00 3,500.00 + +-IT & So Ōware 4,000.00 4,200.00 4,500.00 + +-Telecommunica Ɵons 2,000.00 1,900.00 2,100.00 + +-Opera Ɵons Subtotal 18,500.00 18,450.00 19,800.00 + ++IT & Software 4,000.00 4,200.00 4,500.00 + ++Telecommunications 2,000.00 1,900.00 2,100.00 + ++Operations Subtotal 18,500.00 18,450.00 19,800.00 + + MARKETING + +-Adver Ɵsing 5,000.00 4,800.00 6,000.00 + +-Digital Marke Ɵng 3,000.00 3,200.00 3,500.00 + ++Advertising 5,000.00 4,800.00 6,000.00 + ++Digital Marketing 3,000.00 3,200.00 3,500.00 + + Events & Sponsorships 2,000.00 1,800.00 2,500.00 + +-Prin Ɵng & Design 1,000.00 950.00 1,200.00 + +-Marke Ɵng Subtotal 11,000.00 10,750.00 13,200.00 + ++Printing & Design 1,000.00 950.00 1,200.00 + ++Marketing Subtotal 11,000.00 10,750.00 13,200.00 + + TRAVEL & ENTERTAINMENT + +-Domes Ɵc Travel 3,000.00 2,500.00 3,500.00 + +-Interna Ɵonal Travel 5,000.00 4,000.00 6,000.00 + ++Domestic Travel 3,000.00 2,500.00 3,500.00 + ++International Travel 5,000.00 4,000.00 6,000.00 + + Meals & Entertainment 2,000.00 1,800.00 2,200.00 + + Vehicle Expenses 1,500.00 1,400.00 1,500.00 + + Travel & Entertainment Subtotal 11,500.00 9,700.00 13,200.00 + + PROFESSIONAL SERVICES + + Legal Fees 3,000.00 2,800.00 3,500.00 + +-Accoun Ɵng & Audit 2,500.00 2,500.00 2,500.00 + +-Consul Ɵng 4,000.00 3,500.00 5,000.00 + ++Accounting & Audit 2,500.00 2,500.00 2,500.00 + ++Consulting 4,000.00 3,500.00 5,000.00 + + Insurance 2,000.00 2,000.00 2,100.00 + + Professional Services Subtotal 11,500.00 10,800.00 13,100.00 + + ---PAGE--- + + GRAND TOTAL 114,500.00 110,050.00 123,500.00 + + Category Total Budget Total Actual + + Personnel 126200 124250 + +-Opera Ɵons 38300 38150 + +-Marke Ɵng 24200 23750 + ++Operations 38300 38150 + ++Marketing 24200 23750 + + Travel & Entertainment 24700 22100 + + Professional Services 24600 23400 + ++Budget vs Actual by Category + ++Amount (\$) + ++Category + + ---PAGE--- + + Q2 ACTUAL VARIANCE + + 45,800.00 1,000.00 +``` +
+ +### Business expenses budget2 + +- **Case Metadata:** format: xlsx | case: Business expenses budget2 | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/Business expenses budget2.xlsx +- **Text Similarity:** 0.8422 +- **Visual Average:** 0.8064 +- **Overall Score:** 0.8594 +- **Pages:** MiniPdf=4, Reference=4 +- **File Size:** MiniPdf=232162 bytes, Reference=376973 bytes + +
Text Diff + +```diff +--- minipdf/Business expenses budget2.pdf ++++ reference/Business expenses budget2.pdf +@@ -1,81 +1,81 @@ + Market Financial Consulting + + PLANNED EXPENSES + + January February March April May June July August September October November December Total + +-EMPLOYEE COSTS $ 107,950.00 $ 107,950.00 $ 107,950.00 $ 111,125.00 $ 111,125.00 $ 111,125.00 $ 111,125.00 $ 117,348.00 $ 117,348.00 $ 117,348.00 $ 117,348.00 $ 117,348.00 $ 1,355,090.00 + +-Wages $ 85,000.00 $ 85,000.00 $ 85,000.00 $ 87,500.00 $ 87,500.00 $ 87,500.00 $ 87,500.00 $ 92,400.00 $ 92,400.00 $ 92,400.00 $ 92,400.00 $ 92,400.00 $ 1,067,000.00 + +-Benefits $ 22,950.00 $ 22,950.00 $ 22,950.00 $ 23,625.00 $ 23,625.00 $ 23,625.00 $ 23,625.00 $ 24,948.00 $ 24,948.00 $ 24,948.00 $ 24,948.00 $ 24,948.00 $ 288,090.00 + +-OFFICE COSTS $ 11,370.00 $ 11,770.00 $ 11,770.00 $ 11,470.00 $ 11,470.00 $ 11,470.00 $ 11,470.00 $ 11,470.00 $ 11,470.00 $ 11,470.00 $ 11,770.00 $ 11,770.00 $ 138,740.00 + +-Office lease $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 9,800.00 $ 117,600.00 + +-Gas $ - 0 $ 400.00 $ 400.00 $ 100.00 $ 100.00 $ 100.00 $ 100.00 $ 100.00 $ 100.00 $ 100.00 $ 400.00 $ 400.00 $ 2,300.00 + +-Electric $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 300.00 $ 3,600.00 + +-Water $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 40.00 $ 480.00 + +-Telephone $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 250.00 $ 3,000.00 + +-Internet access $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 180.00 $ 2,160.00 + +-Office supplies $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 2,400.00 + +-Security $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 600.00 $ 7,200.00 + +-MARKETING COSTS $ 8,100.00 $ 3,100.00 $ 3,100.00 $ 11,100.00 $ 3,100.00 $ 3,900.00 $ 8,100.00 $ 6,100.00 $ 3,100.00 $ 8,100.00 $ 3,100.00 $ 6,900.00 $ 67,800.00 + +-Web site hosting $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 500.00 $ 6,000.00 + +-Web site updates $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 1,000.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 1,000.00 $ 4,000.00 + +-Collateral preparation $ 5,000.00 $ - 0 $ - 0 $ 5,000.00 $ - 0 $ - 0 $ 5,000.00 $ - 0 $ - 0 $ 5,000.00 $ - 0 $ - 0 $ 20,000.00 + +-Co +... (13972 more characters) + +``` +
+ +### Business plan checklist with SWOT analysis1 + +- **Case Metadata:** format: xlsx | case: Business plan checklist with SWOT analysis1 | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/Business plan checklist with SWOT analysis1.xlsx +- **Text Similarity:** 0.8583 +- **Visual Average:** 0.582 +- **Overall Score:** 0.7761 +- **Pages:** MiniPdf=1, Reference=1 +- **File Size:** MiniPdf=40955 bytes, Reference=64252 bytes + +
Text Diff + +```diff +--- minipdf/Business plan checklist with SWOT analysis1.pdf ++++ reference/Business plan checklist with SWOT analysis1.pdf +@@ -1,35 +1,37 @@ + Northwind Traders + + Business planning checklist + +-Using the strength, weakness, opportunity, and threat (SWOT) analysis framework, develop a checklist of the key activi + +-ties that need to be performed when preparing a formal business plan in the table, below. + ++Using the strength, weakness, opportunity, and threat (SWOT) analysis framework, develop a checklist of the key activities + ++that need to be performed when preparing a formal business plan in the table, below. + + Activity Owner Completion date + +-Strengths: Define the company's current mission statemen + +-Luca Richter 1/9/23 + +-t. + +-Strengths: Identify market segments in which the compan + +-y will participate by conducting primary and secondary ma Dylan Williams 1/9/23 + +-rket research. + +-Strengths: Identify the company's value proposition and h + +-Kristin Orav 1/16/23 + +-ow it will differentiate itself within the marketplace. + +-Weaknesses: Identify any barriers to market entry (for exa + +-mple, capital requirements, technical barriers, patents, an Flora Berggren 1/6/23 + +-d process barriers) that the company needs to overcome. + +-Weaknesses: Identify any risks inherent to the organizatio + +-n that need to be mitigated so that the company can realiz Flora Berggren 1/6/23 + +-e the business plan. + ++Strengths: Define the company's current mission + ++Luca Richter 1/9/2023 + ++statement. + ++Strengths: Identify market segments in which the + ++company will participate by conducting primary and Dylan Williams 1/9/2023 + ++secondary market research. + ++Strengths: Identify the company's value proposition and + ++Kristin Orav 1/16/2023 + ++how it will differentiate itself within the marketplace. + ++Weaknesses: Identify any barriers to market entry (for + ++example, capital requirements, technical barriers, patents, + ++Flora Berggren 1/6/2023 + ++and process barriers) that the company needs to + ++overcome. + ++Weaknesses: Identify any risks inherent to the + ++organization that need to be mitigated so that the company Flora Berggren 1/6/2023 + ++can realize the business plan. + + Opportunities: Identify areas where the current market is + +-Kristin Orav 1/6/23 + ++Kristin Orav 1/6/2023 + + underserved that provide an opportunity for the company. + +-Opportunities: Identify any key processes, intellectual capi + +-tal, or other resources that the company can use to its adv Ian Hansson 1/9/23 + +-antage in the marketplace. + +-Threats: Identify primary competitors, and then analyze co + +-mpetitor performance by using all available data and additi Gaurav Cheema 1/9/23 + +-onal data that can be verified. + +-Threats: Identify secondary and potential future competito + +-Chela Arapelli 1/16/23 + +-rs that might affect the business plan. + +-Threats: Develop strategies for mitigating primary and sec + +-Gaurav Cheema 1/16/23 + +-ondary competitive threats. ++Opportunities: Identify any key processes, intellectual + ++capital, or other res +... (514 more characters) + +``` +
+ +### Event budget1 + +- **Case Metadata:** format: xlsx | case: Event budget1 | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/Event budget1.xlsx +- **Text Similarity:** 0.9859 +- **Visual Average:** 0.741 +- **Overall Score:** 0.7908 +- **Pages:** MiniPdf=7, Reference=5 +- **File Size:** MiniPdf=61943 bytes, Reference=121223 bytes + +
Text Diff + +```diff +--- minipdf/Event budget1.pdf ++++ reference/Event budget1.pdf +@@ -1,15 +1,16 @@ + ABOUT THIS TEMPLATE + +-Use this event budget workbook to track expenses incurred on and income earned from an event. + ++Use this event budget workbook to track expenses incurred on and income earned from an + ++event. + + Enter details in tables in expenses worksheet and income worksheet. + + Total expenses and total income are auto-calculated. + + Profit & loss summary and chart are auto-updated in profit-loss summary worksheet. + + Note: + +-Additional instructions have been provided in column A in each worksheet. This text has been intentio + +-nally hidden. To remove text, select column A, then select DELETE. + +-To learn more about tables, press SHIFT and then F10 within a table, select the TABLE option, and th + +-en select ALTERNATIVE TEXT + ++Additional instructions have been provided in column A in each worksheet. This text has been + ++intentionally hidden. To remove text, select column A, then select DELETE. + ++To learn more about tables, press SHIFT and then F10 within a table, select the TABLE option, and + ++then select ALTERNATIVE TEXT + + ---PAGE--- + +-Event budget EXPENSE + ++Event budget EXPENSES + + Estimated Actual + + TOTAL EXPENSES + + $882.00 $333.00 + +@@ -31,10 +32,10 @@ + Photocopying/Printing $20.00 Gifts $100.00 + + Postage Total $100.00 $0.00 + + Total $20.00 $0.00 + +----PAGE--- + + Miscellaneous Estimated Actual + + Telephone $13.00 + + Transportation $12.00 + + Stationery supplies + + Fax services + +-Total $12.00 $13.00 ++Total $12.00 $13.00 + ++---PAGE--- +``` +
+ +### Expense report basic1 + +- **Case Metadata:** format: xlsx | case: Expense report basic1 | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/Expense report basic1.xlsx +- **Text Similarity:** 0.9556 +- **Visual Average:** 0.5218 +- **Overall Score:** 0.791 +- **Pages:** MiniPdf=1, Reference=1 +- **File Size:** MiniPdf=48922 bytes, Reference=47896 bytes + +
Text Diff + +```diff +--- minipdf/Expense report basic1.pdf ++++ reference/Expense report basic1.pdf +@@ -6,7 +6,7 @@ + Name Cora Thomas Position Sales rep SSN 123-45-**** + + Department Marketing & sales Manager Liane Cormier Employee ID 8675309 + + Date Account Description Hotel Transport Fuel Meals Phone Entertainment Misc. Total + +-10/5/23 Wide World Importers Networking $111.00 $250.00 $60.00 $50.00 $0.00 $300.00 $25.00 $796.00 + ++10/5/2023 Wide World Importers Networking $111.00 $250.00 $60.00 $50.00 $0.00 $300.00 $25.00 $796.00 + + $0.00 + + $0.00 + + $0.00 + +@@ -16,10 +16,8 @@ + $0.00 + + $0.00 + + Total $111.00 $250.00 $60.00 $50.00 $0.00 $300.00 $25.00 $796.00 + +-$796.00 + +-Subtotal + +-$0.00 + ++Subtotal $796.00 + ++Advances $0.00 + + APPROVED + +-NOTES Advances + +-$796.00 + +-Total ++NOTES + ++Total $796.00 +``` +
+ +### Grocery list1 + +- **Case Metadata:** format: xlsx | case: Grocery list1 | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/Grocery list1.xlsx +- **Text Similarity:** 0.8403 +- **Visual Average:** 0.6961 +- **Overall Score:** 0.8146 +- **Pages:** MiniPdf=1, Reference=1 +- **File Size:** MiniPdf=34874 bytes, Reference=71396 bytes + +
Text Diff + +```diff +--- minipdf/Grocery list1.pdf ++++ reference/Grocery list1.pdf +@@ -1,48 +1,28 @@ + ORCHARD GROCERY HOME DELIVERY LOCAL MARKET OTHER GRAND TOTAL + + GROCERY LIST + +-Customize this list. Replace the entries above with your own to track your most frequentl + +-y used categories. + ++Customize this list. Replace the entries above with your own to track your + + $11.95 $6.12 $31.85 $216.60 $3.99 $270.51 + ++most frequently used categories. + + DONE? ITEM STORE CATEGORY QTY UNIT UNIT PRICE TOTAL NOTE + +-Yes Peaches Azure River Farm ORCHARD lbs $2.99 $5.98 + +-2 + +-Yes Apples Azure River Farm ORCHARD lbs $1.99 $5.97 Have coupon + +-3 + +-Bananas Wide World Importers OTHER bunch $3.99 $3.99 + +-1 + +-Yes Lettuce Market LOCAL MARKET head $2.29 $4.58 + +-2 + +-Tomatoes Market LOCAL MARKET lbs $3.49 $13.96 + +-4 + +-Yes Squash Market LOCAL MARKET each $1.50 $3.00 + +-2 + +-Yes Celery Wide World Importers LOCAL MARKET bunch $1.99 $3.98 + +-2 + +-Cucumber Market LOCAL MARKET lbs $2.29 $2.29 + +-1 + +-Mushrooms Wide World Importers GROCERY lbs $2.25 $1.13 + +-0.5 + +-HOME DELIVER + +-Yes Milk Local Farmer gal $3.99 $7.98 + +-Y 2 + +-HOME DELIVER Variety of block c + +-Yes Cheese Local Farmer lbs $9.99 $9.99 + +-Y 1 heeses + +-HOME DELIVER + +-Yes Eggs Local Farmer doz $3.50 $7.00 + +-Y 2 + +-HOME DELIVER + +-Yes Cottage cheese Local Farmer 16 oz $3.89 $3.89 + +-Y 1 + +-HOME DELIVER + +-Yes Sour cream Local Farmer 8 oz $2.99 $2.99 + +-Y 1 + +-Yogurt Wide World Importers GROCERY 16 oz $4.99 $4.99 Greek with honey + +-1 + +-Bacon wrapped fil + +-Beef Farmer's Market LOCAL MARKET lbs $7.99 $79.90 + +-10 ets + +-Wild Salmon Fish Market LOCAL MARKET lbs $8.99 $53.94 + +-6 + +-Alaskan King Crab Legs Fish Market LOCAL MARKET lbs $10.99 $54.95 + +-5 ++Yes Peaches Azure River Farm ORCHARD 2 lbs $2.99 $5.98 + ++Yes Apples Azure River Farm ORCHARD 3 lbs $1.99 $5.97 Have coupon + ++Bananas Wide World Importers OTHER 1 bunch $3.99 $3.99 + ++Yes Lettuce Market LOCAL MARKET 2 head $2.29 $4.58 + ++Tomatoes Market LOCAL MARKET 4 lbs $3.49 $13.96 + ++Yes Squash Market LOCAL MARKET 2 each $1.50 $3.00 + ++Yes Celery Wide World Importers LOCAL MARKET 2 bunch $1.99 $3.98 + ++Cucumber Market LOCAL MARKET 1 lbs $2.29 $2.29 + ++Mushrooms Wide World Importers GROCERY 0.5 lbs $2.25 $1.13 + ++Yes Milk Local Farmer HOME DELIVERY 2 gal $3.99 $7.98 + ++Variety of block + ++Yes Cheese Local Farmer HOME DELIVERY 1 lbs $9.99 $9.99 + ++cheeses + ++Yes Eggs Local Farmer HOME DELIVERY 2 doz $3.50 $7.00 + ++Yes Cottage cheese Local Farmer HOME DELIVERY 1 16 oz $3.89 $3.89 + ++Yes Sour cream Local Farmer HOME DELIVERY 1 8 oz $2.99 $2.99 + ++Yogurt Wide World Importers GROCERY 1 16 oz $4.99 $4.99 Greek with honey + ++Bacon wrapped + ++Beef Farmer's Market LOCAL MARKET 10 lbs $7.99 $79.90 + ++filets + ++Wild Salmon Fish Market LOCAL MARKET 6 lbs $8.99 $53.94 + ++Alaskan King Crab Legs Fish Market LOCAL MARKET 5 lbs $10.99 $54.95 +``` +
+ +### Issue202609031340 + +- **Case Metadata:** format: xlsx | case: Issue202609031340 | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/Issue202609031340.xlsx +- **Text Similarity:** 0.9022 +- **Visual Average:** 0.9262 +- **Overall Score:** 0.9314 +- **Pages:** MiniPdf=4, Reference=4 +- **File Size:** MiniPdf=446118 bytes, Reference=346206 bytes + +
Text Diff + +```diff +--- minipdf/Issue202609031340.pdf ++++ reference/Issue202609031340.pdf +@@ -1,30 +1,34 @@ + 表单编号 XXX-XXX-051-01 + +-文件编号 QA-SIPI-XXXX-01-1-1 + +-XXXXXX有限公司 + ++XXXXXX有限公司 文件编号QA-SIPI-XXXX-01-1-1 + + 发行日期 2025-04-11 + + 文件版本 03 修订日期 2025-11-25 + + 产品穴号 详见注意事项 产品单重 20.45±1.05 g + +-注塑制程检验标准书 ¢1.18*10MM(320度加强 + ++注塑制程检验标准书 + ++¢1.18*10MM(320度加强 + + 附件编号 / 销钉规格 + + 型) + + 产品型号 XXXX 部件名称 盖塑胶件 抽样计划 ANSI/ASQ Z1.4Ⅱ 巡检频率 2H/次 + +-MO25XXXX0100/MO2 + ++MO25XXXX0100/MO + + 模具编号 部件材质 PETG 允收水准 CR: 0 MA:1.0 MI: 2.0 + +-5XXXX0110 + ++25XXXX0110 + + 检验条件 检验光源角度:45°-90°,检验距离30cm,光照900~1200lux + + 参考 图纸文件编号:XXXX系列 内部图纸 2025.4.10 + + 项目 检验工具 巡检内容 + + 图 部件图纸编号:HKXXXX-01-RB + +-结 目视、图纸 1、首件样品整模结构符合图纸设计、同PPS结构一致; + +-构 、PPS 2、制程巡检整模产品结构需同首件结构一致。 + +-颜 目视、限度 1、首件样品颜色需无限接近限度样中的标准样; + +-色 样 2、制程巡检产品颜色需同首件颜色一致。 + +-外 目视、限度 1、注塑成型外观缺陷大小不可超出限度样板; + +-观 样 2、其它外观缺陷无限度样的按常规通用标准判定。 + ++结 目视、图 1、首件样品整模结构符合图纸设计、同PPS结构一致; + ++构 纸、PPS 2、制程巡检整模产品结构需同首件结构一致。 + ++颜 目视、限 1、首件样品颜色需无限接近限度样中的标准样; + ++色 度样 2、制程巡检产品颜色需同首件颜色一致。 + ++外 目视、限 1、注塑成型外观缺陷大小不可超出限度样板; + ++观 度样 2、其它外观缺陷无限度样的按常规通用标准判定。 + + 包装 目视 参照注塑作业指导书(SOP) + + 仪器 项目 管控标准(mm) 测量位置 频率 + +-卡尺 A 68.16 +0.05/-0.17 外形最长距离 1次/班 + +-卡尺 B 62.03 +0.05/-0.20 外形最宽距离 1次/班 + ++1次/ + ++卡尺 A 68.16 +0.05/-0.17 外形最长距离 + ++班 + ++1次/ + ++卡尺 B 62.03 +0.05/-0.20 外形最宽距离 + ++班 + + 卡尺 C 27.9 +0.03/-0.05 顶部装饰片槽长度 首件 + + 卡尺 D 18.87 +0.00/-0.10 后钮侧面装饰片槽长度 首件 + + 卡尺 E 6.70+0.00/-0.05 后钮侧面大卡槽宽度 首件 + +@@ -36,44 +40,62 @@ + 后钮针孔中分线中心点至前扣弧 + + 投影仪 J 53.93+0.04/-0.03 6H + + 线中心点距离 + +-卡尺 K 18.61±0.05 后钮针孔左右间距 1次/班 + +-高度规 L*2 4.65+0.00/-0.10 后钮针孔中心至口部平面间距 1次/班 + +-参考资料/项目 代码 取样数量频率 代码 取样数量频率 注意事项及品质履历 + ++1次/ + ++卡尺 K 18.61±0.05 后钮针孔左右间距 + ++班 + ++1次/ + ++高度规 L*2 4.65+0.00/-0.10 后钮针孔中心至口部平面间距 + ++班 + ++产品后钮装饰片槽缺 + ++口竖边同卡尺贴紧 + ++68.16 mm 62.03 mm + ++产品口部平面同 + ++产品口部平面同 + ++卡尺上平面平行 + ++卡尺上平面平行 + ++产品后钮装饰片槽缺 + ++口竖边同卡尺贴紧 + ++0.00 ~ 300mm卡尺 + ++参考资料/项目 代码 取样数量 频率 代码 取样数量 频率 注意事项及品质履历 + + 1.MO25XXXX0100:1#~4#/MO25XXXX0110:5#~12# + + 尺 + + 寸 + + 组 + + 组装制程检验标 + +-准书 1# 一模 1次/班 2# 一模 1次/班 + ++1次/ 1次/ + ++准书 1# 一模 2# 一模 + ++班 班 + + 合 + +-XXXX-00组装成 + ++XXXX- + + 功 + +-3# 一模 1次/班 5# 一模 1次/班 + +-品 + ++1次/ 1次/ + ++3# 一模 5# 一模 + ++00组装成品 班 班 + + 能 + +-6# 一模 1次/班 + ++1次/ + ++6# 一模 + ++班 + ++日期 版本 工程担当 品质担当 修 订 内 容 + ++2025/4/11 00 AAAA AAA 初版发行 + + 修 + +-日期 版本工程担当 品质担当 修 订 内 容 + ++---PAGE--- + ++修 + ++A:68.16 +0.05/-0.13改为68.16 +0.05/-0.17;B:62.03 +0.05/-0.10改为62.03 +0.05/-0.20;D:18.87 + + 订 + +-2025/4/11 00 AAAA AAA 初版发行 + +++0.00/-0.05改为18.87 + ++2025/5/12 01 BBBB BBB + + 记 + +----PAGE--- + +-A:68.16 +0.05/-0.13改为68.16 +0.05/-0.17;B:62.03 +0.05/-0.10改为62.03 +0.05/-0.20;D:18.87 +0. + +-2025/5/12 01 BBBB BBB 00/-0.05改为18.87 +0.00/-0.10;I:8.35+0.00/-0.16改为8.35+0.10/-0.05;J:53.93+0.00/-0.10改为53.93 + +-+0.05/-0.10;L*2:4.65±0.05改成4.65+0.00/-0.10;更新检验频率 + +++0.00/-0.10;I:8.35+0.00/-0.16改为8.35+0.10/-0.05;J:53.93+0.00/-0.10改为53.93+0.05/-0.10; + ++录 L*2:4.65±0.05改成4.65+0.00/-0.10;更新检验频率 + + 2025/8/6 02 CCCC CCCC 新增模具编号:MO25XXXX0110 + + 2025/11/25 03 DDDD DDDD J:53.93+0.05/-0.10改为53.93+0.04/-0.03 + + 研 制 + + 制 品 + +-发 造 + ++审 发 审 造 审 审 制 + + 造 保 + +-工 工 制 + ++核 工 核 工 核 核 作 + + 部 部 + +-程 程 作 + +-审 审 + +-审 审 + +-核 核 + +-核 核 + ++程 程 + + ---PAGE--- + + 文件编号 QA-SIPI-XXXX-01-1-1 表单编号 QA-FM-051-01 + + XXXXXX有限公司 + +@@ -83,7 +... (132 more characters) + +``` +
+ +### payroll-calculator_f + +- **Case Metadata:** format: xlsx | case: payroll-calculator_f | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/payroll-calculator_f.xlsx +- **Text Similarity:** 0.8386 +- **Visual Average:** 0.4835 +- **Overall Score:** 0.6288 +- **Pages:** MiniPdf=36, Reference=29 +- **File Size:** MiniPdf=1021293 bytes, Reference=606513 bytes + +
Text Diff + +```diff +--- minipdf/payroll-calculator_f.pdf ++++ reference/payroll-calculator_f.pdf +@@ -1,43 +1,49 @@ + Employee Register + +-Information contained in this employee register is highly confidential Filing Status (W-4 before 2020) Filing Status (W-4 from 2020 or later) + +-Step 2 Step 3 + +-Additional Amount to Wit + ++Information contained in this employee register is highly confidential Filing Status (W-4 before 2020) Filing St + ++Step 2 + ++Additional Amount to + + Annual Regular Overtime Exempt + +-Pay Federal hhold + ++Pay Federal Withhold + + ID Employee's Name M/F Hire Date Occupation Salary Hourly Hourly from W-4 Form Filing Status Filing Status + +-Frequency Allowance (With every paycheck) Dependents Other + ++Frequency Allowance (With every paycheck) + + ($) Rate ($) Rate ($) Overtime Box in (c) + +-($) Under Age 17 Dependents + ++($) + + 1 Adam Jones M 15-Feb-13 Senior Accountant 42,000.00 20.19 30.29 Yes Monthly W-4 (2020 or later) Exempt 2 50 Single Not Checked + + 2 Nichola Brown F 28-Sep-11 CR Manager 54,481.00 26.19 39.29 Yes Monthly W-4 (2020 or later) Married 4 Single Not Checked + + 3 Benny Erwin M 11-May-11 Applications PM 48,785.00 23.45 35.18 No Monthly W-4 (before 2020) Married 4 + ++When adding more rows, insert new rows above this one + ++Page 1 of 29 + + ---PAGE--- + +-When adding more rows, insert new rows above this one + ++tatus (W-4 from 2020 or later) Pre-Tax Adjustments Post-Tax Adjustments Post-Tax Deductions + ++Step 3 Step 4 + ++Tax Deferral Plan Health Insurance Other State Local Other Social + ++(b) (c) Exempt from Insurance + ++(401k) Premiums Withholdings Tax Tax Deductions Address Security + ++Dependents Other Deductions Extra FICA ($) + ++(%) ($) ($) (%) (%) ($) # + ++Under Age 17 Dependents ($) withholding + ++($) + ++100 50 4.00% - - Not Exempt 4.63% 0.00% 45.00 - 111 Street, Town/City, ST, 00000 ***-**-6789 + ++3.00% - - Not Exempt 4.63% 0.00% 42.00 - 111 Street, Town/City, ST, 00000 ***-**-4321 + ++4.50% - - Not Exempt 4.63% 0.00% 14.00 30.00 111 Street, Town/City, ST, 00000 ***-**-0000 + ++Page 2 of 29 + + ---PAGE--- + + © 2013 - 2026 Spreadsheet123 LTD + +-Pre-Tax Adjustments Post-Tax Adjustments Post-Tax Deductions Payroll Calculator + +-Step 4 + +-Tax Deferral Pl Health Insuranc Other Withholdi Exempt from State Local Other Deduct Social + +-(b) (c) Insurance + +-an (401k) e Premiums ngs Tax Tax ions Address Security + +-Deductions Extra ($) + +-(%) ($) ($) FICA (%) (%) ($) # + +-($) withholding + +-($) + +-100 50 4.00% - 0 - 0 Not Exempt 4.63% 0.00% 45.00 - 0 111 Street, Town/City, ST, 00000 ***-**-6789 + +-3.00% - 0 - 0 Not Exempt 4.63% 0.00% 42.00 - 0 111 Street, Town/City, ST, 00000 ***-**-4321 + +-4.50% - 0 - 0 Not Exempt 4.63% 0.00% 14.00 30.00 111 Street, Town/City, ST, 00000 ***-**-0000 + ++Payroll Calculator + + Disclaimer: + +-This template is provided as-is for informatio + +-nal, illustrative, or/and educational purposes + +-only and under no circumstances should be + +-construed as financial, legal, or tax advice. + +-The results provided by this calculator are o + +-nly estimates and may not apply to your +... (802 more characters) + +``` +
+ +### PO_anonymized + +- **Case Metadata:** format: xlsx | case: PO_anonymized | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/PO_anonymized.xlsx +- **Text Similarity:** 0.9385 +- **Visual Average:** 0.743 +- **Overall Score:** 0.7726 +- **Pages:** MiniPdf=69, Reference=9 +- **File Size:** MiniPdf=165573 bytes, Reference=409049 bytes + +
Text Diff + +```diff +--- minipdf/PO_anonymized.pdf ++++ reference/PO_anonymized.pdf +@@ -1,36 +1,35 @@ +-Final Inspec Ɵon Report + ++Final Inspection Report + + Client: Global Tech Supplier: Alpha Labs Client PO#: PO-XX328 + +-XXX office: TX Inspector: Sam Davis XXX PO#: 21668732 + +-PM: Avery Wilson Inspec Ɵon Site: Greenfield county, Metro city PO Quan Ɵty: N/A + +-Project#: XXBFNO6 Inspec Ɵon date: 24-Jan-2026 Batch Quan Ɵty: 88907PCS + +-Date of Manufacture: 1/18/2026~1/21/2026 Lot ID: 9928-539898(1st lot) + ++XXX office: TX Inspector: Sam Davis XXX PO#: 21668732 + ++PM: Avery Wilson Inspection Site: Greenfield county, Metro city PO Quantity: N/A + ++Project#: XXBFNO6 Inspection date: 24-Jan-2026 Batch Quantity: 88907PCS + ++Date of Manufacture: 1/18/2026~1/21/2026 Lot ID: 9928-539898(1st lot) + + Item#: XX-ABC-68878-C + +-Descrip Ɵon: Standard Component Assembly with Seal Insert + +-Sign-off sample: Yes Approved drawings Yes (Drawing#: K1VRJNVG REV: C ) + ++Description: Standard Component Assembly with Seal Insert + ++Sign-off sample: Yes Approved drawings Yes (Drawing#: K1VRJNVG REV: C ) + + Ship mark Yes Approved ranges Yes Ship to TBA + +-Inspec Ɵon Result: Accept + +-Re-in No + +-( Comm ) + +-Inspec Ɵon Result Summary + +-Sample size Comment Remark + +-Check points + ++Inspection Result: Accept + ++Re-inspection: No + ++( Comment: ) + ++Inspection Result Summary + ++Check points Sample size Comment Remark + + Dimension 20 Conformed + +-Aesthe Ɵcs 500 Conformed + ++Aesthetics 500 Conformed + + Color 500 Conformed + + Material N/A + +-Decora Ɵon 500 Conformed + ++Decoration 500 Conformed + + Packaging N/A + + Labeling N/A + + Assortment N/A + + Ship mark 1 Conformed + + Workmanship 500 Conformed + +-Func Ɵon 20 Conformed + +-Aesthe Ɵc InspecƟon + +-Inspec Ɵon method: ANSI/ASQ Z1.4 Sampling plan: Single sampling normal inspec Ɵon Sampling level: Level 2 + +-Acceptable Quality Level (AQL): Cri Ɵcal A: 0 Cri Ɵcal B: 0.65 Major: 1.5 Minor: 4.0 + ++Function 20 Conformed + ++Aesthetic Inspection + ++Inspection method: ANSI/ASQ Z1.4 Sampling plan: Single sampling normal inspection Sampling level: Level 2 + ++Acceptable Quality Level (AQL): Critical A: 0 Critical B: 0.65 Major: 1.5 Minor: 4.0 + + Sample size: 500 No. of carton drawn: 10 + + Opened carton No.: No carton# + +-No. Defects descrip Ɵon Cri. A Cri. B Major Minor + ++No. Defects description Cri. A Cri. B Major Minor + + 1 K. Seal gap 1 1 + + 2 J. Thread irregularity 3 + + 3 + +@@ -38,30 +37,32 @@ + 5 + + 6 + + 7 + +-Total Defec Ɵves 1 4 + +-Maximum Defec Ɵves 0 7 14 21 + +-Inspec Ɵon qty: >80% + +-Inspec Ɵon quanƟty No. of carton + ++Total Defectives 1 4 + ++Maximum Defectives 0 7 14 21 + ++Inspection qty: >80% + ++Inspection quantity No. of carton + + Item# XXX PO No. Batch qty. + + Packed Unpacked Packed Unpacked + + XX-ABC-57052-C 71662963 61,859 41,466 8,462 61 16 + + Total: 41,466 8,462 61 16 + ++Doc#: FIR-003.5 + ++Effective: 20171109 Page 1 of 9 + + ---PAGE--- + +-Final Inspec Ɵon Report + ++Final Inspection Report + + Client: Global Tech Supplier: Alpha Labs Client PO#: PO-XX328 + +-XXX office: TX Inspector: Sam Davis XXX PO#: 21668732 + +-PM: Avery Wilson I +... (2959 more characters) + +``` +
+ +### Simple invoice1 + +- **Case Metadata:** format: xlsx | case: Simple invoice1 | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/Simple invoice1.xlsx +- **Text Similarity:** 0.7573 +- **Visual Average:** 0.6953 +- **Overall Score:** 0.781 +- **Pages:** MiniPdf=1, Reference=1 +- **File Size:** MiniPdf=52865 bytes, Reference=94130 bytes + +
Text Diff + +```diff +--- minipdf/Simple invoice1.pdf ++++ reference/Simple invoice1.pdf +@@ -1,32 +1,20 @@ +-Elegant INVO + ++Elegant INVOICE + + Invoice #: 10654 + +-Invoice date: 9/7/26 + +-Embrace + ++Embrace Invoice date: 8/29/2026 + + Job: Wedding florals + +-Bill to: Hailey Clark + +-345 W Main + +-Address: 123 Avenue A, + +-Los Angeles, CA 14151 + ++345 W Main Bill to: Hailey Clark + ++Los Angeles, CA 14151 Address: 123 Avenue A, + + P: 915-555-0195 Burbank, CA 56789 + +-Phone: 805-555-0185 + +-F: 915-555-0105 + ++F: 915-555-0105 Phone: 805-555-0185 + + elegantembrace@example.com Fax: NA + +-Qty Unit price Discount Price + +-Item # Description + +-35 $1.05 $36.75 + +-A875 Peonies + +-25 $2.00 $50.00 + +-K245 Tulips + +-30 $1.35 $40.50 + +-U123 Buttercup + +-$127.25 + +-Invoice Subtotal + +-6.00% + +-Tax Rate + +-$7.64 + +-Sales Tax + +-$50.00 + +-Deposit Received + ++Item # Description Qty Unit price Discount Price + ++A875 Peonies 35 $1.05 $36.75 + ++K245 Tulips 25 $2.00 $50.00 + ++U123 Buttercup 30 $1.35 $40.50 + ++Invoice Subtotal $127.25 + ++Tax Rate 6.00% + ++Sales Tax $7.64 + ++Deposit Received $50.00 + + TOTAL $77.25 + + Please make all checks payable to Elegant Embrace. + + Total due in 90 days. Overdue accounts subject to a service charge of 1.5% per month. +``` +
+ +### Small business cash flow forecast1 + +- **Case Metadata:** format: xlsx | case: Small business cash flow forecast1 | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/Small business cash flow forecast1.xlsx +- **Text Similarity:** 0.9004 +- **Visual Average:** 0.6894 +- **Overall Score:** 0.7359 +- **Pages:** MiniPdf=3, Reference=5 +- **File Size:** MiniPdf=48698 bytes, Reference=93247 bytes + +
Text Diff + +```diff +--- minipdf/Small business cash flow forecast1.pdf ++++ reference/Small business cash flow forecast1.pdf +@@ -1,59 +1,82 @@ + ELBIDE REALTY + + Cash flow forecast + +-Starting cash on hand $ 10,000.00 Starting date Oct 2026 Cash minimum balance alert $ 2,000.00 + +-Oct 2026 Nov 2026 Dec 2026 Jan 2027 Feb 2027 Mar 2027 Apr 2027 May 2027 Jun 2027 Jul 2027 Aug 2027 Sep 2027 + ++Starting cash on hand $ 10,000.00 Starting date Sep 2026 Cash minimum balance alert $ 2,000.00 + ++Sep 2026 Oct 2026 Nov 2026 Dec 2026 Jan 2027 Feb 2027 Mar 2027 Apr 2027 May 2027 Jun 2027 Jul 2027 Aug 2027 + + Total + +-Cash on hand (beginning of month) $ 10,000.00 $ 8,050.00 $ 9,350.00 $ 890.00 $ 2,190.00 $ 13,590.00 $ 13,790.00 $ 15,290.00 $ 16,410.00 $ 14,360.00 $ 16,560.00 $ 18,780.00 + ++Cash on hand (beginning of month) $ 10,000.00 $ 8,050.00 $ 9,350.00 $ 890.00 $ 2,190.00 $ 13,590.00 $ 13,790.00 $ 15,290.00 $ 16,410.00 $ 14,360.00 $ 16,560.00 $ 18,780.00 + + Cash receipts + +-Cash sales $ 2,500.00 $ 3,000.00 $ 3,600.00 $ 3,000.00 $ 14,000.00 $ 6,000.00 $ 3,000.00 $ 2,800.00 $ 3,500.00 $ 4,000.00 $ 3,800.00 $ 4,200.00 $ 53,400.00 + +-Returns and allowances $ 200.00 $ 200.00 + +-Collections on accounts receivable $ - 0 + +-Interest, other income $ - 0 + +-Loan proceeds $ - 0 + +-Owner contributions $ - 0 + +-Other receipts $ - 0 + +-Total cash receipts $ 2,500.00 $ 3,000.00 $ 3,400.00 $ 3,000.00 $ 14,000.00 $ 6,000.00 $ 3,000.00 $ 2,800.00 $ 3,500.00 $ 4,000.00 $ 3,800.00 $ 4,200.00 $ 53,600.00 + +-Total cash available $ 12,500.00 $ 11,050.00 $ 12,750.00 $ 3,890.00 $ 16,190.00 $ 19,590.00 $ 16,790.00 $ 18,090.00 $ 19,910.00 $ 18,360.00 $ 20,360.00 $ 22,980.00 + ++Cash sales $ 2,500.00 $ 3,000.00 $ 3,600.00 $ 3,000.00 $ 14,000.00 $ 6,000.00 $ 3,000.00 $ 2,800.00 $ 3,500.00 $ 4,000.00 $ 3,800.00 $ 4,200.00 $ 53,400.00 + ++Returns and allowances $ 200.00 $ 200.00 + ++Collections on accounts receivable $ - + ++Interest, other income $ - + ++Loan proceeds $ - + ++Owner contributions $ - + ++Other receipts $ - + ++Total cash receipts $ 2,500.00 $ 3,000.00 $ 3,400.00 $ 3,000.00 $ 14,000.00 $ 6,000.00 $ 3,000.00 $ 2,800.00 $ 3,500.00 $ 4,000.00 $ 3,800.00 $ 4,200.00 $ 53,600.00 + ++Total cash available $ 12,500.00 $ 11,050.00 $ 12,750.00 $ 3,890.00 $ 16,190.00 $ 19,590.00 $ 16,790.00 $ 18,090.00 $ 19,910.00 $ 18,360.00 $ 20,360.00 $ 22,980.00 + + Cash paid out + +-Advertising $ 3,000.00 $ 3,000.00 + +-Commissions and fees $ 250.00 $ 300.00 $ 360.00 $ 300.00 $ 1,400.00 $ 400.00 $ 300.00 $ 280.00 $ 350.00 $ 400.00 $ 380.00 $ 420.00 $ 5,140.00 + +-Contract labor $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 200.00 $ 1,200.00 + +-Employee benefit programs $ - 0 + +-Insurance (other than health) $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 4,000.00 $ 16,000.00 + +-Interest expense $ - 0 + +-Materials and supplies (in COGS) $ 1,200.00 $ 1,200.00 +... (3800 more characters) + +``` +
+ +### Wedding_timeline_planner1_copy + +- **Case Metadata:** format: xlsx | case: Wedding_timeline_planner1_copy | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/Wedding_timeline_planner1_copy.xlsx +- **Text Similarity:** 0.9295 +- **Visual Average:** 0.8964 +- **Overall Score:** 0.9304 +- **Pages:** MiniPdf=8, Reference=8 +- **File Size:** MiniPdf=408701 bytes, Reference=180076 bytes + +
Text Diff + +```diff +--- minipdf/Wedding_timeline_planner1_copy.pdf ++++ reference/Wedding_timeline_planner1_copy.pdf +@@ -1,114 +1,121 @@ + Wedding timeline planner + + DONE? + +-? Arrange a gathering for you and your parents. + +-? Determine budget and how expenses will be shared. + ++☐ Arrange a gathering for you and your parents. + + 9 - 12 + ++☐ Determine budget and how expenses will be shared. + + MONTHS TO GO + +-? Discuss the size, style, location, and scope of the wedding you want. + +-Choose a target wedding date and time. (The actual date will depend on v + +-? + +-enue availability.) + +-Create a binder to store and organize ideas, worksheets, receipts, brochur + +-? + +-es, etc. + +-? Visit and reserve wedding and reception sites. + +-? Meet with your officiant. + +-Start compiling your guest list to estimate head count. Consider budg + +-? + +-et when thinking about “must-invites” versus “nice-to-invites.” + +-? Begin shopping for the wedding gown. + +-? Choose the members of your wedding party. + +-? Enroll in wedding/shower gift registries. + ++☐ Discuss the size, style, location, and scope of the wedding you want. + ++Choose a target wedding date and time. (The actual date will depend + ++☐ + ++on venue availability.) + ++Create a binder to store and organize ideas, worksheets, receipts, + ++☐ + ++brochures, etc. + ++☐ Visit and reserve wedding and reception sites. + ++☐ Meet with your officiant. + ++Start compiling your guest list to estimate head count. Consider + ++☐ + ++budget when thinking about “must-invites” versus “nice-to-invites.” + ++☐ Begin shopping for the wedding gown. + ++☐ Choose the members of your wedding party. + + 6 - 9 + ++☐ Enroll in wedding/shower gift registries. + + MONTHS TO GO + +-? Hire a photographer and a videographer. + +-Book an engagement photo session, especially if you plan to include a prof + +-? + +-essional engagement picture with Save-the-Date cards. + +-? Hire a caterer. + +-? Hire a florist. + +-Make arrangements for music to be played at the ceremony and reception + +-? . (Tasks might include booking a band or solo musician, hiring a DJ, choosi + +-ng significant musical selections, and so on.). + +-Reserve a block of hotel rooms for out-of-town guests. (Ask about group r + +-? + +-ates.) + +-Send out Save-the-Date cards. (Include lodging info and maps, as possible + +-? + +-.) + +-? Shop for wedding rings. + +-Select and order wedding gown, leaving ample time for delivery and altera + +-? + +-tions. + ++☐ Hire a photographer and a videographer. + ++Book an engagement photo session, especially if you plan to include a + ++☐ + ++professional engagement picture with Save-the-Date cards. + ++☐ Hire a caterer. + ++☐ Hire a florist. + ++Make arrangements for music to be played at the ceremony and + ++☐ reception. (Tasks might include booking a band or solo musician, + ++hiring a DJ, choosing significant musical selections, and so on.). + ++Reserve a block of hotel rooms for out-of-town guests. (Ask about + ++☐ + ++group rates.) + ++Send out Save-the-Date cards. (Include lodging info and maps, as + ++☐ + ++possible.) + ++☐ Shop for wedding rings. + ++Select and order +... (5652 more characters) + +``` +
+ +### Weekly schedule planner1 + +- **Case Metadata:** format: xlsx | case: Weekly schedule planner1 | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/Weekly schedule planner1.xlsx +- **Text Similarity:** 0.6289 +- **Visual Average:** 0.3729 +- **Overall Score:** 0.5007 +- **Pages:** MiniPdf=2, Reference=1 +- **File Size:** MiniPdf=72332 bytes, Reference=148591 bytes + +
Text Diff + +```diff +--- minipdf/Weekly schedule planner1.pdf ++++ reference/Weekly schedule planner1.pdf +@@ -1,16 +1,15 @@ + Weekly schedule planner + +-Week of: 9/7/26 + ++Week of: 8/24/2026 + + Weekly objectives To do items Deadlines this week + +-Run 3 miles Take FiFi to vet Presenta Ɵon on Thursday + ++Run 3 miles Take FiFi to vet Presentation on Thursday + + Read 30 min/day Go grocery shopping + + Stretch Pick up dry cleaning + +-46272.0 46273.0 46274.0 46275.0 46276.0 46277.0 46278.0 + +-07 + +-September 08 September 09 September 10 September 11 September 12 September 13 September + +-? Run ? Run ? Run Run Run Run Run + +-? Read ? Read ? Read Read Read Read Read + +-? Stretch ? Stretch ? Stretch Stretch Stretch Stretch Stretch + +-? Go to vet ? Shopping Present + +-? Rehearse + +-Notes + +----PAGE--- ++Monday Tuesday Wednesday Thursday Friday Saturday Sunday + ++24 25 26 27 28 29 30 + ++August August August August August August August + ++✔ Run ✔ Run ✖ Run Run Run Run Run + ++✖ Read ✔ Read ✔ Read Read Read Read Read + ++✔ Stretch ✔ Stretch ✖ Stretch Stretch Stretch Stretch Stretch + ++✔ Go to vet ✔ Shopping Present + ++✔ Rehearse + ++Notes +``` +
+ +### XlsxIssue75 + +- **Case Metadata:** format: xlsx | case: XlsxIssue75 | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/XlsxIssue75.xlsx +- **Text Similarity:** 0.9694 +- **Visual Average:** 0.9592 +- **Overall Score:** 0.8714 +- **Pages:** MiniPdf=152, Reference=144 +- **File Size:** MiniPdf=393485 bytes, Reference=5896201 bytes + +
Text Diff + +```diff +--- minipdf/XlsxIssue75.pdf ++++ reference/XlsxIssue75.pdf +@@ -46,10 +46,10 @@ + 3991293 Fred Invoice + + 30184 Fred Invoice + + 30184 Fred Invoice + +----PAGE--- + + 30184 Fred Invoice + + 30184 Fred Invoice + + 30184 Fred Invoice + ++---PAGE--- + + 30184 Fred Invoice + + 30184 Fred Invoice + + 30184 Fred Invoice + +@@ -95,13 +95,13 @@ + BLAC002 Fred Invoice + + BLAC002 Fred Invoice + + BLAC002 Fred Invoice + +----PAGE--- + + BLAC002 Fred Invoice + + BLAC002 Fred Credit Memo + + BLAC002 Fred Credit Memo + + BLAC002 Fred Invoice + + BLAC002 Fred Invoice + + BLAC002 Fred Invoice + ++---PAGE--- + + BLAC002 Fred Credit Memo + + BLAC002 Fred Invoice + + BLAC002 Fred Invoice + +@@ -143,4 +143,13 @@ + 26202 Fred Invoice + + 26202 Fred Invoice + + 26202 Fred Invoice + +-26202 Fred Invoice ++26202 Fred Invoice + ++26202 Fred Invoice + ++26202 Fred Invoice + ++26202 Fred Invoice + ++12011 Fred Invoice + ++011299 Fred Credit Memo + ++48105 Fred Credit Memo + ++48105 Fred Credit Memo + ++12112 Fred Invoice + ++14449 Fred Invoice +``` +
+ +### XlsxIssue77_MergedCellAlignment + +- **Case Metadata:** format: xlsx | case: XlsxIssue77_MergedCellAlignment | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/XlsxIssue77_MergedCellAlignment.xlsx +- **Text Similarity:** 1.0 +- **Visual Average:** 0.891 +- **Overall Score:** 0.9564 +- **Pages:** MiniPdf=2, Reference=2 +- **File Size:** MiniPdf=71248 bytes, Reference=172385 bytes + +Text content: ✅ Identical + +### XlsxIssue77_Template1 + +- **Case Metadata:** format: xlsx | case: XlsxIssue77_Template1 | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/XlsxIssue77_Template1.xlsx +- **Text Similarity:** 0.9905 +- **Visual Average:** 0.9007 +- **Overall Score:** 0.9565 +- **Pages:** MiniPdf=6, Reference=6 +- **File Size:** MiniPdf=60540 bytes, Reference=64464 bytes + +
Text Diff + +```diff +--- minipdf/XlsxIssue77_Template1.pdf ++++ reference/XlsxIssue77_Template1.pdf +@@ -6,8 +6,8 @@ + Attn Customer: Please return parts to the return address below. + + Customer Name Sales Person Requestor + + Return Address: Reason for Return: + +-NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR cod + +-e, original factory packaging, with no extra labels or markings on the product. + ++NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR + ++code, original factory packaging, with no extra labels or markings on the product. + + Original Qty + + Part No. Per Unit + + Invoice # Authorized + +@@ -20,8 +20,8 @@ + Attn Customer: Please return parts to the return address below. + + Customer Name Sales Person Requestor + + Return Address: Reason for Return: + +-NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR cod + +-e, original factory packaging, with no extra labels or markings on the product. + ++NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR + ++code, original factory packaging, with no extra labels or markings on the product. + + Original Qty + + Part No. Per Unit + + Invoice # Authorized + +@@ -34,8 +34,8 @@ + Attn Customer: Please return parts to the return address below. + + Customer Name Sales Person Requestor + + Return Address: Reason for Return: + +-NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR cod + +-e, original factory packaging, with no extra labels or markings on the product. + ++NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR + ++code, original factory packaging, with no extra labels or markings on the product. + + Original Qty + + Part No. Per Unit + + Invoice # Authorized +``` +
+ +### XlsxIssue77_Template2_Workaround + +- **Case Metadata:** format: xlsx | case: XlsxIssue77_Template2_Workaround | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/XlsxIssue77_Template2_Workaround.xlsx +- **Text Similarity:** 0.9905 +- **Visual Average:** 0.9048 +- **Overall Score:** 0.9581 +- **Pages:** MiniPdf=6, Reference=6 +- **File Size:** MiniPdf=60494 bytes, Reference=64466 bytes + +
Text Diff + +```diff +--- minipdf/XlsxIssue77_Template2_Workaround.pdf ++++ reference/XlsxIssue77_Template2_Workaround.pdf +@@ -6,8 +6,8 @@ + Attn Customer: Please return parts to the return address below. + + Customer Name Sales Person Requestor + + Return Address: Reason for Return: + +-NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR cod + +-e, original factory packaging, with no extra labels or markings on the product. + ++NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR + ++code, original factory packaging, with no extra labels or markings on the product. + + Original Qty + + Part No. Per Unit + + Invoice # Authorized + +@@ -20,8 +20,8 @@ + Attn Customer: Please return parts to the return address below. + + Customer Name Sales Person Requestor + + Return Address: Reason for Return: + +-NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR cod + +-e, original factory packaging, with no extra labels or markings on the product. + ++NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR + ++code, original factory packaging, with no extra labels or markings on the product. + + Original Qty + + Part No. Per Unit + + Invoice # Authorized + +@@ -34,8 +34,8 @@ + Attn Customer: Please return parts to the return address below. + + Customer Name Sales Person Requestor + + Return Address: Reason for Return: + +-NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR cod + +-e, original factory packaging, with no extra labels or markings on the product. + ++NOTE - All parts returned for credit must be in original factory condition, with clean factory label and scannable QR + ++code, original factory packaging, with no extra labels or markings on the product. + + Original Qty + + Part No. Per Unit + + Invoice # Authorized +``` +
+ +### XlsxIssue81_LayoutOptions + +- **Case Metadata:** format: xlsx | case: XlsxIssue81_LayoutOptions | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/XlsxIssue81_LayoutOptions.xlsx +- **Text Similarity:** 0.9188 +- **Visual Average:** 0.807 +- **Overall Score:** 0.8903 +- **Pages:** MiniPdf=16, Reference=16 +- **File Size:** MiniPdf=61053 bytes, Reference=242251 bytes + +
Text Diff + +```diff +--- minipdf/XlsxIssue81_LayoutOptions.pdf ++++ reference/XlsxIssue81_LayoutOptions.pdf +@@ -1,122 +1,119 @@ + Invoice Customer Region Owner + +-INV-00001 Customer account with extended legal nam Europe Opera Ɵons owner 2 + +-INV-00002 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 3 + +-INV-00003 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 4 + +-INV-00004 Customer account with extended legal nam North America Opera Ɵons owner 5 + +-INV-00005 Customer account with extended legal nam Europe Opera Ɵons owner 6 + +-INV-00006 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 7 + +-INV-00007 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 8 + +-INV-00008 Customer account with extended legal nam North America Opera Ɵons owner 9 + +-INV-00009 Customer account with extended legal nam Europe Opera Ɵons owner 1 + +-INV-00010 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 2 + +-INV-00011 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 3 + +-INV-00012 Customer account with extended legal nam North America Opera Ɵons owner 4 + +-INV-00013 Customer account with extended legal nam Europe Opera Ɵons owner 5 + +-INV-00014 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 6 + +-INV-00015 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 7 + +-INV-00016 Customer account with extended legal nam North America Opera Ɵons owner 8 + +-INV-00017 Customer account with extended legal nam Europe Opera Ɵons owner 9 + +-INV-00018 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 1 + +-INV-00019 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 2 + +-INV-00020 Customer account with extended legal nam North America Opera Ɵons owner 3 + +-INV-00021 Customer account with extended legal nam Europe Opera Ɵons owner 4 + +-INV-00022 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 5 + +-INV-00023 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 6 + +-INV-00024 Customer account with extended legal nam North America Opera Ɵons owner 7 + +-INV-00025 Customer account with extended legal nam Europe Opera Ɵons owner 8 + +-INV-00026 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 9 + +-INV-00027 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 1 + +-INV-00028 Customer account with extended legal nam North America Opera Ɵons owner 2 + +-INV-00029 Customer account with extended legal nam Europe Opera Ɵons owner 3 + +-INV-00030 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 4 + +-INV-00031 Customer account with extended legal nam La Ɵn America Opera Ɵons owner 5 + +-INV-00032 Customer account with extended legal nam North America Opera Ɵons owner 6 + +-INV-00033 Customer account with extended legal nam Europe Opera Ɵons owner 7 + +-INV-00034 Customer account with extended legal nam Asia Pacific Opera Ɵons owner 8 + +-INV-00035 Customer +... (16477 more characters) + +``` +
+ +### XlsxIssue82_5mb + +- **Case Metadata:** format: xlsx | case: XlsxIssue82_5mb | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/XlsxIssue82_5mb.xlsx +- **Text Similarity:** 0.6052 +- **Visual Average:** 0.8405 +- **Overall Score:** 0.6783 +- **Pages:** MiniPdf=383, Reference=766 +- **File Size:** MiniPdf=9053125 bytes, Reference=21494385 bytes + +
Text Diff + +```diff +--- minipdf/XlsxIssue82_5mb.pdf ++++ reference/XlsxIssue82_5mb.pdf +@@ -1,143 +1,143 @@ +-Name Email Phone Address Company Text Descrip Ɵo Job Title + +-Quen Ɵn H oschiller@573.920.9 22808 LueMraz and Labore et Non delenEmergenc + +-Lowell Olseve.lind@720.754.6 67029 DecRosenbau Soluta nih Aut iste quFast Food + +-Sydnee Cr gunnar.sch13128126 908 Ma Ʃe Strosin, Ki Voluptate Sed aliquidInterac Ɵon + +-Tomasa D gerlach.ar +1 (276) 9787 Rey HBalistreri-KProvident Et cupiditaMotorcycl + +-Payton Kuherman.ba1-201-33353401 HahWolff-ErdmVero iste l Culpa id a Janitorial S + +-Constan Ɵn crist.elme (551) 609-32868 Kul Runolfsso Officia vol Aut non d Pressing M + +-Tad Hartmkathryn041-928-43477833 Kle Kunze, FraIpsum pra Facilis undTherapist + +-Tris Ɵan Lin li Ʃle.bobb +1.870.92 83843 ReeMitchell-SDignissimoEum beataTechnical + +-Miss Tierr gpredovic@912-817-0310 Elliot Ward-WildAb at evenAut voluptCredit Che + +-Nicole Ʃe S domenic4 +1-352-6113158 StoKerluke GrCulpa ea aQuos earuPostsecon + +-Rosalind Fkimberly.p16786269 700 Hya Ʃ Bode-Swi Ō Est et qui Eveniet teLoan Coun + +-Hector Braelarkin@s 1-458-225987 Isom SStrosin-KuLabore ut Quidem p Cement M + +-Marjory K brandyn.e1-210-606671 Kaci VMann, McMoles Ɵas Fuga et veBrokerage + +-Forrest Tuwilmer93@216.242.5 214 BahrinBlick, O'CoEnim earuAut sequi Musician + +-Kennedy Wgutkowski+1.321.40 693 MossiAbshire, RDolor doloRerum aspIndustrial- + +-Lysanne Hgebert@y +1.272.47 4137 BergNitzsche LAsperioresAt doloresInterviewe + +-Randall Dagreenholt 17024567 90795 Bei Lue Ʃgen, Blandi Ɵis n Et natus q Mixing and + +-Chanelle Bsally46@g14438889 8856 AngeYundt-Kirl Voluptas l Dolores mCommunic + +-Mr. Gregoudietrich@1-469-314750 Ebert Goye Ʃe In Unde odit Qui aut doClinical La + +-Rosalia Vodonna.sim13853465 9022 CletaAbbo Ʃ, Ca Soluta id tAut sit et aMechanica + +-Sigmund Tteresa93@+1.937.53 2314 CristAufderharConsectet QuibusdamProducer + +-Prof. Janicahe ƫnger 312.745.3 50901 LudSawayn, WSint aut reAlias sed vLoading M + +-Mr. Brad Flhickle@ya856-513-791499 MoKeebler, L AssumendAsperioresAircra Ō M + +-Christop Gdstrosin@(563) 429-150 BertraKreiger LtdQuas occaCommodi Aircra Ō Bo + +-Dr. Toni Merling43@+1-765-386102 AssuJenkins IncLaborum aUt aut et uLog Grade + +-Reece Fadekirlin@lo463.613.7 9314 SibylFeeney GrVoluptate Quo exercRecordkee + +-Izaiah Skilehgoye Ʃe@ 240-241-28932 BartoDavis-WelQui fuga dEnim quia Biologist + +-Mathilde Sromaguer 1-218-29880599 ProCarter-PurAb voluptaSimilique sFence Erec + +-Mr. Jarreddimitri.hay279.899.6 6187 ConnKonopelskAutem sit Soluta dol Paralegal + +-Kameron Psimone.hy1-510-89134203 KatS Ɵedeman Ipsa ut amPerspicia Ɵ Directory A + +-Miss Libbyathena68@+1.937.89 1155 Max D'Amore-WEst dolor eEum volupGrinder O + +-Nayeli Bernadia28@1-781-79758562 BotLi Ʃle, Volk Harum sunExercita Ɵo Life Scienc + +-Chaz Bogadevan58@+1.870.44 657 Clo Ɵld Stracke In Est animi eIllum cum Health Tec + +-Frieda Moemuller@ 1-458-70091308 BarJerde PLC RecusandaEst eos et Rotary Dri + +-Jarod Grimqblanda@283-286-9315 O'HarUpton GroAperiam aQuasi repeCrane and + +-Mr. Mor +... (21972 more characters) + +``` +
+ +### XlsxIssue82_SampleTestData5mb + +- **Case Metadata:** format: xlsx | case: XlsxIssue82_SampleTestData5mb | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/XlsxIssue82_SampleTestData5mb.xlsx +- **Text Similarity:** 0.6595 +- **Visual Average:** 0.8828 +- **Overall Score:** 0.7169 +- **Pages:** MiniPdf=466, Reference=1668 +- **File Size:** MiniPdf=12343878 bytes, Reference=32924505 bytes + +
Text Diff + +```diff +--- minipdf/XlsxIssue82_SampleTestData5mb.pdf ++++ reference/XlsxIssue82_SampleTestData5mb.pdf +@@ -1,131 +1,146 @@ +-ID Name Email City Country DepartmenNotes Value1 Value2 RandomTe + +-1 User 1 user1@exaToronto UK IT pwJqdCFm760613 0.6770745 aJ3NulIjekF + +-2 User 2 user2@exaDelhi Germany IT S6gI ƩJQrYi 456305 0.8501621 pf092rX59 + +-3 User 3 user3@exaSydney UK Finance mmp5R2o 802115 0.4416719 FICghVXe4 + +-4 User 4 user4@exaBerlin Australia HR BpiYtDuC1 929132 0.9823118 Dqy4Y ĬZV + +-5 User 5 user5@exaBerlin France HR DXnTIbeTy178492 0.9325545 KXaj1Xiogb + +-6 User 6 user6@exaDelhi Australia HR Iw9DkBED 518412 0.1261322 U601Kz3aU + +-7 User 7 user7@exaToronto Australia Finance tN5mvZpZ 72218 0.5143867 GuleIeBIYZ + +-8 User 8 user8@exaTokyo USA Ops xqmF3Xc2n238623 0.8771951 kEPOh7wm + +-9 User 9 user9@exaLondon Australia Ops k099328Ns369743 0.6153598 D5YOUBW + +-10 User 10 user10@exDelhi Germany IT 3YvAHvcSG24089 0.9405732 goDwaKqv + +-11 User 11 user11@exSydney France Sales r2O9ZtMJy929463 0.4255768 F4rYXgsl2m + +-12 User 12 user12@exTokyo Japan Sales y8JVUgTdff777742 0.6389745 wNpAAEw + +-13 User 13 user13@exTokyo India Support v5XTbqBU 223784 0.2318513 FlobOTEN9 + +-14 User 14 user14@exNew York Japan Ops pxwvBMPV187168 0.7562123 cJSx1oYMF + +-15 User 15 user15@exSydney Japan Ops NPs68SCLX332785 0.3476629 82hWYSRr + +-16 User 16 user16@exDelhi Canada Ops JMgIo6JDv 966595 0.1094971 4BAbUAcF + +-17 User 17 user17@exParis Australia Ops LWFef8uCc429423 0.1728704 UQEtbOYiF + +-18 User 18 user18@exTokyo Australia Ops 4y2atULBn179954 0.9145142 AKEBEMk7 + +-19 User 19 user19@exBerlin France Finance MoiyHIdz6416476 0.4178345 yKogEsvtgj + +-20 User 20 user20@exLondon India Sales Gg4eeM2f 152083 0.2796520 4bCh4zWg + +-21 User 21 user21@exTokyo India Finance hk0tj7hQtj913510 0.5214737 uQ5Qw22c + +-22 User 22 user22@exNew York UK IT FexqT7i2Zp959850 0.2004013 6WLsCwBv + +-23 User 23 user23@exSydney Japan Ops wZdZL0KlV813108 0.0758993 ovnVvOjCS + +-24 User 24 user24@exLondon Germany Support I6go0j9fZK 175461 0.2702658 euHzFEtXjD + +-25 User 25 user25@exLondon Canada Ops eE9wvY61e582815 0.8325950 4E725SLTR + +-26 User 26 user26@exTokyo Japan Support vTlTmSLZK698910 0.0572326 63fo6sebU + +-27 User 27 user27@exDelhi UK Ops 001jLkp56y463742 0.6366096 cPF7y1qrq + +-28 User 28 user28@exTokyo India Ops JYMn1HVG185984 0.7516507 aFVmUW0 + +-29 User 29 user29@exLondon India Sales kDD8aBkfu110478 0.8380068 e8DIRNwL + +-30 User 30 user30@exBerlin UK Ops vt3rlC8s2T 165682 0.4784513 cuF6nwLU + +-31 User 31 user31@exSydney Canada Ops Sy0TGdVhk300288 0.5455362 17YQUGbp + +-32 User 32 user32@exLondon Japan IT nuLK3hv5k932811 0.9327351 RGlzsAMoP + +-33 User 33 user33@exTokyo Australia Finance 8QxYNykpz732250 0.0841050 14ZKlRNVj4 + +-34 User 34 user34@exNew York Germany IT WpY292GK120021 0.2129102 zWJnnfwsk + +-35 User 35 user35@exParis India IT Jc9UIcHT95631634 0.3495153 aLR8YGHPO + +-36 User 36 user36@exSydney Canada Ops JuxIUrhxzG858909 0.8466705 8LPabTH0o + +-37 User 37 user37@exBerlin Germany Ops f3VPwwbQ335553 0.8283657 xevCKmwR + +-38 User 38 use +... (16587 more characters) + +``` +
+ +### XlsxIssue82_WideTable + +- **Case Metadata:** format: xlsx | case: XlsxIssue82_WideTable | scope: java-issue-xlsx +- **Source:** tests/Issue_Files/xlsx/XlsxIssue82_WideTable.xlsx +- **Text Similarity:** 0.9103 +- **Visual Average:** 0.7519 +- **Overall Score:** 0.8649 +- **Pages:** MiniPdf=13, Reference=13 +- **File Size:** MiniPdf=67131 bytes, Reference=467940 bytes + +
Text Diff + +```diff +--- minipdf/XlsxIssue82_WideTable.pdf ++++ reference/XlsxIssue82_WideTable.pdf +@@ -1,110 +1,113 @@ + Record ID First Name Last Name Street Address City Region Postal Code + + ID-00001 Naveen Adhikari 1000 North Evergreen Avenue Suite 200 Kathmandu WA 98000 + + ID-00002 Alicia Patel 1001 North Evergreen Avenue Suite 201 Dublin BC 98001 + +-ID-00003 Marcus Benne Ʃ 1002 North Evergreen Avenue Suite 202 Aus Ɵn WA 98002 + ++ID-00003 Marcus Bennett 1002 North Evergreen Avenue Suite 202 Austin WA 98002 + + ID-00004 Priya Olsen 1003 North Evergreen Avenue Suite 203 Berlin BC 98003 + + ID-00005 Daniel Chen 1004 North Evergreen Avenue Suite 204 Singapore WA 98004 + +-ID-00006 Mei Tanaka 1005 North Evergreen Avenue Suite 205 Sea Ʃle BC 98005 + +-ID-00007 Sofia Kim 1006 North Evergreen Avenue Suite 206 Melbourne WA 98006 + ++ID-00006 Mei Tanaka 1005 North Evergreen Avenue Suite 205 Seattle BC 98005 + ++ID-00007 Sofia Kim 1006 North Evergreen Avenue Suite 206 Melbourne WA 98006 + + ID-00008 Owen Morrison 1007 North Evergreen Avenue Suite 207 Toronto BC 98007 + + ID-00009 Ibrahim Rodriguez 1008 North Evergreen Avenue Suite 208 Kathmandu WA 98008 + + ID-00010 Caroline Singh 1009 North Evergreen Avenue Suite 209 Dublin BC 98009 + +-ID-00011 Naveen Adhikari 1010 North Evergreen Avenue Suite 210 Aus Ɵn WA 98010 + ++ID-00011 Naveen Adhikari 1010 North Evergreen Avenue Suite 210 Austin WA 98010 + + ID-00012 Alicia Patel 1011 North Evergreen Avenue Suite 211 Berlin BC 98011 + +-ID-00013 Marcus Benne Ʃ 1012 North Evergreen Avenue Suite 212 Singapore WA 98012 + +-ID-00014 Priya Olsen 1013 North Evergreen Avenue Suite 213 Sea Ʃle BC 98013 + ++ID-00013 Marcus Bennett 1012 North Evergreen Avenue Suite 212 Singapore WA 98012 + ++ID-00014 Priya Olsen 1013 North Evergreen Avenue Suite 213 Seattle BC 98013 + + ID-00015 Daniel Chen 1014 North Evergreen Avenue Suite 214 Melbourne WA 98014 + + ID-00016 Mei Tanaka 1015 North Evergreen Avenue Suite 215 Toronto BC 98015 + +-ID-00017 Sofia Kim 1016 North Evergreen Avenue Suite 216 Kathmandu WA 98016 + ++ID-00017 Sofia Kim 1016 North Evergreen Avenue Suite 216 Kathmandu WA 98016 + + ID-00018 Owen Morrison 1017 North Evergreen Avenue Suite 217 Dublin BC 98017 + +-ID-00019 Ibrahim Rodriguez 1018 North Evergreen Avenue Suite 218 Aus Ɵn WA 98018 + ++ID-00019 Ibrahim Rodriguez 1018 North Evergreen Avenue Suite 218 Austin WA 98018 + + ID-00020 Caroline Singh 1019 North Evergreen Avenue Suite 219 Berlin BC 98019 + + ID-00021 Naveen Adhikari 1020 North Evergreen Avenue Suite 220 Singapore WA 98020 + +-ID-00022 Alicia Patel 1021 North Evergreen Avenue Suite 221 Sea Ʃle BC 98021 + +-ID-00023 Marcus Benne Ʃ 1022 North Evergreen Avenue Suite 222 Melbourne WA 98022 + ++ID-00022 Alicia Patel 1021 North Evergreen Avenue Suite 221 Seattle BC 98021 + ++ID-00023 Marcus Bennett 1022 North Evergreen Avenue Suite 222 Melbourne WA 98022 + + ID-00024 Priya Olsen 1023 North Evergreen Avenue Suite 223 Toronto BC 98023 + + ID-00025 Daniel Chen 1024 North Evergreen Avenue Suite 224 Kathmandu WA 98024 + + ID-00026 Mei Tanaka 1025 North +... (9623 more characters) + +``` +
+ +## Improvement Suggestions + +### ⚠ Low-Score Test Cases (below 0.8) + +1. **Weekly schedule planner1** (score: 0.5007) +1. **payroll-calculator_f** (score: 0.6288) +1. **XlsxIssue82_5mb** (score: 0.6783) +1. **Academic Achievement Summary Table** (score: 0.7143) +1. **AcademicAchievement_temp** (score: 0.7143) +1. **XlsxIssue82_SampleTestData5mb** (score: 0.7169) +1. **Small business cash flow forecast1** (score: 0.7359) +1. **PO_anonymized** (score: 0.7726) +1. **Business plan checklist with SWOT analysis1** (score: 0.7761) +1. **Simple invoice1** (score: 0.781) +1. **Event budget1** (score: 0.7908) +1. **Expense report basic1** (score: 0.791) -All test cases scored 0.8 or above. 🎉 +Review the text diffs and visual comparisons above to identify specific rendering issues. diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_heatmap.png new file mode 100644 index 00000000..0f042fa0 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_libreoffice.png new file mode 100644 index 00000000..09eeb56a Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_minipdf.png new file mode 100644 index 00000000..c5e9975d Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_reference.png new file mode 100644 index 00000000..258a8575 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_heatmap.png new file mode 100644 index 00000000..fe26ad50 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_libreoffice.png new file mode 100644 index 00000000..82a881d8 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_minipdf.png new file mode 100644 index 00000000..225431a4 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_reference.png new file mode 100644 index 00000000..6a0986f8 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p2_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p3_minipdf.png new file mode 100644 index 00000000..3362e473 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Academic Achievement Summary Table_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_heatmap.png new file mode 100644 index 00000000..0f042fa0 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_libreoffice.png new file mode 100644 index 00000000..09eeb56a Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_minipdf.png new file mode 100644 index 00000000..c5e9975d Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_reference.png new file mode 100644 index 00000000..258a8575 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_heatmap.png new file mode 100644 index 00000000..fe26ad50 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_libreoffice.png new file mode 100644 index 00000000..82a881d8 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_minipdf.png new file mode 100644 index 00000000..225431a4 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_reference.png new file mode 100644 index 00000000..6a0986f8 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p2_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p3_minipdf.png new file mode 100644 index 00000000..3362e473 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/AcademicAchievement_temp_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p1_heatmap.png new file mode 100644 index 00000000..47c25675 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p1_libreoffice.png new file mode 100644 index 00000000..80b47a27 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p1_minipdf.png new file mode 100644 index 00000000..85df7c9a Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p1_reference.png new file mode 100644 index 00000000..c39f9932 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p2_heatmap.png new file mode 100644 index 00000000..e3117f38 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p2_libreoffice.png new file mode 100644 index 00000000..e5fc8fe7 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p2_minipdf.png new file mode 100644 index 00000000..5555794a Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p2_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p2_reference.png new file mode 100644 index 00000000..8e6b40f5 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p2_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p3_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p3_heatmap.png new file mode 100644 index 00000000..eac684af Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p3_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p3_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p3_libreoffice.png new file mode 100644 index 00000000..9bbcd8a3 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p3_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p3_minipdf.png new file mode 100644 index 00000000..f33c48fd Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p3_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p3_reference.png new file mode 100644 index 00000000..eed71412 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expense budget1_p3_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_heatmap.png new file mode 100644 index 00000000..ed75b6d5 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_libreoffice.png new file mode 100644 index 00000000..9a3f532c Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_minipdf.png new file mode 100644 index 00000000..5710dd59 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_reference.png new file mode 100644 index 00000000..3b0380a7 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_heatmap.png new file mode 100644 index 00000000..0f4fed73 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_libreoffice.png new file mode 100644 index 00000000..e1d26ab2 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_minipdf.png new file mode 100644 index 00000000..1388dabf Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_reference.png new file mode 100644 index 00000000..b6c913c0 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p2_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_heatmap.png new file mode 100644 index 00000000..f4d2f72d Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_libreoffice.png new file mode 100644 index 00000000..1f2ad150 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_minipdf.png new file mode 100644 index 00000000..0120044c Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_reference.png new file mode 100644 index 00000000..174fb5f8 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business expenses budget2_p3_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_heatmap.png new file mode 100644 index 00000000..599223ab Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_libreoffice.png new file mode 100644 index 00000000..ed79fb96 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_minipdf.png new file mode 100644 index 00000000..0bdec1a0 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_reference.png new file mode 100644 index 00000000..deb857d1 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Business plan checklist with SWOT analysis1_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p1_heatmap.png new file mode 100644 index 00000000..73938358 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p1_libreoffice.png new file mode 100644 index 00000000..1177e230 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p1_minipdf.png new file mode 100644 index 00000000..cdf5e6ac Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p1_reference.png new file mode 100644 index 00000000..1177e230 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p2_heatmap.png new file mode 100644 index 00000000..b7436e37 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p2_libreoffice.png new file mode 100644 index 00000000..22654d15 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p2_minipdf.png new file mode 100644 index 00000000..2a748289 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p2_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p2_reference.png new file mode 100644 index 00000000..22654d15 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p2_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p3_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p3_heatmap.png new file mode 100644 index 00000000..22ec9f6f Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p3_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p3_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p3_libreoffice.png new file mode 100644 index 00000000..5f30bbf8 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p3_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p3_minipdf.png new file mode 100644 index 00000000..ec1df366 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p3_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p3_reference.png new file mode 100644 index 00000000..5f30bbf8 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Event budget1_p3_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Expense report basic1_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Expense report basic1_p1_heatmap.png new file mode 100644 index 00000000..3ae2f181 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Expense report basic1_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Expense report basic1_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Expense report basic1_p1_libreoffice.png new file mode 100644 index 00000000..53df58b5 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Expense report basic1_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Expense report basic1_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Expense report basic1_p1_minipdf.png new file mode 100644 index 00000000..46dfc340 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Expense report basic1_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Expense report basic1_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Expense report basic1_p1_reference.png new file mode 100644 index 00000000..53df58b5 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Expense report basic1_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Grocery list1_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Grocery list1_p1_heatmap.png new file mode 100644 index 00000000..2833d1f7 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Grocery list1_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Grocery list1_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Grocery list1_p1_libreoffice.png new file mode 100644 index 00000000..4304bbfb Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Grocery list1_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Grocery list1_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Grocery list1_p1_minipdf.png new file mode 100644 index 00000000..7ea575d9 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Grocery list1_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Grocery list1_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Grocery list1_p1_reference.png new file mode 100644 index 00000000..bc75ae22 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Grocery list1_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p1_heatmap.png index 49b56d47..a783d3b4 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p1_heatmap.png and b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p1_libreoffice.png index 8cac54a4..cd07b9fa 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p1_libreoffice.png and b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p1_minipdf.png index 388de307..c74cf0f1 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p1_minipdf.png and b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p2_heatmap.png index 2c9d9742..7b9c3fbe 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p2_heatmap.png and b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p2_libreoffice.png index 532555d4..1060b344 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p2_libreoffice.png and b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p2_minipdf.png index c1203a23..da21240e 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p2_minipdf.png and b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p3_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p3_heatmap.png index c6e444eb..9c760c47 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p3_heatmap.png and b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p3_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p3_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p3_libreoffice.png index 56ad74a8..996d7731 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p3_libreoffice.png and b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p3_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p3_minipdf.png index d00cd427..b7ca2420 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p3_minipdf.png and b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p4_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p4_heatmap.png deleted file mode 100644 index 963a23f5..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p4_heatmap.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p4_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p4_libreoffice.png deleted file mode 100644 index 1dfdaf12..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p4_libreoffice.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p4_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p4_minipdf.png deleted file mode 100644 index 8932d4c3..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p4_minipdf.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p4_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p4_reference.png deleted file mode 100644 index a656ea30..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/Issue202609031340_p4_reference.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p1_heatmap.png new file mode 100644 index 00000000..717cafe5 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p1_libreoffice.png new file mode 100644 index 00000000..6ab97c8d Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p1_minipdf.png new file mode 100644 index 00000000..78053551 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p1_reference.png new file mode 100644 index 00000000..699208b8 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p2_heatmap.png new file mode 100644 index 00000000..cf69d248 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p2_libreoffice.png new file mode 100644 index 00000000..2b74c1c4 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p2_minipdf.png new file mode 100644 index 00000000..b718f3c6 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p2_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p2_reference.png new file mode 100644 index 00000000..8f97089f Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p2_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p3_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p3_heatmap.png new file mode 100644 index 00000000..f7710261 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p3_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p3_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p3_libreoffice.png new file mode 100644 index 00000000..afcbe979 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p3_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p3_minipdf.png new file mode 100644 index 00000000..27df738c Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p3_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p3_reference.png new file mode 100644 index 00000000..e80fd724 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/PO_anonymized_p3_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Simple invoice1_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Simple invoice1_p1_heatmap.png new file mode 100644 index 00000000..6bfc62e9 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Simple invoice1_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Simple invoice1_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Simple invoice1_p1_libreoffice.png new file mode 100644 index 00000000..81082d5b Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Simple invoice1_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Simple invoice1_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Simple invoice1_p1_minipdf.png new file mode 100644 index 00000000..ba7987f0 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Simple invoice1_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Simple invoice1_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Simple invoice1_p1_reference.png new file mode 100644 index 00000000..c77c31d6 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Simple invoice1_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_heatmap.png new file mode 100644 index 00000000..e27d60c6 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_libreoffice.png new file mode 100644 index 00000000..2424d364 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_minipdf.png new file mode 100644 index 00000000..114a7ae3 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_reference.png new file mode 100644 index 00000000..4ddd7b38 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_heatmap.png new file mode 100644 index 00000000..9d82de0e Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_libreoffice.png new file mode 100644 index 00000000..4be00a43 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_minipdf.png new file mode 100644 index 00000000..010641d5 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_reference.png new file mode 100644 index 00000000..61d60588 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p2_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_heatmap.png new file mode 100644 index 00000000..d1e7158c Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_libreoffice.png new file mode 100644 index 00000000..23a9ced1 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_minipdf.png new file mode 100644 index 00000000..3362e473 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_reference.png new file mode 100644 index 00000000..4e8cee67 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Small business cash flow forecast1_p3_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_heatmap.png new file mode 100644 index 00000000..d578a41f Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_libreoffice.png new file mode 100644 index 00000000..e7bac153 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_minipdf.png new file mode 100644 index 00000000..81b8acf4 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_reference.png new file mode 100644 index 00000000..67c50500 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_heatmap.png new file mode 100644 index 00000000..d46a11de Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_libreoffice.png new file mode 100644 index 00000000..ee364ed2 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_minipdf.png new file mode 100644 index 00000000..6b9ef74a Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_reference.png new file mode 100644 index 00000000..c517909d Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p2_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_heatmap.png new file mode 100644 index 00000000..ef586d9b Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_libreoffice.png new file mode 100644 index 00000000..b7e9cceb Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_minipdf.png new file mode 100644 index 00000000..2080f43e Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_reference.png new file mode 100644 index 00000000..e73e3abc Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Wedding_timeline_planner1_copy_p3_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_heatmap.png new file mode 100644 index 00000000..15ed573e Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_libreoffice.png new file mode 100644 index 00000000..38ffaa21 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_minipdf.png new file mode 100644 index 00000000..46879d5e Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_reference.png new file mode 100644 index 00000000..25840cb2 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p2_minipdf.png new file mode 100644 index 00000000..7bab67ed Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/Weekly schedule planner1_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_heatmap.png new file mode 100644 index 00000000..89e6d224 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_libreoffice.png new file mode 100644 index 00000000..a28aef24 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_minipdf.png new file mode 100644 index 00000000..5181b427 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_reference.png new file mode 100644 index 00000000..a28aef24 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_heatmap.png new file mode 100644 index 00000000..dd6d39c0 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_libreoffice.png new file mode 100644 index 00000000..de6558a8 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_minipdf.png new file mode 100644 index 00000000..690eeda0 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_reference.png new file mode 100644 index 00000000..de6558a8 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p2_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_heatmap.png new file mode 100644 index 00000000..002e2418 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_libreoffice.png new file mode 100644 index 00000000..f0b4814a Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_minipdf.png new file mode 100644 index 00000000..53730b73 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_reference.png new file mode 100644 index 00000000..f0b4814a Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue75_p3_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p1_heatmap.png index dc81532d..6bd491f6 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p1_heatmap.png and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p1_minipdf.png index 2d14691a..7fa6fa88 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p1_minipdf.png and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p2_heatmap.png index 8fbc5e55..0eb22858 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p2_heatmap.png and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p2_minipdf.png index 7a9b1486..eac6bfc9 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p2_minipdf.png and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p3_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p3_heatmap.png index 0838f913..77b817e6 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p3_heatmap.png and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p3_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p3_minipdf.png index 92865149..38324135 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p3_minipdf.png and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p4_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p4_heatmap.png deleted file mode 100644 index da9ee6f5..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p4_heatmap.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p4_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p4_libreoffice.png deleted file mode 100644 index 053de176..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p4_libreoffice.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p4_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p4_minipdf.png deleted file mode 100644 index d5349ca8..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p4_minipdf.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p4_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p4_reference.png deleted file mode 100644 index 5060df90..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p4_reference.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p5_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p5_heatmap.png deleted file mode 100644 index 0aff8bb5..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p5_heatmap.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p5_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p5_libreoffice.png deleted file mode 100644 index 053de176..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p5_libreoffice.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p5_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p5_minipdf.png deleted file mode 100644 index ce8d67e2..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p5_minipdf.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p5_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p5_reference.png deleted file mode 100644 index 5060df90..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p5_reference.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p6_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p6_heatmap.png deleted file mode 100644 index 20375893..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p6_heatmap.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p6_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p6_libreoffice.png deleted file mode 100644 index f3783c5c..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p6_libreoffice.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p6_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p6_minipdf.png deleted file mode 100644 index d1a29fda..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p6_minipdf.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p6_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p6_reference.png deleted file mode 100644 index 4a68440b..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template1_p6_reference.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_heatmap.png new file mode 100644 index 00000000..1e57f3d2 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_libreoffice.png new file mode 100644 index 00000000..2125323f Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_minipdf.png new file mode 100644 index 00000000..b9fed297 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_reference.png new file mode 100644 index 00000000..fe46b5e2 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_heatmap.png new file mode 100644 index 00000000..09b59cca Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_libreoffice.png new file mode 100644 index 00000000..123863ac Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_minipdf.png new file mode 100644 index 00000000..917a1337 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_reference.png new file mode 100644 index 00000000..62ef26af Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p2_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_heatmap.png new file mode 100644 index 00000000..c82165ab Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_libreoffice.png new file mode 100644 index 00000000..123863ac Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_minipdf.png new file mode 100644 index 00000000..22295036 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_reference.png new file mode 100644 index 00000000..62ef26af Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue77_Template2_Workaround_p3_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_heatmap.png new file mode 100644 index 00000000..f0605a81 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_libreoffice.png new file mode 100644 index 00000000..3a53cf0c Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_minipdf.png new file mode 100644 index 00000000..e903bc59 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_reference.png new file mode 100644 index 00000000..936fd1c9 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_heatmap.png new file mode 100644 index 00000000..883e7960 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_libreoffice.png new file mode 100644 index 00000000..2a16c0be Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_minipdf.png new file mode 100644 index 00000000..ba21c8cd Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_reference.png new file mode 100644 index 00000000..5fa0264f Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p2_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_heatmap.png new file mode 100644 index 00000000..fd061d81 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_libreoffice.png new file mode 100644 index 00000000..3f26e3c7 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_minipdf.png new file mode 100644 index 00000000..8fd9d10c Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_reference.png new file mode 100644 index 00000000..bdeb7962 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue81_LayoutOptions_p3_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_heatmap.png new file mode 100644 index 00000000..25dfaf1f Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_libreoffice.png new file mode 100644 index 00000000..e17d9853 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_minipdf.png new file mode 100644 index 00000000..5d90868e Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_reference.png new file mode 100644 index 00000000..e17d9853 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_heatmap.png new file mode 100644 index 00000000..6436feaa Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_libreoffice.png new file mode 100644 index 00000000..fea444df Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_minipdf.png new file mode 100644 index 00000000..d18661a7 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_reference.png new file mode 100644 index 00000000..fea444df Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p2_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_heatmap.png new file mode 100644 index 00000000..66a9fb8f Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_libreoffice.png new file mode 100644 index 00000000..d3b04f5b Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_minipdf.png new file mode 100644 index 00000000..8a091d54 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_reference.png new file mode 100644 index 00000000..d3b04f5b Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_5mb_p3_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_heatmap.png new file mode 100644 index 00000000..fa3b65f0 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_libreoffice.png new file mode 100644 index 00000000..a91828af Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_minipdf.png new file mode 100644 index 00000000..428e356d Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_reference.png new file mode 100644 index 00000000..a91828af Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_heatmap.png new file mode 100644 index 00000000..95efc272 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_libreoffice.png new file mode 100644 index 00000000..2d094c51 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_minipdf.png new file mode 100644 index 00000000..5528a6c7 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_reference.png new file mode 100644 index 00000000..2d094c51 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p2_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_heatmap.png new file mode 100644 index 00000000..6da738aa Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_libreoffice.png new file mode 100644 index 00000000..00dc4e6f Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_minipdf.png new file mode 100644 index 00000000..c55c9b2f Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_reference.png new file mode 100644 index 00000000..00dc4e6f Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_SampleTestData5mb_p3_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_heatmap.png new file mode 100644 index 00000000..83e61538 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_libreoffice.png new file mode 100644 index 00000000..574b14b6 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_minipdf.png new file mode 100644 index 00000000..d8bea8f5 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_reference.png new file mode 100644 index 00000000..64a705b6 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_heatmap.png new file mode 100644 index 00000000..f4463bb1 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_libreoffice.png new file mode 100644 index 00000000..a91bb80b Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_minipdf.png new file mode 100644 index 00000000..8d1fbe96 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_reference.png new file mode 100644 index 00000000..0ad35071 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p2_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_heatmap.png new file mode 100644 index 00000000..10a670c8 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_libreoffice.png new file mode 100644 index 00000000..459e7f1f Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_minipdf.png new file mode 100644 index 00000000..721ae6ce Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_reference.png new file mode 100644 index 00000000..79c4fd5f Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/XlsxIssue82_WideTable_p3_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_heatmap.png new file mode 100644 index 00000000..8b3b0c26 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_libreoffice.png new file mode 100644 index 00000000..cbbb4d4b Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_minipdf.png new file mode 100644 index 00000000..9fd0600c Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_reference.png new file mode 100644 index 00000000..3f799a25 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p1_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_heatmap.png new file mode 100644 index 00000000..3f4b0075 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_libreoffice.png new file mode 100644 index 00000000..ed5fe577 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_minipdf.png new file mode 100644 index 00000000..3f674bc1 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_reference.png new file mode 100644 index 00000000..17e30902 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p2_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_heatmap.png b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_heatmap.png new file mode 100644 index 00000000..2dce61d2 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_heatmap.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_libreoffice.png new file mode 100644 index 00000000..ddd27d0b Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_minipdf.png b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_minipdf.png new file mode 100644 index 00000000..fc83a2e6 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_minipdf.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_reference.png b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_reference.png new file mode 100644 index 00000000..fcda8374 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/images/payroll-calculator_f_p3_reference.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Academic Achievement Summary Table_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Academic Achievement Summary Table_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..693abab9 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Academic Achievement Summary Table_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Academic Achievement Summary Table_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Academic Achievement Summary Table_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..7bcb6e31 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Academic Achievement Summary Table_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/AcademicAchievement_temp_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/AcademicAchievement_temp_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..693abab9 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/AcademicAchievement_temp_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/AcademicAchievement_temp_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/AcademicAchievement_temp_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..7bcb6e31 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/AcademicAchievement_temp_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expense budget1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expense budget1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..05d1776c Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expense budget1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expense budget1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expense budget1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..ab120c1d Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expense budget1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expense budget1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expense budget1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..2472fcdb Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expense budget1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expenses budget2_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expenses budget2_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..7802f806 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expenses budget2_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expenses budget2_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expenses budget2_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..4989ff05 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expenses budget2_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expenses budget2_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expenses budget2_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..18ba5ab8 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business expenses budget2_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business plan checklist with SWOT analysis1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business plan checklist with SWOT analysis1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..2a4eadee Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Business plan checklist with SWOT analysis1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Event budget1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Event budget1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..f8c516e4 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Event budget1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Event budget1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Event budget1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..02f880c4 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Event budget1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Event budget1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Event budget1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..2ab1a44c Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Event budget1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Expense report basic1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Expense report basic1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..174d928d Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Expense report basic1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Grocery list1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Grocery list1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..d5e337c0 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Grocery list1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png index 273d4c3e..e5f9ca94 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png index 66f2e323..550b6c5c 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png index c10e2cc6..efae475b 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p4_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p4_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png deleted file mode 100644 index 251fcd62..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Issue202609031340_p4_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/PO_anonymized_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/PO_anonymized_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..7addb121 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/PO_anonymized_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/PO_anonymized_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/PO_anonymized_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..b9de14c9 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/PO_anonymized_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/PO_anonymized_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/PO_anonymized_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..6d00fc3c Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/PO_anonymized_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Simple invoice1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Simple invoice1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..9a4978b1 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Simple invoice1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Small business cash flow forecast1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Small business cash flow forecast1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..8de73c6a Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Small business cash flow forecast1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Small business cash flow forecast1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Small business cash flow forecast1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..9a6e8678 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Small business cash flow forecast1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Small business cash flow forecast1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Small business cash flow forecast1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..7508756c Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Small business cash flow forecast1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Wedding_timeline_planner1_copy_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Wedding_timeline_planner1_copy_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..919989f2 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Wedding_timeline_planner1_copy_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Wedding_timeline_planner1_copy_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Wedding_timeline_planner1_copy_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..168e55b9 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Wedding_timeline_planner1_copy_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Wedding_timeline_planner1_copy_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Wedding_timeline_planner1_copy_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..0233bc13 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Wedding_timeline_planner1_copy_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Weekly schedule planner1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Weekly schedule planner1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..69eb0a1d Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/Weekly schedule planner1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue75_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue75_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..03163996 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue75_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue75_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue75_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..4b209e48 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue75_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue75_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue75_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..3c659042 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue75_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png index 7eb89464..1f8524cb 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png index 1e9d0b6b..8b2788aa 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png index 52103f1c..ffc057f7 100644 Binary files a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p4_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p4_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png deleted file mode 100644 index 732e37ed..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p4_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p5_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p5_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png deleted file mode 100644 index fe8d328c..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p5_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p6_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p6_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png deleted file mode 100644 index 66c2e3ac..00000000 Binary files a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template1_p6_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png and /dev/null differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template2_Workaround_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template2_Workaround_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..11cf9f7c Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template2_Workaround_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template2_Workaround_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template2_Workaround_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..dc7fdb4f Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template2_Workaround_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template2_Workaround_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template2_Workaround_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..b0197b2c Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue77_Template2_Workaround_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue81_LayoutOptions_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue81_LayoutOptions_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..a7d63fef Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue81_LayoutOptions_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue81_LayoutOptions_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue81_LayoutOptions_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..3f010707 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue81_LayoutOptions_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue81_LayoutOptions_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue81_LayoutOptions_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..42308269 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue81_LayoutOptions_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_5mb_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_5mb_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..a53cfe11 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_5mb_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_5mb_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_5mb_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..e49a9acc Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_5mb_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_5mb_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_5mb_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..caa77473 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_5mb_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_SampleTestData5mb_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_SampleTestData5mb_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..f1706b4f Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_SampleTestData5mb_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_SampleTestData5mb_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_SampleTestData5mb_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..587de530 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_SampleTestData5mb_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_SampleTestData5mb_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_SampleTestData5mb_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..dd65e8bc Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_SampleTestData5mb_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_WideTable_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_WideTable_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..f668c73a Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_WideTable_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_WideTable_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_WideTable_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..f6c87f43 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_WideTable_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_WideTable_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_WideTable_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..8f19f749 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/XlsxIssue82_WideTable_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/payroll-calculator_f_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/payroll-calculator_f_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..54e45656 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/payroll-calculator_f_p1_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/payroll-calculator_f_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/payroll-calculator_f_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..7f08d5f0 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/payroll-calculator_f_p2_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/artifacts/java-benchmark/issue/xlsx/report/side-by-side/payroll-calculator_f_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/payroll-calculator_f_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png new file mode 100644 index 00000000..0fb7b2f5 Binary files /dev/null and b/artifacts/java-benchmark/issue/xlsx/report/side-by-side/payroll-calculator_f_p3_java_minipdf_vs_microsoft_365_excel_reference_vs_libreoffice.png differ diff --git a/documents/README.fr.md b/documents/README.fr.md index 80a53988..af49f22e 100644 --- a/documents/README.fr.md +++ b/documents/README.fr.md @@ -85,7 +85,7 @@ Le [guide Rust](../minipdf-rs/README.md) décrit l'API du crate, la CLI, les fon io.github.mini-software minipdf - 0.1.4 + 0.1.5 ``` diff --git a/documents/README.it.md b/documents/README.it.md index fe0a9325..31b32c85 100644 --- a/documents/README.it.md +++ b/documents/README.it.md @@ -85,7 +85,7 @@ La [guida Rust](../minipdf-rs/README.md) descrive API del crate, CLI, funzionali io.github.mini-software minipdf - 0.1.4 + 0.1.5 ``` diff --git a/documents/README.ja.md b/documents/README.ja.md index 68d78a4c..8456377e 100644 --- a/documents/README.ja.md +++ b/documents/README.ja.md @@ -85,7 +85,7 @@ minipdf report.docx -o report.pdf io.github.mini-software minipdf - 0.1.4 + 0.1.5 ``` diff --git a/documents/README.ko.md b/documents/README.ko.md index 1548c213..33fece3c 100644 --- a/documents/README.ko.md +++ b/documents/README.ko.md @@ -85,7 +85,7 @@ minipdf report.docx -o report.pdf io.github.mini-software minipdf - 0.1.4 + 0.1.5 ``` diff --git a/documents/README.zh-CN.md b/documents/README.zh-CN.md index 6867845b..51991c87 100644 --- a/documents/README.zh-CN.md +++ b/documents/README.zh-CN.md @@ -85,7 +85,7 @@ minipdf report.docx -o report.pdf io.github.mini-software minipdf - 0.1.4 + 0.1.5 ``` diff --git a/documents/README.zh-TW.md b/documents/README.zh-TW.md index 0bb2a872..25c9df3e 100644 --- a/documents/README.zh-TW.md +++ b/documents/README.zh-TW.md @@ -85,7 +85,7 @@ minipdf report.docx -o report.pdf io.github.mini-software minipdf - 0.1.4 + 0.1.5 ``` diff --git a/minipdf-java/README.md b/minipdf-java/README.md index 233a5c49..1b83b6f1 100644 --- a/minipdf-java/README.md +++ b/minipdf-java/README.md @@ -11,7 +11,7 @@ The library is available from Maven Central: io.github.mini-software minipdf - 0.1.4 + 0.1.5 ``` @@ -40,14 +40,14 @@ Download the executable JAR with Maven: ```powershell mvn dependency:copy ` - -Dartifact=io.github.mini-software:minipdf-cli:0.1.4 ` + -Dartifact=io.github.mini-software:minipdf-cli:0.1.5 ` -DoutputDirectory=. ``` Convert a document: ```powershell -java -jar minipdf-cli-0.1.4.jar input.pptx -o output.pdf +java -jar minipdf-cli-0.1.5.jar input.pptx -o output.pdf ``` The CLI accepts `.docx`, `.xlsx`, and `.pptx` files. Run it with `--help` for diff --git a/minipdf-java/minipdf-cli/pom.xml b/minipdf-java/minipdf-cli/pom.xml index a6a4ade3..27b5bed1 100644 --- a/minipdf-java/minipdf-cli/pom.xml +++ b/minipdf-java/minipdf-cli/pom.xml @@ -7,7 +7,7 @@ io.github.mini-software minipdf-java-parent - 0.1.4 + 0.1.5 minipdf-cli diff --git a/minipdf-java/minipdf-cli/src/main/java/io/github/minisoftware/minipdf/cli/MiniPdfCommand.java b/minipdf-java/minipdf-cli/src/main/java/io/github/minisoftware/minipdf/cli/MiniPdfCommand.java index f515651a..d5041d8e 100644 --- a/minipdf-java/minipdf-cli/src/main/java/io/github/minisoftware/minipdf/cli/MiniPdfCommand.java +++ b/minipdf-java/minipdf-cli/src/main/java/io/github/minisoftware/minipdf/cli/MiniPdfCommand.java @@ -20,7 +20,7 @@ @Command( name = "minipdf", - version = "minipdf-java 0.1.4", + version = "minipdf-java 0.1.5", description = "Convert XLSX, DOCX, and PPTX files to PDF with the Java MiniPdf engine.", mixinStandardHelpOptions = true, subcommands = MiniPdfCommand.ConvertCommand.class) diff --git a/minipdf-java/minipdf/pom.xml b/minipdf-java/minipdf/pom.xml index 9e8ff2a8..4ccbb6e8 100644 --- a/minipdf-java/minipdf/pom.xml +++ b/minipdf-java/minipdf/pom.xml @@ -7,7 +7,7 @@ io.github.mini-software minipdf-java-parent - 0.1.4 + 0.1.5 minipdf diff --git a/minipdf-java/minipdf/src/main/java/io/github/minisoftware/minipdf/internal/xlsx/PoiXlsxRenderer.java b/minipdf-java/minipdf/src/main/java/io/github/minisoftware/minipdf/internal/xlsx/PoiXlsxRenderer.java index 0550265d..cc2bac6a 100644 --- a/minipdf-java/minipdf/src/main/java/io/github/minisoftware/minipdf/internal/xlsx/PoiXlsxRenderer.java +++ b/minipdf-java/minipdf/src/main/java/io/github/minisoftware/minipdf/internal/xlsx/PoiXlsxRenderer.java @@ -16,6 +16,7 @@ import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject; import org.apache.pdfbox.pdmodel.font.Standard14Fonts; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; +import org.apache.pdfbox.pdmodel.graphics.state.PDExtendedGraphicsState; import org.apache.pdfbox.util.Matrix; import org.apache.poi.hemf.usermodel.HemfPicture; import org.apache.pdfbox.pdmodel.graphics.state.RenderingMode; @@ -26,16 +27,21 @@ import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.DataFormatter; +import org.apache.poi.ss.usermodel.DifferentialStyleProvider; import org.apache.poi.ss.usermodel.FillPatternType; import org.apache.poi.ss.usermodel.FormulaEvaluator; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.Name; import org.apache.poi.ss.usermodel.PageMargin; +import org.apache.poi.ss.usermodel.PatternFormatting; import org.apache.poi.ss.usermodel.PrintSetup; import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.TableStyleInfo; +import org.apache.poi.ss.usermodel.TableStyleType; import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.poi.ss.util.AreaReference; import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.ss.util.CellRangeAddressBase; import org.apache.poi.ss.util.CellReference; import org.apache.poi.xssf.usermodel.XSSFCellStyle; import org.apache.poi.xssf.usermodel.XSSFClientAnchor; @@ -45,8 +51,23 @@ import org.apache.poi.xssf.usermodel.XSSFPicture; import org.apache.poi.xssf.usermodel.XSSFPrintSetup; import org.apache.poi.xssf.usermodel.XSSFShape; +import org.apache.poi.xssf.usermodel.XSSFShapeGroup; +import org.apache.poi.xssf.usermodel.XSSFSimpleShape; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.apache.xmlbeans.XmlCursor; +import org.apache.xmlbeans.XmlObject; +import org.openxmlformats.schemas.drawingml.x2006.main.CTAdjPoint2D; +import org.openxmlformats.schemas.drawingml.x2006.main.CTGroupTransform2D; +import org.openxmlformats.schemas.drawingml.x2006.main.CTPath2D; +import org.openxmlformats.schemas.drawingml.x2006.main.CTPath2DClose; +import org.openxmlformats.schemas.drawingml.x2006.main.CTPath2DCubicBezierTo; +import org.openxmlformats.schemas.drawingml.x2006.main.CTPath2DLineTo; +import org.openxmlformats.schemas.drawingml.x2006.main.CTPath2DMoveTo; +import org.openxmlformats.schemas.drawingml.x2006.main.CTPath2DQuadBezierTo; +import org.openxmlformats.schemas.drawingml.x2006.main.CTShapeProperties; +import org.openxmlformats.schemas.drawingml.x2006.main.CTSRgbColor; +import org.openxmlformats.schemas.drawingml.x2006.main.CTTransform2D; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedName; import java.awt.Color; @@ -258,6 +279,7 @@ private static void renderPage( drawCell( content, style, + tableFill(sheet, rowIndex, column), x, cellTop - textHeight, textWidth, @@ -269,6 +291,7 @@ private static void renderPage( sheet, merge, style, + tableFill(sheet, rowIndex, column), x, cellTop - textHeight, textWidth, @@ -347,18 +370,20 @@ private static void renderPage( private static void drawCell( PDPageContentStream content, XSSFCellStyle style, + Color tableFill, float x, float y, float width, float height, float borderScale) throws IOException { + Color fill = tableFill; if (style != null && style.getFillPattern() == FillPatternType.SOLID_FOREGROUND) { - Color fill = color(style.getFillForegroundXSSFColor(), null); - if (fill != null) { - content.setNonStrokingColor(fill); - content.addRect(x, y, width, height); - content.fill(); - } + fill = color(style.getFillForegroundXSSFColor(), fill); + } + if (fill != null) { + content.setNonStrokingColor(fill); + content.addRect(x, y, width, height); + content.fill(); } if (style == null) { return; @@ -374,18 +399,20 @@ private static void drawMergedCell( XSSFSheet sheet, CellRangeAddress merge, XSSFCellStyle style, + Color tableFill, float x, float y, float width, float height, float borderScale) throws IOException { + Color fill = tableFill; if (style != null && style.getFillPattern() == FillPatternType.SOLID_FOREGROUND) { - Color fill = color(style.getFillForegroundXSSFColor(), null); - if (fill != null) { - content.setNonStrokingColor(fill); - content.addRect(x, y, width, height); - content.fill(); - } + fill = color(style.getFillForegroundXSSFColor(), fill); + } + if (fill != null) { + content.setNonStrokingColor(fill); + content.addRect(x, y, width, height); + content.fill(); } BorderEdge top = mergedBorder(sheet, merge, BorderSide.TOP); BorderEdge bottom = mergedBorder(sheet, merge, BorderSide.BOTTOM); @@ -397,6 +424,47 @@ private static void drawMergedCell( drawBorder(content, right.style(), right.color(), x + width, y, x + width, y + height, borderScale); } + private static Color tableFill(XSSFSheet sheet, int rowIndex, int columnIndex) { + CellReference cell = new CellReference(sheet.getSheetName(), rowIndex, columnIndex, true, true); + Color fill = null; + for (var table : sheet.getTables()) { + if (!table.contains(cell)) { + continue; + } + TableStyleInfo styleInfo = table.getStyle(); + if (styleInfo == null || styleInfo.getStyle() == null) { + continue; + } + for (TableStyleType type : TableStyleType.values()) { + DifferentialStyleProvider style = styleInfo.getStyle().getStyle(type); + CellRangeAddressBase range = type.getRange(table, cell); + if (style == null || range == null || !range.isInRange(rowIndex, columnIndex)) { + continue; + } + PatternFormatting pattern = style.getPatternFormatting(); + if (pattern == null) { + continue; + } + org.apache.poi.ss.usermodel.Color background = pattern.getFillBackgroundColorColor(); + org.apache.poi.ss.usermodel.Color foreground = pattern.getFillForegroundColorColor(); + if (background instanceof XSSFColor xssfColor) { + resolveThemeColor(sheet.getWorkbook(), xssfColor); + fill = color(xssfColor, fill); + } else if (foreground instanceof XSSFColor xssfColor) { + resolveThemeColor(sheet.getWorkbook(), xssfColor); + fill = color(xssfColor, fill); + } + } + } + return fill; + } + + private static void resolveThemeColor(XSSFWorkbook workbook, XSSFColor color) { + if (workbook.getStylesSource().getTheme() != null) { + workbook.getStylesSource().getTheme().inheritFromThemeAsRequired(color); + } + } + private static BorderEdge mergedBorder( XSSFSheet sheet, CellRangeAddress merge, @@ -549,33 +617,38 @@ private static void drawPictures( XSSFDrawing drawing = sheet.getDrawingPatriarch(); if (drawing != null) { for (XSSFShape shape : drawing.getShapes()) { - if (!(shape instanceof XSSFPicture picture)) { - continue; - } - XSSFClientAnchor anchor = picture.getClientAnchor(); - if (anchor == null || anchor.getRow1() < startRow || anchor.getRow1() > endRow) { - continue; - } - try { - PDImageXObject image = PDImageXObject.createFromByteArray( - document, - picture.getPictureData().getData(), - picture.getShapeName()); - float x = geometry.marginLeft() + horizontalOffset - + columnsBefore(columnWidths, area.getFirstColumn(), anchor.getCol1()) * horizontalScale - + anchor.getDx1() / EMU_PER_POINT * horizontalScale; - float top = geometry.layoutHeight() - geometry.marginTop() - centerOffset - - rowsBefore(sheet, startRow, anchor.getRow1()) * scale - - anchor.getDy1() / EMU_PER_POINT * scale; - float width = (columnsBefore(columnWidths, area.getFirstColumn(), anchor.getCol2()) - - columnsBefore(columnWidths, area.getFirstColumn(), anchor.getCol1())) * horizontalScale - + (anchor.getDx2() - anchor.getDx1()) / EMU_PER_POINT * horizontalScale; - float height = rowsBefore(sheet, anchor.getRow1(), anchor.getRow2()) * scale - + (anchor.getDy2() - anchor.getDy1()) / EMU_PER_POINT * scale; - if (width > 0.0f && height > 0.0f) { - content.drawImage(image, x, top - height, width, height); + if (shape instanceof XSSFPicture picture) { + XSSFClientAnchor anchor = picture.getClientAnchor(); + if (anchor == null || anchor.getRow1() < startRow || anchor.getRow1() > endRow) { + continue; } - } catch (IllegalArgumentException ignored) { + drawPicture(document, content, picture, pictureBounds( + sheet, + area, + columnWidths, + startRow, + scale, + horizontalScale, + geometry, + horizontalOffset, + centerOffset, + anchor)); + } else if (shape instanceof XSSFShapeGroup group) { + drawShapeGroup( + document, + content, + drawing, + group, + sheet, + area, + columnWidths, + startRow, + endRow, + scale, + horizontalScale, + geometry, + horizontalOffset, + centerOffset); } } } @@ -642,6 +715,224 @@ private static void drawLegacyPicture( } } + private static void drawShapeGroup( + PDDocument document, + PDPageContentStream content, + XSSFDrawing drawing, + XSSFShapeGroup group, + XSSFSheet sheet, + CellRangeAddress area, + float[] columnWidths, + int startRow, + int endRow, + float scale, + float horizontalScale, + PageGeometry geometry, + float horizontalOffset, + float centerOffset) throws IOException { + if (!(group.getAnchor() instanceof XSSFClientAnchor anchor) + || anchor.getRow1() < startRow + || anchor.getRow1() > endRow) { + return; + } + ShapeBounds groupBounds = pictureBounds( + sheet, + area, + columnWidths, + startRow, + scale, + horizontalScale, + geometry, + horizontalOffset, + centerOffset, + anchor); + CTGroupTransform2D groupTransform = group.getCTGroupShape().getGrpSpPr().getXfrm(); + if (groupTransform == null + || groupTransform.getChExt().getCx() == 0 + || groupTransform.getChExt().getCy() == 0) { + return; + } + for (XSSFShape child : drawing.getShapes(group)) { + CTTransform2D childTransform; + if (child instanceof XSSFPicture picture && picture.getCTPicture().getSpPr().isSetXfrm()) { + childTransform = picture.getCTPicture().getSpPr().getXfrm(); + } else if (child instanceof XSSFSimpleShape simpleShape + && simpleShape.getCTShape().getSpPr().isSetXfrm()) { + childTransform = simpleShape.getCTShape().getSpPr().getXfrm(); + } else { + continue; + } + float relativeX = (coordinate(childTransform.getOff().getX()) + - coordinate(groupTransform.getChOff().getX())) + / groupTransform.getChExt().getCx(); + float relativeY = (coordinate(childTransform.getOff().getY()) + - coordinate(groupTransform.getChOff().getY())) + / groupTransform.getChExt().getCy(); + ShapeBounds childBounds = new ShapeBounds( + groupBounds.x() + relativeX * groupBounds.width(), + groupBounds.top() - relativeY * groupBounds.height(), + (float) childTransform.getExt().getCx() / groupTransform.getChExt().getCx() * groupBounds.width(), + (float) childTransform.getExt().getCy() / groupTransform.getChExt().getCy() * groupBounds.height()); + if (child instanceof XSSFPicture picture) { + drawPicture(document, content, picture, childBounds); + } else if (child instanceof XSSFSimpleShape simpleShape) { + drawCustomShape(content, simpleShape, childBounds); + } + } + } + + private static float coordinate(Object value) { + return value instanceof Number number + ? number.floatValue() + : Float.parseFloat(value.toString()); + } + + private static void drawCustomShape( + PDPageContentStream content, + XSSFSimpleShape shape, + ShapeBounds bounds) throws IOException { + CTShapeProperties properties = shape.getCTShape().getSpPr(); + if (!properties.isSetCustGeom() || !properties.isSetSolidFill() + || !properties.getSolidFill().isSetSrgbClr()) { + return; + } + CTSRgbColor rgb = properties.getSolidFill().getSrgbClr(); + byte[] value = rgb.getVal(); + if (value == null || value.length < 3) { + return; + } + float alpha = rgb.sizeOfAlphaArray() == 0 + ? 1.0f + : coordinate(rgb.getAlphaArray(0).getVal()) / 100_000.0f; + content.saveGraphicsState(); + try { + content.setNonStrokingColor(new Color( + Byte.toUnsignedInt(value[0]), + Byte.toUnsignedInt(value[1]), + Byte.toUnsignedInt(value[2]))); + PDExtendedGraphicsState graphicsState = new PDExtendedGraphicsState(); + graphicsState.setNonStrokingAlphaConstant(alpha); + content.setGraphicsStateParameters(graphicsState); + for (CTPath2D path : properties.getCustGeom().getPathLst().getPathArray()) { + float pathWidth = path.getW() > 0 ? path.getW() : 1.0f; + float pathHeight = path.getH() > 0 ? path.getH() : 1.0f; + boolean hasSegments = false; + try (XmlCursor cursor = path.newCursor()) { + if (cursor.toFirstChild()) { + do { + XmlObject segment = cursor.getObject(); + if (segment instanceof CTPath2DMoveTo move) { + moveTo(content, move.getPt(), bounds, pathWidth, pathHeight); + hasSegments = true; + } else if (segment instanceof CTPath2DLineTo line) { + lineTo(content, line.getPt(), bounds, pathWidth, pathHeight); + } else if (segment instanceof CTPath2DQuadBezierTo quadratic) { + CTAdjPoint2D control = quadratic.getPtArray(0); + CTAdjPoint2D end = quadratic.getPtArray(1); + float currentX = shapeX(bounds, coordinate(control.getX()), pathWidth); + float currentY = shapeY(bounds, coordinate(control.getY()), pathHeight); + float endX = shapeX(bounds, coordinate(end.getX()), pathWidth); + float endY = shapeY(bounds, coordinate(end.getY()), pathHeight); + content.curveTo1(currentX, currentY, endX, endY); + } else if (segment instanceof CTPath2DCubicBezierTo cubic) { + CTAdjPoint2D first = cubic.getPtArray(0); + CTAdjPoint2D second = cubic.getPtArray(1); + CTAdjPoint2D end = cubic.getPtArray(2); + content.curveTo( + shapeX(bounds, coordinate(first.getX()), pathWidth), + shapeY(bounds, coordinate(first.getY()), pathHeight), + shapeX(bounds, coordinate(second.getX()), pathWidth), + shapeY(bounds, coordinate(second.getY()), pathHeight), + shapeX(bounds, coordinate(end.getX()), pathWidth), + shapeY(bounds, coordinate(end.getY()), pathHeight)); + } else if (segment instanceof CTPath2DClose) { + content.closePath(); + } + } while (cursor.toNextSibling()); + } + } + if (hasSegments) { + content.fill(); + } + } + } finally { + content.restoreGraphicsState(); + } + } + + private static void moveTo( + PDPageContentStream content, + CTAdjPoint2D point, + ShapeBounds bounds, + float pathWidth, + float pathHeight) throws IOException { + content.moveTo( + shapeX(bounds, coordinate(point.getX()), pathWidth), + shapeY(bounds, coordinate(point.getY()), pathHeight)); + } + + private static void lineTo( + PDPageContentStream content, + CTAdjPoint2D point, + ShapeBounds bounds, + float pathWidth, + float pathHeight) throws IOException { + content.lineTo( + shapeX(bounds, coordinate(point.getX()), pathWidth), + shapeY(bounds, coordinate(point.getY()), pathHeight)); + } + + private static float shapeX(ShapeBounds bounds, float value, float pathWidth) { + return bounds.x() + value / pathWidth * bounds.width(); + } + + private static float shapeY(ShapeBounds bounds, float value, float pathHeight) { + return bounds.top() - value / pathHeight * bounds.height(); + } + + private static ShapeBounds pictureBounds( + XSSFSheet sheet, + CellRangeAddress area, + float[] columnWidths, + int startRow, + float scale, + float horizontalScale, + PageGeometry geometry, + float horizontalOffset, + float centerOffset, + XSSFClientAnchor anchor) { + float x = geometry.marginLeft() + horizontalOffset + + columnsBefore(columnWidths, area.getFirstColumn(), anchor.getCol1()) * horizontalScale + + anchor.getDx1() / EMU_PER_POINT * horizontalScale; + float top = geometry.layoutHeight() - geometry.marginTop() - centerOffset + - rowsBefore(sheet, startRow, anchor.getRow1()) * scale + - anchor.getDy1() / EMU_PER_POINT * scale; + float width = (columnsBefore(columnWidths, area.getFirstColumn(), anchor.getCol2()) + - columnsBefore(columnWidths, area.getFirstColumn(), anchor.getCol1())) * horizontalScale + + (anchor.getDx2() - anchor.getDx1()) / EMU_PER_POINT * horizontalScale; + float height = rowsBefore(sheet, anchor.getRow1(), anchor.getRow2()) * scale + + (anchor.getDy2() - anchor.getDy1()) / EMU_PER_POINT * scale; + return new ShapeBounds(x, top, width, height); + } + + private static void drawPicture( + PDDocument document, + PDPageContentStream content, + XSSFPicture picture, + ShapeBounds bounds) throws IOException { + if (bounds.width() <= 0.0f || bounds.height() <= 0.0f || picture.getPictureData() == null) { + return; + } + try { + PDImageXObject image = PDImageXObject.createFromByteArray( + document, + picture.getPictureData().getData(), + picture.getShapeName()); + content.drawImage(image, bounds.x(), bounds.top() - bounds.height(), bounds.width(), bounds.height()); + } catch (IllegalArgumentException ignored) { + } + } + private static boolean drawVectorEmf( PDDocument document, PDPageContentStream content, @@ -745,11 +1036,14 @@ private static PageGeometry pageGeometry(XSSFSheet sheet, ConversionOptions opti PrintSetup setup = sheet.getPrintSetup(); boolean explicitPaperSize = sheet.getCTWorksheet().isSetPageSetup() && sheet.getCTWorksheet().getPageSetup().isSetPaperSize(); - boolean letter = setup.getPaperSize() == PrintSetup.LETTER_PAPERSIZE; + boolean scaledDefaultPaper = !explicitPaperSize + && explicitScale(sheet) + && !sheet.getCTWorksheet().getPageSetup().isSetFitToHeight(); + boolean letter = !scaledDefaultPaper && setup.getPaperSize() == PrintSetup.LETTER_PAPERSIZE; layoutWidth = letter ? PageSize.LETTER.width() : PageSize.A4.width(); layoutHeight = letter ? PageSize.LETTER.height() : PageSize.A4.height(); - mediaWidth = explicitPaperSize ? layoutWidth : PageSize.A4.width(); - mediaHeight = explicitPaperSize ? layoutHeight : PageSize.A4.height(); + mediaWidth = explicitPaperSize ? layoutWidth : PageSize.A4.width(); + mediaHeight = explicitPaperSize ? layoutHeight : PageSize.A4.height(); if (setup.getLandscape()) { float layoutSwap = layoutWidth; layoutWidth = layoutHeight; @@ -819,16 +1113,26 @@ private static List columnGroups( float verticalScaleLimit) { float[] allWidths = columnWidths(sheet, area); float naturalWidth = sum(allWidths, 0, allWidths.length); - boolean fitOnePageWide = hasPrintArea || (sheet.getFitToPage() && setup.getFitWidth() == 1); - if (fitOnePageWide || naturalWidth <= geometry.usableWidth()) { - float scale = naturalWidth > 0.0f + boolean explicitFitWidth = sheet.getCTWorksheet().isSetPageSetup() + && sheet.getCTWorksheet().getPageSetup().isSetFitToWidth(); + boolean unlimitedFitHeight = sheet.getCTWorksheet().isSetPageSetup() + && sheet.getCTWorksheet().getPageSetup().isSetFitToHeight() + && setup.getFitHeight() == 0; + boolean fitOnePageWide = hasPrintArea + || (sheet.getFitToPage() + && (explicitFitWidth || !explicitScale(sheet) || unlimitedFitHeight) + && setup.getFitWidth() == 1); + float scale = setup.getScale() > 0 ? setup.getScale() / 100.0f : 1.0f; + if (fitOnePageWide || naturalWidth * scale <= geometry.usableWidth()) { + if (fitOnePageWide) { + scale = naturalWidth > 0.0f ? Math.min(1.0f, geometry.usableWidth() / naturalWidth) : 1.0f; + } scale = Math.min(scale, verticalScaleLimit); return List.of(new ColumnGroup(area.getFirstColumn(), area.getLastColumn(), allWidths, scale)); } - float scale = setup.getScale() > 0 ? setup.getScale() / 100.0f : 1.0f; scale = Math.min(scale, verticalScaleLimit); List groups = new ArrayList<>(); int groupStart = 0; @@ -902,7 +1206,10 @@ private static int pageEndRow(XSSFSheet sheet, int startRow, int lastRow, float private static float rowHeight(XSSFSheet sheet, int rowIndex) { Row row = sheet.getRow(rowIndex); - float height = row == null || row.getZeroHeight() + if (row != null && row.getZeroHeight()) { + return 0.0f; + } + float height = row == null ? sheet.getDefaultRowHeightInPoints() : row.getHeightInPoints(); if (row != null) { @@ -1129,6 +1436,9 @@ private record PendingText( float padding) { } + private record ShapeBounds(float x, float top, float width, float height) { + } + private enum BorderSide { TOP, BOTTOM, @@ -1148,6 +1458,10 @@ private static final class FontSet { private final PDFont verdanaBoldItalic; private final PDFont calibri; private final PDFont calibriBold; + private final PDFont palatino; + private final PDFont palatinoBold; + private final PDFont corbel; + private final PDFont corbelBold; private final PDFont times; private final PDFont timesBold; private final PDFont cjk; @@ -1165,6 +1479,10 @@ private FontSet( PDFont verdanaBoldItalic, PDFont calibri, PDFont calibriBold, + PDFont palatino, + PDFont palatinoBold, + PDFont corbel, + PDFont corbelBold, PDFont times, PDFont timesBold, PDFont cjk, @@ -1180,6 +1498,10 @@ private FontSet( this.verdanaBoldItalic = verdanaBoldItalic; this.calibri = calibri; this.calibriBold = calibriBold; + this.palatino = palatino; + this.palatinoBold = palatinoBold; + this.corbel = corbel; + this.corbelBold = corbelBold; this.times = times; this.timesBold = timesBold; this.cjk = cjk; @@ -1210,6 +1532,14 @@ static FontSet load(PDDocument document) throws IOException { registered, List.of("calibrib"), systemFonts("calibrib.ttf")); + PDFont palatino = load(document, registered, List.of("palatino linotype", "pala"), systemFonts("pala.ttf")); + PDFont palatinoBold = load( + document, + registered, + List.of("palatino linotype bold", "palab"), + systemFonts("palab.ttf")); + PDFont corbel = load(document, registered, List.of("corbel"), systemFonts("corbel.ttf")); + PDFont corbelBold = load(document, registered, List.of("corbel bold", "corbelb"), systemFonts("corbelb.ttf")); PDFont times = load(document, registered, List.of("times"), systemFonts("times.ttf")); PDFont timesBold = load(document, registered, List.of("timesbd"), systemFonts("timesbd.ttf")); PDFont cjk = load( @@ -1252,6 +1582,18 @@ static FontSet load(PDDocument document) throws IOException { if (timesBold == null) { timesBold = latinBold; } + if (palatino == null) { + palatino = times; + } + if (palatinoBold == null) { + palatinoBold = timesBold; + } + if (corbel == null) { + corbel = latin; + } + if (corbelBold == null) { + corbelBold = latinBold; + } if (cjk == null) { cjk = latin; } @@ -1274,6 +1616,10 @@ static FontSet load(PDDocument document) throws IOException { verdanaBoldItalic, calibri, calibriBold, + palatino, + palatinoBold, + corbel, + corbelBold, times, timesBold, cjk, @@ -1309,6 +1655,12 @@ PDFont resolve(String requested, String text, boolean bold, boolean italic) { if (name.contains("calibri")) { return bold ? calibriBold : calibri; } + if (name.contains("palatino")) { + return bold ? palatinoBold : palatino; + } + if (name.contains("corbel")) { + return bold ? corbelBold : corbel; + } if (name.contains("times")) { return bold ? timesBold : times; } diff --git a/minipdf-java/minipdf/src/test/java/io/github/minisoftware/minipdf/ClassicFixtureSmokeTest.java b/minipdf-java/minipdf/src/test/java/io/github/minisoftware/minipdf/ClassicFixtureSmokeTest.java index f80d59f7..56c53702 100644 --- a/minipdf-java/minipdf/src/test/java/io/github/minisoftware/minipdf/ClassicFixtureSmokeTest.java +++ b/minipdf-java/minipdf/src/test/java/io/github/minisoftware/minipdf/ClassicFixtureSmokeTest.java @@ -90,6 +90,57 @@ void preservesMergedCellColumnWidths() throws Exception { } } + @Test + void rendersScaledTablesAndGroupedArtwork() throws Exception { + Path fixture = REPOSITORY_ROOT.resolve("tests/Issue_Files/xlsx/Business expenses budget2.xlsx"); + + try (PDDocument document = Loader.loadPDF(MiniPdf.convertToPdfBytes(fixture))) { + assertEquals(4, document.getNumberOfPages()); + PDFTextStripper stripper = new PDFTextStripper(); + stripper.setStartPage(1); + stripper.setEndPage(1); + String firstPage = stripper.getText(document); + assertEquals(1, firstPage.split("EMPLOYEE COSTS", -1).length - 1, firstPage); + + long imageCount = 0; + for (var name : document.getPage(0).getResources().getXObjectNames()) { + if (document.getPage(0).getResources().getXObject(name) instanceof PDImageXObject) { + imageCount++; + } + } + assertTrue(imageCount >= 2, "imageCount=" + imageCount); + + var page = new PDFRenderer(document).renderImageWithDPI(0, 150.0f); + long stripedPixels = 0; + long translucentShapePixels = 0; + for (int y = 0; y < page.getHeight(); y++) { + for (int x = 0; x < page.getWidth(); x++) { + int rgb = page.getRGB(x, y); + int red = (rgb >> 16) & 0xff; + int green = (rgb >> 8) & 0xff; + int blue = rgb & 0xff; + if (red >= 210 && red <= 220 && green >= 210 && green <= 220 && blue >= 210 && blue <= 220) { + stripedPixels++; + } + if (red >= 110 && red <= 125 && green >= 78 && green <= 92 && blue >= 70 && blue <= 84) { + translucentShapePixels++; + } + } + } + assertTrue(stripedPixels > 100_000, "stripedPixels=" + stripedPixels); + assertTrue(translucentShapePixels > 5_000, "translucentShapePixels=" + translucentShapePixels); + } + } + + @Test + void fitsWidthWhenFitHeightIsUnlimited() throws Exception { + Path fixture = REPOSITORY_ROOT.resolve("tests/Issue_Files/xlsx/Expense report basic1.xlsx"); + + try (PDDocument document = Loader.loadPDF(MiniPdf.convertToPdfBytes(fixture))) { + assertEquals(1, document.getNumberOfPages()); + } + } + @Test void convertsIssueXlsxWithCjkText() throws Exception { Path fixture = REPOSITORY_ROOT.resolve("tests/Issue_Files/xlsx/Issue202609031340.xlsx"); diff --git a/minipdf-java/pom.xml b/minipdf-java/pom.xml index ae49cda9..121f12e4 100644 --- a/minipdf-java/pom.xml +++ b/minipdf-java/pom.xml @@ -6,7 +6,7 @@ io.github.mini-software minipdf-java-parent - 0.1.4 + 0.1.5 pom MiniPdf for Java diff --git a/tests/Issue_Files/office_xlsx/Issue202609031340.pdf b/tests/Issue_Files/office_xlsx/Issue202609031340.pdf new file mode 100644 index 00000000..21e04e1d Binary files /dev/null and b/tests/Issue_Files/office_xlsx/Issue202609031340.pdf differ diff --git a/tests/Issue_Files/office_xlsx/XlsxIssue82_WideTable.pdf b/tests/Issue_Files/office_xlsx/XlsxIssue82_WideTable.pdf new file mode 100644 index 00000000..76df6461 Binary files /dev/null and b/tests/Issue_Files/office_xlsx/XlsxIssue82_WideTable.pdf differ diff --git a/tests/Issue_Files/xlsx/XlsxIssue82_WideTable.xlsx b/tests/Issue_Files/xlsx/XlsxIssue82_WideTable.xlsx index 5172cf0c..4a419b02 100644 Binary files a/tests/Issue_Files/xlsx/XlsxIssue82_WideTable.xlsx and b/tests/Issue_Files/xlsx/XlsxIssue82_WideTable.xlsx differ