Skip to content

Commit 5a42b96

Browse files
authored
BUG: Merge pages without resources (#2150)
closes #2147
1 parent f659956 commit 5a42b96

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

pypdf/_page.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1183,8 +1183,13 @@ def _merge_page_writer(
11831183
pdf = self.indirect_reference.pdf
11841184

11851185
rename = {}
1186+
if PG.RESOURCES not in self:
1187+
self[NameObject(PG.RESOURCES)] = DictionaryObject()
11861188
original_resources = cast(DictionaryObject, self[PG.RESOURCES].get_object())
1187-
page2resources = cast(DictionaryObject, page2[PG.RESOURCES].get_object())
1189+
if PG.RESOURCES not in page2:
1190+
page2resources = DictionaryObject()
1191+
else:
1192+
page2resources = cast(DictionaryObject, page2[PG.RESOURCES].get_object())
11881193

11891194
for res in (
11901195
RES.EXT_G_STATE,

tests/test_page.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1227,6 +1227,16 @@ def create_stamp_pdf() -> BytesIO:
12271227
)
12281228

12291229

1230+
def test_merge_with_no_resources():
1231+
"""Test for issue #2147"""
1232+
writer = PdfWriter()
1233+
p0 = writer.add_blank_page(900, 1200)
1234+
del p0["/Resources"]
1235+
p1 = writer.add_blank_page(900, 1200)
1236+
del p1["/Resources"]
1237+
writer.pages[0].merge_page(p1)
1238+
1239+
12301240
def test_get_contents_from_nullobject():
12311241
"""Issue #2157"""
12321242
writer = PdfWriter()

0 commit comments

Comments
 (0)