20bool CPDF_PageExporter::
ExportPages(pdfium::span<
const uint32_t> page_indices,
27 for (uint32_t pageIndex : page_indices) {
28 RetainPtr<CPDF_Dictionary> dest_page_dict = dest()->CreateNewPage(curpage);
29 RetainPtr<
const CPDF_Dictionary> src_page_dict =
30 src()->GetPageDictionary(pageIndex);
31 if (!src_page_dict || !dest_page_dict) {
36 CPDF_DictionaryLocker locker(src_page_dict);
37 for (
const auto& it : locker) {
38 const ByteString& src_key = it.first;
39 const RetainPtr<CPDF_Object>& obj = it.second;
40 if (src_key == pdfium::page_object::kType ||
41 src_key == pdfium::page_object::kParent) {
44 dest_page_dict->SetFor(src_key, obj->Clone());
51 if (!CopyInheritable(dest_page_dict, src_page_dict,
52 pdfium::page_object::kMediaBox)) {
55 RetainPtr<
const CPDF_Object> inheritable = PageDictGetInheritableTag(
56 src_page_dict, pdfium::page_object::kCropBox);
58 dest_page_dict->SetFor(pdfium::page_object::kMediaBox,
59 inheritable->Clone());
62 static const CFX_FloatRect kDefaultLetterRect(0, 0, 612, 792);
63 dest_page_dict->SetRectFor(pdfium::page_object::kMediaBox,
69 if (!CopyInheritable(dest_page_dict, src_page_dict,
70 pdfium::page_object::kResources)) {
72 dest_page_dict->SetNewFor<CPDF_Dictionary>(
73 pdfium::page_object::kResources);
77 CopyInheritable(dest_page_dict, src_page_dict,
78 pdfium::page_object::kCropBox);
80 CopyInheritable(dest_page_dict, src_page_dict,
81 pdfium::page_object::kRotate);
84 uint32_t old_page_obj_num = src_page_dict->GetObjNum();
85 uint32_t new_page_obj_num = dest_page_dict->GetObjNum();
86 AddObjectMapping(old_page_obj_num, new_page_obj_num);
87 UpdateReference(dest_page_dict);
bool ExportPages(pdfium::span< const uint32_t > page_indices, int index)
CPDF_PageExporter(CPDF_Document *dest_doc, CPDF_Document *src_doc)
CPDF_PageOrganizer(CPDF_Document *dest_doc, CPDF_Document *src_doc)