7#include "core/fpdfapi/parser/cpdf_string.h"
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"
18CPDF_String::CPDF_String() =
default;
20CPDF_String::CPDF_String(WeakPtr<ByteStringPool> pool,
21 pdfium::span<
const uint8_t> data,
23 : data_(ByteStringView(data)), output_is_hex_(
true) {
25 data_ = pool->Intern(data_);
29CPDF_String::CPDF_String(WeakPtr<ByteStringPool> pool,
const ByteString& str)
32 data_ = pool->Intern(data_);
36CPDF_String::CPDF_String(WeakPtr<ByteStringPool> pool,
WideStringView str)
37 : CPDF_String(pool, PDF_EncodeText(str)) {
48 auto clone =
pdfium::MakeRetain<CPDF_String>();
50 clone->output_is_hex_ = output_is_hex_;
67 return PDF_DecodeText(data_.unsigned_span());
72 DataVector<uint8_t> encrypted_data;
73 pdfium::span<
const uint8_t> data = data_.unsigned_span();
75 encrypted_data = encryptor->Encrypt(data);
76 data = encrypted_data;
80 output_is_hex_ ? PDF_HexEncodeString(raw) : PDF_EncodeString(raw);
85 return output_is_hex_ ? PDF_HexEncodeString(data_.AsStringView())
86 : PDF_EncodeString(data_.AsStringView());
fxcrt::ByteString ByteString
void SetString(const ByteString &str) override
CPDF_String * AsMutableString() override
Type GetType() const override
bool WriteTo(IFX_ArchiveStream *archive, const CPDF_Encryptor *encryptor) const override
ByteString EncodeString() const
RetainPtr< CPDF_Object > Clone() const override
WideString GetUnicodeText() const override
ByteString GetString() const override
bool WriteString(ByteStringView str)
fxcrt::ByteStringView ByteStringView
fxcrt::WideStringView WideStringView
fxcrt::WideString WideString