diff --git a/examples/pdf/multipage/main.cpp b/examples/pdf/multipage/main.cpp
index 7b766d77ea384315a84f6aea235e665eb05c3155..35aaa8c64cf625f58859a2fafdbf8ee0dce13e35 100644
--- a/examples/pdf/multipage/main.cpp
+++ b/examples/pdf/multipage/main.cpp
@@ -64,7 +64,10 @@ int main(int argc, char* argv[])
     if (app.arguments().count() > 1) {
         QUrl toLoad = QUrl::fromUserInput(app.arguments().at(1));
         engine.rootObjects().first()->setProperty("source", toLoad);
+    } else {
+        engine.rootObjects().first()->setProperty("source", QStringLiteral("resources/test.pdf"));
     }
 
+
     return app.exec();
 }
diff --git a/examples/pdf/multipage/multipage.pro b/examples/pdf/multipage/multipage.pro
index 5fff58fe111c131faf872072cea5c2c442b40915..5df9e653d1f29781df391271c447bdd4b94d14f9 100644
--- a/examples/pdf/multipage/multipage.pro
+++ b/examples/pdf/multipage/multipage.pro
@@ -1,6 +1,6 @@
 TEMPLATE = app
 
-QT += qml quick pdf widgets
+QT += qml quick pdf widgets svg
 
 SOURCES += main.cpp
 
diff --git a/examples/pdf/multipage/resources/test.pdf b/examples/pdf/multipage/resources/test.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..a9dc1bc292c0b3adb7d0835c891b7790dc32392f
Binary files /dev/null and b/examples/pdf/multipage/resources/test.pdf differ
diff --git a/examples/pdf/multipage/viewer.qml b/examples/pdf/multipage/viewer.qml
index ba54065b7a1d20dd069880027b4385eb992b0eb6..ac6d2cd9a00f3b6f9002514121abd11f4737d19f 100644
--- a/examples/pdf/multipage/viewer.qml
+++ b/examples/pdf/multipage/viewer.qml
@@ -62,7 +62,7 @@ ApplicationWindow {
     color: "lightgrey"
     title: document.title
     visible: true
-    property alias source: document.source // for main.cpp
+    property string source // for main.cpp
 
     header: ToolBar {
         RowLayout {
@@ -221,6 +221,7 @@ ApplicationWindow {
 
     PdfDocument {
         id: document
+        source: Qt.resolvedUrl(root.source)
         onStatusChanged: {
             if (status === PdfDocument.Error) errorDialog.open()
             view.document = (status === PdfDocument.Ready ? document : undefined)
diff --git a/examples/pdf/multipage/viewer.qrc b/examples/pdf/multipage/viewer.qrc
index 9698a2689322a587a90bf65f5909d5ed708e68f3..1b6fa52f78735693db2f74d009921bfcdcf9090d 100644
--- a/examples/pdf/multipage/viewer.qrc
+++ b/examples/pdf/multipage/viewer.qrc
@@ -1,6 +1,7 @@
 <RCC>
     <qresource prefix="/pdfviewer">
         <file>viewer.qml</file>
+        <file>resources/document-open.svg</file>
         <file>resources/edit-clear.svg</file>
         <file>resources/edit-copy.svg</file>
         <file>resources/go-down-search.svg</file>
@@ -9,11 +10,11 @@
         <file>resources/go-up-search.svg</file>
         <file>resources/rotate-left.svg</file>
         <file>resources/rotate-right.svg</file>
+        <file>resources/test.pdf</file>
         <file>resources/zoom-in.svg</file>
         <file>resources/zoom-fit-best.svg</file>
         <file>resources/zoom-fit-width.svg</file>
         <file>resources/zoom-original.svg</file>
         <file>resources/zoom-out.svg</file>
-        <file>resources/document-open.svg</file>
     </qresource>
 </RCC>
diff --git a/examples/pdf/pdfviewer/main.cpp b/examples/pdf/pdfviewer/main.cpp
index 639b1182564bfcc9b1e56bb5cfe06f5caa55e826..5f65e306155b701953817c5fea5c8bb188596034 100644
--- a/examples/pdf/pdfviewer/main.cpp
+++ b/examples/pdf/pdfviewer/main.cpp
@@ -64,6 +64,8 @@ int main(int argc, char* argv[])
     if (app.arguments().count() > 1) {
         QUrl toLoad = QUrl::fromUserInput(app.arguments().at(1));
         engine.rootObjects().first()->setProperty("source", toLoad);
+    } else {
+        engine.rootObjects().first()->setProperty("source", QStringLiteral("resources/test.pdf"));
     }
 
     return app.exec();
diff --git a/examples/pdf/pdfviewer/pdfviewer.pro b/examples/pdf/pdfviewer/pdfviewer.pro
index 697349cee53002a3335272275ab0aa809240e070..b8817c9bec22ba66d46dc4d2d9e44bc7fb4e6b61 100644
--- a/examples/pdf/pdfviewer/pdfviewer.pro
+++ b/examples/pdf/pdfviewer/pdfviewer.pro
@@ -1,6 +1,6 @@
 TEMPLATE = app
 
-QT += qml quick pdf widgets
+QT += qml quick pdf widgets svg
 
 SOURCES += main.cpp
 
diff --git a/examples/pdf/pdfviewer/resources/test.pdf b/examples/pdf/pdfviewer/resources/test.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..a9dc1bc292c0b3adb7d0835c891b7790dc32392f
Binary files /dev/null and b/examples/pdf/pdfviewer/resources/test.pdf differ
diff --git a/examples/pdf/pdfviewer/viewer.qml b/examples/pdf/pdfviewer/viewer.qml
index 586a822a0431be6597aae45d3e26db4d53db675d..a2bccab445ca1a5b83bd3cc94d67ab79fc720220 100644
--- a/examples/pdf/pdfviewer/viewer.qml
+++ b/examples/pdf/pdfviewer/viewer.qml
@@ -63,7 +63,7 @@ ApplicationWindow {
     color: "lightgrey"
     title: document.title
     visible: true
-    property alias source: document.source // for main.cpp
+    property string source // for main.cpp
     property real scaleStep: Math.sqrt(2)
 
     header: ToolBar {
@@ -204,6 +204,7 @@ ApplicationWindow {
         x: searchDrawer.position * searchDrawer.width // TODO binding gets broken during centering
         document: PdfDocument {
             id: document
+            source: Qt.resolvedUrl(root.source)
             onStatusChanged: if (status === PdfDocument.Error) errorDialog.open()
         }
         searchString: searchField.text
diff --git a/examples/pdf/pdfviewer/viewer.qrc b/examples/pdf/pdfviewer/viewer.qrc
index 9698a2689322a587a90bf65f5909d5ed708e68f3..1b6fa52f78735693db2f74d009921bfcdcf9090d 100644
--- a/examples/pdf/pdfviewer/viewer.qrc
+++ b/examples/pdf/pdfviewer/viewer.qrc
@@ -1,6 +1,7 @@
 <RCC>
     <qresource prefix="/pdfviewer">
         <file>viewer.qml</file>
+        <file>resources/document-open.svg</file>
         <file>resources/edit-clear.svg</file>
         <file>resources/edit-copy.svg</file>
         <file>resources/go-down-search.svg</file>
@@ -9,11 +10,11 @@
         <file>resources/go-up-search.svg</file>
         <file>resources/rotate-left.svg</file>
         <file>resources/rotate-right.svg</file>
+        <file>resources/test.pdf</file>
         <file>resources/zoom-in.svg</file>
         <file>resources/zoom-fit-best.svg</file>
         <file>resources/zoom-fit-width.svg</file>
         <file>resources/zoom-original.svg</file>
         <file>resources/zoom-out.svg</file>
-        <file>resources/document-open.svg</file>
     </qresource>
 </RCC>
diff --git a/src/pdf/qpdfdocument.cpp b/src/pdf/qpdfdocument.cpp
index 42cd2492d8230500eda9d9ed3ead9f1558290127..1e8a0f5273b4fe5b278d18cd35ac84b5d81bebc1 100644
--- a/src/pdf/qpdfdocument.cpp
+++ b/src/pdf/qpdfdocument.cpp
@@ -420,6 +420,8 @@ QPdfDocument::~QPdfDocument()
 
 QPdfDocument::DocumentError QPdfDocument::load(const QString &fileName)
 {
+    qCDebug(qLcDoc) << "loading" << fileName;
+
     close();
 
     d->setStatus(QPdfDocument::Loading);
@@ -761,7 +763,7 @@ QPdfSelection QPdfDocument::getSelection(int page, QPointF start, QPointF end)
         return QPdfSelection(text, bounds);
     }
 
-    qDebug(qLcDoc) << page << start << "->" << end << "nothing found";
+    qCDebug(qLcDoc) << page << start << "->" << end << "nothing found";
     return QPdfSelection();
 }
 
diff --git a/src/pdf/quick/qquickpdfdocument.cpp b/src/pdf/quick/qquickpdfdocument.cpp
index 6eb9d3ae4d489b0a28a001cfd044efb17a0853cc..1cfd9a9afc3dd1ee43ea57e6b88d34e5f1a45ae8 100644
--- a/src/pdf/quick/qquickpdfdocument.cpp
+++ b/src/pdf/quick/qquickpdfdocument.cpp
@@ -91,7 +91,10 @@ void QQuickPdfDocument::setSource(QUrl source)
 
     m_source = source;
     emit sourceChanged();
-    m_doc.load(source.path());
+    if (source.scheme() == QLatin1String("qrc"))
+        m_doc.load(QLatin1Char(':') + source.path());
+    else
+        m_doc.load(source.path());
 }
 
 /*!