summaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDF_pages.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libqpdf/QPDF_pages.cc')
-rw-r--r--libqpdf/QPDF_pages.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/libqpdf/QPDF_pages.cc b/libqpdf/QPDF_pages.cc
index e8d107b3..44db064c 100644
--- a/libqpdf/QPDF_pages.cc
+++ b/libqpdf/QPDF_pages.cc
@@ -56,7 +56,20 @@ void
QPDF::getAllPagesInternal(QPDFObjectHandle cur_pages,
std::vector<QPDFObjectHandle>& result)
{
- std::string type = cur_pages.getKey("/Type").getName();
+ std::string type;
+ QPDFObjectHandle type_key = cur_pages.getKey("/Type");
+ if (type_key.isName())
+ {
+ type = type_key.getName();
+ }
+ else if (cur_pages.hasKey("/Kids"))
+ {
+ type = "/Pages";
+ }
+ else
+ {
+ type = "/Page";
+ }
if (type == "/Pages")
{
QPDFObjectHandle kids = cur_pages.getKey("/Kids");