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_string.cpp
Go to the documentation of this file.
1
// Copyright 2016 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
"core/fpdfapi/parser/cpdf_string.h"
8
9
#
include
<
stdint
.
h
>
10
11
#
include
<
utility
>
12
13
#
include
"core/fpdfapi/parser/cpdf_encryptor.h"
14
#
include
"core/fpdfapi/parser/fpdf_parser_decode.h"
15
#
include
"core/fxcrt/data_vector.h"
16
#
include
"core/fxcrt/fx_stream.h"
17
18
CPDF_String::CPDF_String() =
default
;
19
20
CPDF_String::CPDF_String(WeakPtr<ByteStringPool> pool,
21
pdfium::span<
const
uint8_t> data,
22
DataType
is_hex)
23
: data_(ByteStringView(data)), output_is_hex_(
true
) {
24
if
(pool) {
25
data_ = pool->Intern(data_);
26
}
27
}
28
29
CPDF_String::CPDF_String(WeakPtr<ByteStringPool> pool,
const
ByteString
& str)
30
: data_(str) {
31
if
(pool) {
32
data_ = pool->Intern(data_);
33
}
34
}
35
36
CPDF_String::CPDF_String(WeakPtr<ByteStringPool> pool,
WideStringView
str)
37
: CPDF_String(pool, PDF_EncodeText(str)) {
38
// Delegates to ctor above.
39
}
40
41
CPDF_String::~
CPDF_String
() =
default
;
42
43
CPDF_Object
::
Type
CPDF_String::
GetType
()
const
{
44
return
kString
;
45
}
46
47
RetainPtr
<
CPDF_Object
> CPDF_String::
Clone
()
const
{
48
auto
clone =
pdfium
::MakeRetain<CPDF_String>();
49
clone->data_ = data_;
50
clone->output_is_hex_ = output_is_hex_;
51
return
clone;
52
}
53
54
ByteString
CPDF_String::
GetString
()
const
{
55
return
data_;
56
}
57
58
void
CPDF_String::
SetString
(
const
ByteString
& str) {
59
data_ = str;
60
}
61
62
CPDF_String* CPDF_String::
AsMutableString
() {
63
return
this
;
64
}
65
66
WideString
CPDF_String::
GetUnicodeText
()
const
{
67
return
PDF_DecodeText(data_.unsigned_span());
68
}
69
70
bool
CPDF_String::
WriteTo
(
IFX_ArchiveStream
* archive,
71
const
CPDF_Encryptor
* encryptor)
const
{
72
DataVector<uint8_t> encrypted_data;
73
pdfium::span<
const
uint8_t> data = data_.unsigned_span();
74
if
(encryptor) {
75
encrypted_data = encryptor->Encrypt(data);
76
data = encrypted_data;
77
}
78
ByteStringView
raw(data);
79
ByteString
content =
80
output_is_hex_ ? PDF_HexEncodeString(raw) : PDF_EncodeString(raw);
81
return
archive
->
WriteString
(
content.AsStringView()
)
;
82
}
83
84
ByteString
CPDF_String::
EncodeString
()
const
{
85
return
output_is_hex_ ? PDF_HexEncodeString(data_.AsStringView())
86
: PDF_EncodeString(data_.AsStringView());
87
}
ByteString
fxcrt::ByteString ByteString
Definition
bytestring.h:180
CPDF_Encryptor
Definition
cpdf_encryptor.h:18
CPDF_Object
Definition
cpdf_object.h:50
CPDF_Object::Type
Type
Definition
cpdf_object.h:53
CPDF_Object::kString
@ kString
Definition
cpdf_object.h:56
CPDF_String::SetString
void SetString(const ByteString &str) override
Definition
cpdf_string.cpp:58
CPDF_String::~CPDF_String
~CPDF_String() override
CPDF_String::DataType
DataType
Definition
cpdf_string.h:22
CPDF_String::AsMutableString
CPDF_String * AsMutableString() override
Definition
cpdf_string.cpp:62
CPDF_String::GetType
Type GetType() const override
Definition
cpdf_string.cpp:43
CPDF_String::WriteTo
bool WriteTo(IFX_ArchiveStream *archive, const CPDF_Encryptor *encryptor) const override
Definition
cpdf_string.cpp:70
CPDF_String::EncodeString
ByteString EncodeString() const
Definition
cpdf_string.cpp:84
CPDF_String::Clone
RetainPtr< CPDF_Object > Clone() const override
Definition
cpdf_string.cpp:47
CPDF_String::GetUnicodeText
WideString GetUnicodeText() const override
Definition
cpdf_string.cpp:66
CPDF_String::GetString
ByteString GetString() const override
Definition
cpdf_string.cpp:54
IFX_ArchiveStream
Definition
fx_stream.h:32
IFX_WriteStream::WriteString
bool WriteString(ByteStringView str)
Definition
fx_stream.cpp:46
fxcrt::RetainPtr
Definition
retain_ptr.h:28
pdfium::CFDETextOutLargeBitmapTest
Definition
cfde_textout_unittest.cpp:117
ByteStringView
fxcrt::ByteStringView ByteStringView
Definition
string_view_template.h:325
WideStringView
fxcrt::WideStringView WideStringView
Definition
string_view_template.h:326
WideString
fxcrt::WideString WideString
Definition
widestring.h:207
qtwebengine
src
3rdparty
chromium
third_party
pdfium
core
fpdfapi
parser
cpdf_string.cpp
Generated on
for Qt by
1.18.0