diff --git a/glib/poppler-document.cc b/glib/poppler-document.cc
index 5c9e6a2..acd8157 100644
--- a/glib/poppler-document.cc
+++ b/glib/poppler-document.cc
@@ -1776,6 +1776,50 @@
 }
 
 /**
+ * poppler_document_get_print_page_ranges:
+ * @document: A #PopplerDocument
+ * @n_ranges: (out): return location for number of ranges
+ *
+ * Returns the suggested page ranges to print in the form of array
+ * of #PopplerPageRanges and number of ranges.
+ *
+ * Returns: (array length=n_ranges) (transfer full): an array
+ *          of #PopplerPageRanges or NULL. Free the array when
+ *          it is no longer needed.
+ *
+ * Since: 0.78
+ **/
+PopplerPageRange *
+poppler_document_get_print_page_ranges (PopplerDocument *document,
+                                        int             *n_ranges)
+{
+  Catalog *catalog;
+  ViewerPreferences *preferences;
+  std::vector<std::pair<int, int>> ranges;
+  PopplerPageRange *result = nullptr;
+
+  *n_ranges = 0;
+  g_return_val_if_fail (POPPLER_IS_DOCUMENT (document), NULL);
+
+  catalog = document->doc->getCatalog ();
+  if (catalog && catalog->isOk ()) {
+    preferences = catalog->getViewerPreferences ();
+    if (preferences) {
+      ranges = preferences->getPrintPageRange ();
+
+      *n_ranges = ranges.size ();
+      result = g_new (PopplerPageRange, ranges.size ());
+      for (guint i = 0; i < ranges.size (); ++i) {
+        result[i].start_page = ranges[i].first;
+        result[i].end_page = ranges[i].second;
+      }
+    }
+  }
+
+  return result;
+}
+
+/**
  * poppler_document_get_permissions:
  * @document: A #PopplerDocument
  *
diff --git a/glib/poppler-document.h b/glib/poppler-document.h
index 98ceb75..499991c 100644
--- a/glib/poppler-document.h
+++ b/glib/poppler-document.h
@@ -398,6 +398,9 @@
 PopplerPrintDuplex poppler_document_get_print_duplex       (PopplerDocument *document);
 POPPLER_PUBLIC
 gint               poppler_document_get_print_n_copies     (PopplerDocument *document);
+POPPLER_PUBLIC
+PopplerPageRange  *poppler_document_get_print_page_ranges  (PopplerDocument *document,
+                                                            int             *n_ranges);
 
 /* Attachments */
 POPPLER_PUBLIC
diff --git a/glib/reference/poppler-sections.txt b/glib/reference/poppler-sections.txt
index aff742d..d94abf2 100644
--- a/glib/reference/poppler-sections.txt
+++ b/glib/reference/poppler-sections.txt
@@ -177,6 +177,7 @@
 poppler_document_get_permissions
 poppler_document_get_print_duplex
 poppler_document_get_print_n_copies
+poppler_document_get_print_page_ranges
 poppler_document_get_print_scaling
 poppler_document_get_producer
 poppler_document_get_subject
