Compare commits

...

2 Commits

Author SHA1 Message Date
chaim 53844ace9a fix: add xml:space=preserve to all w:t elements in generated DOCX
PHPWord's TemplateProcessor strips whitespace from <w:t> elements that
lack xml:space="preserve". Post-process the output DOCX to add this
attribute, preventing words from sticking together (e.g. בהולמועדים,
לקוחנחוץ).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 21:38:21 +00:00
chaim f8022279ad fix: change date format from dd/mm/yyyy to dd.mm.yyyy
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 21:24:18 +00:00
2 changed files with 12 additions and 2 deletions
@@ -374,6 +374,16 @@ class DirectAccessReportGenerator
} }
$processor->saveAs($outputPath); $processor->saveAs($outputPath);
// Fix space preservation: PHPWord strips whitespace from <w:t> elements
// that lack xml:space="preserve", causing words to stick together in RTL docs.
$zip = new \ZipArchive();
if ($zip->open($outputPath) === true) {
$xml = $zip->getFromName('word/document.xml');
$xml = preg_replace('/<w:t(?![^>]*xml:space)/', '<w:t xml:space="preserve"', $xml);
$zip->addFromString('word/document.xml', $xml);
$zip->close();
}
} }
private function normalizeDate(?string $value): ?string private function normalizeDate(?string $value): ?string
@@ -392,7 +402,7 @@ class DirectAccessReportGenerator
{ {
if (!$date) return ''; if (!$date) return '';
if (preg_match('/^(\d{4})-(\d{2})-(\d{2})$/', $date, $m)) { if (preg_match('/^(\d{4})-(\d{2})-(\d{2})$/', $date, $m)) {
return "{$m[3]}/{$m[2]}/{$m[1]}"; return "{$m[3]}.{$m[2]}.{$m[1]}";
} }
return $date; return $date;
} }
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "LegalAssistance", "name": "LegalAssistance",
"version": "2.0.6", "version": "2.0.8",
"acceptableVersions": [">=8.0.0"], "acceptableVersions": [">=8.0.0"],
"php": [">=8.1"], "php": [">=8.1"],
"releaseDate": "2026-04-09", "releaseDate": "2026-04-09",