From 5d7206b7e086b397338c0b780b9eb028fdc3ad57 Mon Sep 17 00:00:00 2001 From: lolipopshock <22512825+lolipopshock@users.noreply.github.com> Date: Wed, 2 Feb 2022 00:26:09 -0500 Subject: [PATCH 1/3] more robust PDF loading for "empty PDFs" --- src/layoutparser/io/pdf.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/layoutparser/io/pdf.py b/src/layoutparser/io/pdf.py index 08853ef..652848b 100644 --- a/src/layoutparser/io/pdf.py +++ b/src/layoutparser/io/pdf.py @@ -53,6 +53,10 @@ def extract_words_for_page( ) df = pd.DataFrame(tokens) + + if len(df) == 0: + return Layout() + df[["x0", "x1"]] = ( df[["x0", "x1"]].clip(lower=0, upper=int(page.width)).astype("float") ) From d08c9e33e7b335bd27fd4f201d7e37c90282b0b6 Mon Sep 17 00:00:00 2001 From: lolipopshock <22512825+lolipopshock@users.noreply.github.com> Date: Wed, 2 Feb 2022 00:26:16 -0500 Subject: [PATCH 2/3] Tests --- tests/fixtures/io/empty.pdf | Bin 0 -> 18259 bytes tests/test_io.py | 6 +++++- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 tests/fixtures/io/empty.pdf diff --git a/tests/fixtures/io/empty.pdf b/tests/fixtures/io/empty.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3b34f3182c353ad766cdc483cf0a77ed11f1c034 GIT binary patch literal 18259 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≧!pD84IHidn;HYV#83?V9rpIem2=C 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 Date: Wed, 2 Feb 2022 09:51:15 -0500 Subject: [PATCH 3/3] fix tests --- tests/test_io.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/test_io.py b/tests/test_io.py index 1bc87e8..230543d 100644 --- a/tests/test_io.py +++ b/tests/test_io.py @@ -82,4 +82,7 @@ def test_pdf(): def test_empty_pdf(): pdf_layout = load_pdf("tests/fixtures/io/empty.pdf") - assert len(pdf_layout) == 0 \ No newline at end of file + assert len(pdf_layout) == 1 # Only one page + + page_layout = pdf_layout[0] + assert len(page_layout) == 0 # No selectable tokens on the page \ No newline at end of file