summaryrefslogtreecommitdiffstats
path: root/include/qpdf/QPDFPageDocumentHelper.hh
diff options
context:
space:
mode:
Diffstat (limited to 'include/qpdf/QPDFPageDocumentHelper.hh')
-rw-r--r--include/qpdf/QPDFPageDocumentHelper.hh92
1 files changed, 92 insertions, 0 deletions
diff --git a/include/qpdf/QPDFPageDocumentHelper.hh b/include/qpdf/QPDFPageDocumentHelper.hh
new file mode 100644
index 00000000..d7d4a026
--- /dev/null
+++ b/include/qpdf/QPDFPageDocumentHelper.hh
@@ -0,0 +1,92 @@
+// Copyright (c) 2005-2018 Jay Berkenbilt
+//
+// This file is part of qpdf.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Versions of qpdf prior to version 7 were released under the terms
+// of version 2.0 of the Artistic License. At your option, you may
+// continue to consider qpdf to be licensed under those terms. Please
+// see the manual for additional information.
+
+#ifndef __QPDFPAGEDOCUMENTHELPER_HH__
+#define __QPDFPAGEDOCUMENTHELPER_HH__
+
+#include <qpdf/QPDFDocumentHelper.hh>
+#include <qpdf/QPDFPageObjectHelper.hh>
+
+#include <qpdf/DLL.h>
+
+#include <vector>
+
+#include <qpdf/QPDF.hh>
+
+class QPDFPageDocumentHelper: public QPDFDocumentHelper
+{
+ public:
+ QPDFPageDocumentHelper(QPDF&);
+
+ // Traverse page tree, and return all /Page objects wrapped in
+ // QPDFPageObjectHelper objects. Unlike with
+ // QPDFObjectHandle::getAllPages, the vector of pages returned by
+ // this call is not affected by additions or removals of pages. If
+ // you manipulate pages, you will have to call this again to get a
+ // new copy. Please comments in QPDFObjectHandle.hh for
+ // getAllPages() for additional details.
+ QPDF_DLL
+ std::vector<QPDFPageObjectHelper> getAllPages();
+
+ // The PDF /Pages tree allows inherited values. Working with the
+ // pages of a pdf is much easier when the inheritance is resolved
+ // by explicitly setting the values in each /Page.
+ QPDF_DLL
+ void pushInheritedAttributesToPage();
+
+ // Add new page at the beginning or the end of the current pdf.
+ // The newpage parameter may be either a direct object, an
+ // indirect object from this QPDF, or an indirect object from
+ // another QPDF. If it is a direct object, it will be made
+ // indirect. If it is an indirect object from another QPDF, this
+ // method will call pushInheritedAttributesToPage on the other
+ // file and then copy the page to this QPDF using the same
+ // underlying code as copyForeignObject.
+ QPDF_DLL
+ void addPage(QPDFPageObjectHelper newpage, bool first);
+
+ // Add new page before or after refpage. See comments for addPage
+ // for details about what newpage should be.
+ QPDF_DLL
+ void addPageAt(QPDFPageObjectHelper newpage, bool before,
+ QPDFPageObjectHelper refpage);
+
+ // Remove page from the pdf.
+ QPDF_DLL
+ void removePage(QPDFPageObjectHelper page);
+
+ private:
+ class Members
+ {
+ friend class QPDFPageDocumentHelper;
+
+ public:
+ ~Members();
+
+ private:
+ Members();
+ Members(Members const&);
+ };
+
+ PointerHolder<Members> m;
+};
+
+#endif // __QPDFPAGEDOCUMENTHELPER_HH__