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> pPool,
21 const ByteString& str,
23 : m_String(str), m_bHex(bHex) {
25 m_String = pPool->Intern(m_String);
28CPDF_String::CPDF_String(WeakPtr<ByteStringPool> pPool, WideStringView str)
29 : m_String(PDF_EncodeText(str)) {
31 m_String = pPool->Intern(m_String);
41 auto pRet = pdfium::MakeRetain<CPDF_String>();
42 pRet->m_String = m_String;
43 pRet->m_bHex = m_bHex;
60 return PDF_DecodeText(m_String.raw_span());
65 DataVector<uint8_t> encrypted_data;
66 pdfium::span<
const uint8_t> data = m_String.raw_span();
68 encrypted_data = encryptor->Encrypt(data);
69 data = encrypted_data;
71 ByteStringView raw(data);
73 m_bHex ? PDF_HexEncodeString(raw) : PDF_EncodeString(raw);
78 return m_bHex ? PDF_HexEncodeString(m_String.AsStringView())
79 : PDF_EncodeString(m_String.AsStringView());
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)