diff --git a/pdfplumber/page.py b/pdfplumber/page.py index d9bec5e..b028065 100644 --- a/pdfplumber/page.py +++ b/pdfplumber/page.py @@ -270,7 +270,7 @@ class Page(Container): and positioning (within `tolerance`) as other characters on the page. """ p = FilteredPage(self, True) - p._objects = dict((kind, objs) for kind, objs in self._objects.items()) + p._objects = dict((kind, objs) for kind, objs in self.objects.items()) p._objects["char"] = utils.dedupe_chars(self.chars, **kwargs) return p diff --git a/tests/pdfs/issue-71-duplicate-chars-2.pdf b/tests/pdfs/issue-71-duplicate-chars-2.pdf new file mode 100644 index 0000000..9cd3da5 Binary files /dev/null and b/tests/pdfs/issue-71-duplicate-chars-2.pdf differ diff --git a/tests/test_dedupe_chars.py b/tests/test_dedupe_chars.py index 82b87f7..48f69cd 100644 --- a/tests/test_dedupe_chars.py +++ b/tests/test_dedupe_chars.py @@ -67,3 +67,10 @@ class Test(unittest.TestCase): assert last_line_without_drop == '微微软软 培培训训课课程程:: 名名模模意意义义一一些些有有意意义义一一些些' assert last_line_with_drop == '微软 培训课程: 名模意义一些有意义一些' + + def test_extract_text2(self): + path = os.path.join(HERE, "pdfs/issue-71-duplicate-chars-2.pdf") + pdf = pdfplumber.open(path) + page = pdf.pages[0] + + assert page.dedupe_chars().extract_text(y_tolerance=6).splitlines()[4] == "UE 8. Circulation - Métabolismes"