Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
fpdf_ext.cpp
Go to the documentation of this file.
1// Copyright 2014 The PDFium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#include "public/fpdf_ext.h"
8
9#include "core/fpdfapi/parser/cpdf_dictionary.h"
10#include "core/fpdfapi/parser/cpdf_document.h"
11#include "core/fpdfdoc/cpdf_interactiveform.h"
12#include "core/fpdfdoc/cpdf_metadata.h"
13#include "core/fxcrt/fx_extension.h"
14#include "fpdfsdk/cpdfsdk_helpers.h"
15
16static_assert(static_cast<int>(UnsupportedFeature::kDocumentXFAForm) ==
18 "UnsupportedFeature::kDocumentXFAForm value mismatch");
19static_assert(
22 "UnsupportedFeature::kDocumentPortableCollection value mismatch");
23static_assert(static_cast<int>(UnsupportedFeature::kDocumentAttachment) ==
25 "UnsupportedFeature::kDocumentAttachment value mismatch");
26static_assert(static_cast<int>(UnsupportedFeature::kDocumentSecurity) ==
28 "UnsupportedFeature::kDocumentSecurity value mismatch");
29static_assert(static_cast<int>(UnsupportedFeature::kDocumentSharedReview) ==
31 "UnsupportedFeature::kDocumentSharedReview value mismatch");
32static_assert(
35 "UnsupportedFeature::kDocumentSharedFormAcrobat value mismatch");
36static_assert(
39 "UnsupportedFeature::kDocumentSharedFormFilesystem value mismatch");
40static_assert(static_cast<int>(UnsupportedFeature::kDocumentSharedFormEmail) ==
42 "UnsupportedFeature::kDocumentSharedFormEmail value mismatch");
43static_assert(static_cast<int>(UnsupportedFeature::kAnnotation3d) ==
45 "UnsupportedFeature::kAnnotation3d value mismatch");
46static_assert(static_cast<int>(UnsupportedFeature::kAnnotationMovie) ==
48 "UnsupportedFeature::kAnnotationMovie value mismatch");
49static_assert(static_cast<int>(UnsupportedFeature::kAnnotationSound) ==
51 "UnsupportedFeature::kAnnotationSound value mismatch");
52static_assert(static_cast<int>(UnsupportedFeature::kAnnotationScreenMedia) ==
54 "UnsupportedFeature::kAnnotationScreenMedia value mismatch");
55static_assert(
58 "UnsupportedFeature::kAnnotationScreenRichMedia value mismatch");
59static_assert(static_cast<int>(UnsupportedFeature::kAnnotationAttachment) ==
61 "UnsupportedFeature::kAnnotationAttachment value mismatch");
62static_assert(static_cast<int>(UnsupportedFeature::kAnnotationSignature) ==
64 "UnsupportedFeature::kAnnotationSignature value mismatch");
65
67FSDK_SetUnSpObjProcessHandler(UNSUPPORT_INFO* unsp_info) {
68 if (!unsp_info || unsp_info->version != 1)
69 return false;
70
71 SetPDFUnsupportInfo(unsp_info);
72 return true;
73}
74
78
80FSDK_SetLocaltimeFunction(struct tm* (*func)(const time_t* tp)) {
82}
83
84FPDF_EXPORT int FPDF_CALLCONV FPDFDoc_GetPageMode(FPDF_DOCUMENT document) {
86 if (!pDoc)
87 return PAGEMODE_UNKNOWN;
88
89 const CPDF_Dictionary* pRoot = pDoc->GetRoot();
90 if (!pRoot)
91 return PAGEMODE_UNKNOWN;
92
93 RetainPtr<const CPDF_Object> pName = pRoot->GetObjectFor("PageMode");
94 if (!pName)
95 return PAGEMODE_USENONE;
96
97 ByteString strPageMode = pName->GetString();
98 if (strPageMode.IsEmpty() || strPageMode.EqualNoCase("UseNone"))
99 return PAGEMODE_USENONE;
100 if (strPageMode.EqualNoCase("UseOutlines"))
102 if (strPageMode.EqualNoCase("UseThumbs"))
103 return PAGEMODE_USETHUMBS;
104 if (strPageMode.EqualNoCase("FullScreen"))
105 return PAGEMODE_FULLSCREEN;
106 if (strPageMode.EqualNoCase("UseOC"))
107 return PAGEMODE_USEOC;
108 if (strPageMode.EqualNoCase("UseAttachments"))
110
111 return PAGEMODE_UNKNOWN;
112}
const CPDF_Dictionary * GetRoot() const
bool EqualNoCase(ByteStringView str) const
bool IsEmpty() const
Definition bytestring.h:119
UnsupportedFeature
CPDF_Document * CPDFDocumentFromFPDFDocument(FPDF_DOCUMENT doc)
void SetPDFUnsupportInfo(UNSUPPORT_INFO *unsp_info)
#define PAGEMODE_USEOC
Definition fpdf_ext.h:102
#define FPDF_UNSP_DOC_PORTABLECOLLECTION
Definition fpdf_ext.h:22
#define PAGEMODE_USEATTACHMENTS
Definition fpdf_ext.h:104
FPDF_EXPORT int FPDF_CALLCONV FPDFDoc_GetPageMode(FPDF_DOCUMENT document)
Definition fpdf_ext.cpp:84
#define FPDF_UNSP_ANNOT_SCREEN_RICHMEDIA
Definition fpdf_ext.h:44
#define FPDF_UNSP_ANNOT_ATTACHMENT
Definition fpdf_ext.h:46
#define FPDF_UNSP_DOC_SECURITY
Definition fpdf_ext.h:26
#define FPDF_UNSP_DOC_SHAREDFORM_FILESYSTEM
Definition fpdf_ext.h:32
#define PAGEMODE_UNKNOWN
Definition fpdf_ext.h:92
FPDF_EXPORT void FPDF_CALLCONV FSDK_SetLocaltimeFunction(struct tm *(*func)(const time_t *))
Definition fpdf_ext.cpp:80
#define PAGEMODE_USENONE
Definition fpdf_ext.h:94
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FSDK_SetUnSpObjProcessHandler(UNSUPPORT_INFO *unsp_info)
Definition fpdf_ext.cpp:67
#define FPDF_UNSP_DOC_ATTACHMENT
Definition fpdf_ext.h:24
#define PAGEMODE_FULLSCREEN
Definition fpdf_ext.h:100
#define FPDF_UNSP_ANNOT_SIG
Definition fpdf_ext.h:48
#define FPDF_UNSP_ANNOT_SOUND
Definition fpdf_ext.h:40
#define FPDF_UNSP_DOC_SHAREDFORM_EMAIL
Definition fpdf_ext.h:34
#define PAGEMODE_USEOUTLINES
Definition fpdf_ext.h:96
#define PAGEMODE_USETHUMBS
Definition fpdf_ext.h:98
#define FPDF_UNSP_DOC_XFAFORM
Definition fpdf_ext.h:20
#define FPDF_UNSP_DOC_SHAREDFORM_ACROBAT
Definition fpdf_ext.h:30
#define FPDF_UNSP_ANNOT_3DANNOT
Definition fpdf_ext.h:36
#define FPDF_UNSP_ANNOT_MOVIE
Definition fpdf_ext.h:38
FPDF_EXPORT void FPDF_CALLCONV FSDK_SetTimeFunction(time_t(*func)())
Definition fpdf_ext.cpp:75
#define FPDF_UNSP_ANNOT_SCREEN_MEDIA
Definition fpdf_ext.h:42
#define FPDF_UNSP_DOC_SHAREDREVIEW
Definition fpdf_ext.h:28
#define FPDF_CALLCONV
Definition fpdfview.h:227
#define FPDF_EXPORT
Definition fpdfview.h:221
void FXSYS_SetTimeFunction(time_t(*func)())
void FXSYS_SetLocaltimeFunction(struct tm *(*func)(const time_t *))