From 2e8ecb3fba62723fe39599f9f0cb7f7a30a5ca19 Mon Sep 17 00:00:00 2001 From: Stephan Meijer Date: Thu, 30 Nov 2023 03:59:09 +0100 Subject: [PATCH] Docx reader: unwrap content of shaped textboxes... * #9214 text in shape format test document * #9214 support Text in Shape Format * #9214 remove irrelevant code --- src/Text/Pandoc/Readers/Docx/Parse.hs | 33 ++++++++++++++++++++++++++ src/Text/Pandoc/Readers/Docx/Util.hs | 22 +++++++++++++++++ test/Tests/Readers/Docx.hs | 4 ++++ test/docx/text_in_shape_format.docx | Bin 0 -> 42504 bytes test/docx/text_in_shape_format.native | 33 ++++++++++++++++++++++++++ 5 files changed, 92 insertions(+) create mode 100644 test/docx/text_in_shape_format.docx create mode 100644 test/docx/text_in_shape_format.native diff --git a/src/Text/Pandoc/Readers/Docx/Parse.hs b/src/Text/Pandoc/Readers/Docx/Parse.hs index e83d764fd2e3..4dc9543cfa05 100644 --- a/src/Text/Pandoc/Readers/Docx/Parse.hs +++ b/src/Text/Pandoc/Readers/Docx/Parse.hs @@ -148,13 +148,46 @@ mapD f xs = in concatMapM handler xs +isAltContentRun :: NameSpaces -> Element -> Bool +isAltContentRun ns element + | isElem ns "w" "r" element + , Just _altContentElem <- findChildByName ns "mc" "AlternateContent" element + = True + | otherwise + = False + +-- Elements such as are not always preferred +-- to be unwrapped. Only if they are part of an AlternateContent +-- element, they should be unwrapped. +-- This strategy prevents VML images breaking. +unwrapAlternateContentElement :: NameSpaces -> Element -> [Element] +unwrapAlternateContentElement ns element + | isElem ns "mc" "AlternateContent" element + || isElem ns "mc" "Fallback" element + || isElem ns "w" "pict" element + || isElem ns "v" "group" element + || isElem ns "v" "rect" element + || isElem ns "v" "roundrect" element + || isElem ns "v" "shape" element + || isElem ns "v" "textbox" element + || isElem ns "w" "txbxContent" element + = concatMap (unwrapAlternateContentElement ns) (elChildren element) + | otherwise + = unwrapElement ns element + unwrapElement :: NameSpaces -> Element -> [Element] unwrapElement ns element | isElem ns "w" "sdt" element , Just sdtContent <- findChildByName ns "w" "sdtContent" element = concatMap (unwrapElement ns) (elChildren sdtContent) + | isElem ns "w" "r" element + , Just alternateContentElem <- findChildByName ns "mc" "AlternateContent" element + = unwrapAlternateContentElement ns alternateContentElem | isElem ns "w" "smartTag" element = concatMap (unwrapElement ns) (elChildren element) + | isElem ns "w" "p" element + , Just (modified, altContentRuns) <- extractChildren element (isAltContentRun ns) + = (unwrapElement ns modified) ++ concatMap (unwrapElement ns) altContentRuns | otherwise = [element{ elContent = concatMap (unwrapContent ns) (elContent element) }] diff --git a/src/Text/Pandoc/Readers/Docx/Util.hs b/src/Text/Pandoc/Readers/Docx/Util.hs index 0a869bba8691..f373c53304ee 100644 --- a/src/Text/Pandoc/Readers/Docx/Util.hs +++ b/src/Text/Pandoc/Readers/Docx/Util.hs @@ -21,12 +21,14 @@ module Text.Pandoc.Readers.Docx.Util ( , findChildrenByName , findElementByName , findAttrByName + , extractChildren ) where import qualified Data.Text as T import Data.Text (Text) import Text.Pandoc.XML.Light import qualified Data.Map as M +import Data.List (partition) type NameSpaces = M.Map Text Text @@ -67,3 +69,23 @@ findAttrByName :: NameSpaces -> Text -> Text -> Element -> Maybe Text findAttrByName ns pref name el = let ns' = ns <> elemToNameSpaces el in findAttr (elemName ns' pref name) el + + +-- | Removes child elements that satisfy a given condition. +-- Returns the modified element and the list of removed children. +extractChildren :: Element -> (Element -> Bool) -> Maybe (Element, [Element]) +extractChildren el condition + | null removedChildren = Nothing -- No children removed, return Nothing + | otherwise = Just (modifiedElement, removedChildren) -- Children removed, return Just + where + -- Separate the children based on the condition + (removedChildren, keptChildren) = partition condition (onlyElems' $ elContent el) + + -- Helper function to filter only Element types from Content + onlyElems' :: [Content] -> [Element] + onlyElems' = foldr (\c acc -> case c of + Elem e -> e : acc + _ -> acc) [] + + -- Reconstruct the element with the kept children + modifiedElement = el { elContent = map Elem keptChildren } \ No newline at end of file diff --git a/test/Tests/Readers/Docx.hs b/test/Tests/Readers/Docx.hs index d9935967f6c2..05b69abf618c 100644 --- a/test/Tests/Readers/Docx.hs +++ b/test/Tests/Readers/Docx.hs @@ -235,6 +235,10 @@ tests = [ testGroup "document" "collapse overlapping targets (anchor spans)" "docx/overlapping_targets.docx" "docx/overlapping_targets.native" + , testCompare + "text in shape format" + "docx/text_in_shape_format.docx" + "docx/text_in_shape_format.native" ] , testGroup "blocks" [ testCompare diff --git a/test/docx/text_in_shape_format.docx b/test/docx/text_in_shape_format.docx new file mode 100644 index 0000000000000000000000000000000000000000..763e62bf62c97541609d59bb88e4ed9ba561dc9c GIT binary patch literal 42504 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 j9R5-B3H{#{`HzjLs(_BHN`86wB0_