Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
cpdf_creator.h
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
#
ifndef
CORE_FPDFAPI_EDIT_CPDF_CREATOR_H_
8
#
define
CORE_FPDFAPI_EDIT_CPDF_CREATOR_H_
9
10
#
include
<
map
>
11
#
include
<
memory
>
12
#
include
<
vector
>
13
14
#
include
"core/fxcrt/fx_stream.h"
15
#
include
"core/fxcrt/retain_ptr.h"
16
#
include
"core/fxcrt/unowned_ptr.h"
17
18
class
CPDF_Array
;
19
class
CPDF_CryptoHandler
;
20
class
CPDF_SecurityHandler;
21
class
CPDF_Dictionary
;
22
class
CPDF_Document
;
23
class
CPDF_Object
;
24
class
CPDF_Parser
;
25
26
#
define
FPDFCREATE_INCREMENTAL
1
27
#
define
FPDFCREATE_NO_ORIGINAL
2
28
29
class
CPDF_Creator
{
30
public
:
31
CPDF_Creator
(
CPDF_Document
* pDoc,
32
RetainPtr
<
IFX_RetainableWriteStream
> archive);
33
~
CPDF_Creator
();
34
35
void
RemoveSecurity
();
36
bool
Create
(uint32_t flags);
37
bool
SetFileVersion
(int32_t fileVersion);
38
39
private
:
40
enum
class
Stage {
41
kInvalid = -1,
42
kInit0 = 0,
43
kWriteHeader10 = 10,
44
kWriteIncremental15 = 15,
45
kInitWriteObjs20 = 20,
46
kWriteOldObjs21 = 21,
47
kInitWriteNewObjs25 = 25,
48
kWriteNewObjs26 = 26,
49
kWriteEncryptDict27 = 27,
50
kInitWriteXRefs80 = 80,
51
kWriteXrefsNotIncremental81 = 81,
52
kWriteXrefsIncremental82 = 82,
53
kWriteTrailerAndFinish90 = 90,
54
kComplete100 = 100,
55
};
56
57
bool
Continue();
58
void
Clear();
59
60
void
InitNewObjNumOffsets();
61
void
InitID();
62
63
CPDF_Creator
::Stage WriteDoc_Stage1();
64
CPDF_Creator
::Stage WriteDoc_Stage2();
65
CPDF_Creator
::Stage WriteDoc_Stage3();
66
CPDF_Creator
::Stage WriteDoc_Stage4();
67
68
bool
WriteOldIndirectObject(uint32_t objnum);
69
bool
WriteOldObjs();
70
bool
WriteNewObjs();
71
bool
WriteIndirectObj(uint32_t objnum,
const
CPDF_Object
* pObj);
72
73
CPDF_CryptoHandler
* GetCryptoHandler();
74
75
UnownedPtr
<
CPDF_Document
>
const
m_pDocument;
76
UnownedPtr
<
CPDF_Parser
>
const
m_pParser;
77
RetainPtr
<
const
CPDF_Dictionary
> m_pEncryptDict;
78
RetainPtr
<
CPDF_Dictionary
> m_pNewEncryptDict;
79
RetainPtr
<CPDF_SecurityHandler> m_pSecurityHandler;
80
uint32_t m_dwLastObjNum;
81
std::unique_ptr<IFX_ArchiveStream> m_Archive;
82
FX_FILESIZE
m_SavedOffset = 0;
83
Stage m_iStage = Stage::kInvalid;
84
uint32_t m_CurObjNum = 0;
85
FX_FILESIZE
m_XrefStart = 0;
86
std::map<uint32_t,
FX_FILESIZE
> m_ObjectOffsets;
87
std::vector<uint32_t> m_NewObjNumArray;
// Sorted, ascending.
88
RetainPtr
<
CPDF_Array
> m_pIDArray;
89
int32_t m_FileVersion = 0;
90
bool
m_bSecurityChanged =
false
;
91
bool
m_IsIncremental =
false
;
92
bool
m_IsOriginal =
false
;
93
};
94
95
#
endif
// CORE_FPDFAPI_EDIT_CPDF_CREATOR_H_
ByteString
fxcrt::ByteString ByteString
Definition
bytestring.h:180
DCHECK
#define DCHECK
Definition
check.h:33
CPDF_Array::const_iterator
std::vector< RetainPtr< CPDF_Object > >::const_iterator const_iterator
Definition
cpdf_array.h:29
CPDF_Creator
Definition
cpdf_creator.h:29
CPDF_Creator::CPDF_Creator
CPDF_Creator(CPDF_Document *pDoc, RetainPtr< IFX_RetainableWriteStream > archive)
Definition
cpdf_creator.cpp:120
CPDF_Creator::SetFileVersion
bool SetFileVersion(int32_t fileVersion)
Definition
cpdf_creator.cpp:636
CPDF_Creator::~CPDF_Creator
~CPDF_Creator()
CPDF_Creator::RemoveSecurity
void RemoveSecurity()
Definition
cpdf_creator.cpp:643
CPDF_Creator::Create
bool Create(uint32_t flags)
Definition
cpdf_creator.cpp:550
CPDF_CryptoHandler
Definition
cpdf_crypto_handler.h:27
CPDF_DictionaryLocker
Definition
cpdf_dictionary.h:157
CPDF_Dictionary::DictMap
std::map< ByteString, RetainPtr< CPDF_Object >, std::less<> > DictMap
Definition
cpdf_dictionary.h:31
CPDF_Document
Definition
cpdf_document.h:29
CPDF_Encryptor
Definition
cpdf_encryptor.h:18
CPDF_Object
Definition
cpdf_object.h:50
CPDF_Object::WriteTo
virtual bool WriteTo(IFX_ArchiveStream *archive, const CPDF_Encryptor *encryptor) const =0
CPDF_Parser
Definition
cpdf_parser.h:37
IFX_ArchiveStream
Definition
fx_stream.h:32
IFX_RetainableWriteStream
Definition
fx_stream.h:43
IFX_WriteStream::WriteByte
bool WriteByte(uint8_t byte)
Definition
fx_stream.cpp:50
fxcrt::ByteString::Format
static ByteString Format(const char *pFormat,...)
Definition
bytestring.cpp:79
fxcrt::ByteString::operator=
ByteString & operator=(ByteString &&that) noexcept
Definition
bytestring.cpp:175
fxcrt::RetainPtr
Definition
retain_ptr.h:28
fxcrt::UnownedPtr
Definition
unowned_ptr.h:76
pdfium::CFDETextOutLargeBitmapTest
Definition
cfde_textout_unittest.cpp:117
FPDFCREATE_INCREMENTAL
#define FPDFCREATE_INCREMENTAL
Definition
cpdf_creator.h:26
FPDFCREATE_NO_ORIGINAL
#define FPDFCREATE_NO_ORIGINAL
Definition
cpdf_creator.h:27
FX_Random_MT_Start
void * FX_Random_MT_Start(uint32_t dwSeed)
Definition
fx_random.cpp:87
FX_Random_MT_Close
void FX_Random_MT_Close(void *pContext)
Definition
fx_random.cpp:124
FX_SAFE_FILESIZE
pdfium::CheckedNumeric< FX_FILESIZE > FX_SAFE_FILESIZE
Definition
fx_safe_types.h:17
FX_FILESIZE
#define FX_FILESIZE
Definition
fx_types.h:19
fxcrt
Definition
stl_util.h:17
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
qtwebengine
src
3rdparty
chromium
third_party
pdfium
core
fpdfapi
edit
cpdf_creator.h
Generated on
for Qt by
1.18.0