diff --git a/frontend/src/proprietary/tools/pdfJsonEditor/PdfJsonEditor.tsx b/frontend/src/proprietary/tools/pdfJsonEditor/PdfJsonEditor.tsx index 90c694992..323449c2b 100644 --- a/frontend/src/proprietary/tools/pdfJsonEditor/PdfJsonEditor.tsx +++ b/frontend/src/proprietary/tools/pdfJsonEditor/PdfJsonEditor.tsx @@ -77,7 +77,7 @@ const PdfJsonEditor = ({ onComplete, onError }: BaseToolProps) => { stage: string; message: string; } | null>(null); - const [forceSingleTextElement, setForceSingleTextElement] = useState(false); + const [forceSingleTextElement, setForceSingleTextElement] = useState(true); const [groupingMode, setGroupingMode] = useState<'auto' | 'paragraph' | 'singleLine'>('auto'); const [hasVectorPreview, setHasVectorPreview] = useState(false); const [pagePreviews, setPagePreviews] = useState>(new Map()); diff --git a/frontend/src/proprietary/tools/pdfJsonEditor/pdfJsonEditorUtils.ts b/frontend/src/proprietary/tools/pdfJsonEditor/pdfJsonEditorUtils.ts index d5d2864fe..e9f77078f 100644 --- a/frontend/src/proprietary/tools/pdfJsonEditor/pdfJsonEditorUtils.ts +++ b/frontend/src/proprietary/tools/pdfJsonEditor/pdfJsonEditorUtils.ts @@ -1069,15 +1069,17 @@ export const restoreGlyphElements = ( groups.forEach((group) => { if (group.text !== group.originalText) { - if (forceMergedGroups) { - rebuiltElements.push(createMergedElement(group)); - return; - } + // Always try to rebuild paragraph lines if text has newlines const paragraphElements = rebuildParagraphLineElements(group); if (paragraphElements && paragraphElements.length > 0) { rebuiltElements.push(...paragraphElements); return; } + // If no newlines or rebuilding failed, check if we should force merge + if (forceMergedGroups) { + rebuiltElements.push(createMergedElement(group)); + return; + } const originalGlyphCount = group.originalElements.reduce( (sum, element) => sum + countGraphemes(element.text ?? ''), 0,