20 #ifndef INCLUDED_SDEXT_SOURCE_PDFIMPORT_INC_PDFPARSE_HXX
21 #define INCLUDED_SDEXT_SOURCE_PDFIMPORT_INC_PDFPARSE_HXX
24 #include <rtl/ustring.hxx>
25 #include <rtl/string.hxx>
27 #include <string_view>
28 #include <unordered_map>
40 virtual bool write(
const void* pBuf,
unsigned int nLen ) = 0;
42 virtual bool copyOrigBytes(
unsigned int nOrigOffset,
unsigned int nLen ) = 0;
43 virtual unsigned int readOrigBytes(
unsigned int nOrigOffset,
unsigned int nLen,
void* pBuf ) = 0;
76 :
PDFEntry(), m_aComment( rComment ) {}
107 :
PDFValue(), m_aString( rString ) {}
143 :
PDFValue(), m_nNumber( nNr ), m_nGeneration( nGen ) {}
168 void cloneSubElements( std::vector<std::unique_ptr<PDFEntry>>& rNewSubElements )
const;
185 typedef std::unordered_map<OString,PDFEntry*>
Map;
195 void insertValue(
const OString& rName, std::unique_ptr<PDFEntry> pValue );
210 :
PDFEntry(), m_nBeginOffset( nBegin ), m_nEndOffset( nEnd ), m_pDict( pStreamDict ) {}
228 struct PDFFileImplData;
232 mutable std::unique_ptr<PDFFileImplData>
m_pData;
255 unsigned int nObject,
unsigned int nGeneration )
const;
266 : m_pObject( nullptr ), m_pStream( nullptr ), m_nNumber( nNr ), m_nGeneration( nGen ) {}
294 static std::unique_ptr<PDFEntry>
read(
const char* pFileName );
296 static std::unique_ptr<PDFEntry>
read(
const char* pBuffer,
unsigned int nLen );
virtual bool emit(EmitContext &rWriteContext) const override
virtual PDFEntry * clone() const override
void eraseValue(std::string_view rName)
virtual ~PDFNumber() override
std::unordered_map< OString, PDFEntry * > Map
virtual bool emit(EmitContext &rWriteContext) const override
virtual ~PDFFile() override
OString getFilteredString() const
virtual bool emit(EmitContext &rWriteContext) const override
virtual bool write(const void *pBuf, unsigned int nLen)=0
std::unique_ptr< PDFFileImplData > m_pData
unsigned int m_nBeginOffset
virtual PDFEntry * clone() const override
virtual ~PDFPart() override
static std::unique_ptr< PDFEntry > read(const char *pFileName)
PDFObject * findObject(unsigned int nNumber, unsigned int nGeneration) const
bool decrypt(const sal_uInt8 *pInBuffer, sal_uInt32 nLen, sal_uInt8 *pOutBuffer, unsigned int nObject, unsigned int nGeneration) const
virtual bool emit(EmitContext &rWriteContext) const override
unsigned int m_nEndOffset
PDFString(const OString &rString)
unsigned int m_nGeneration
PDFObjectRef(unsigned int nNr, unsigned int nGen)
virtual bool emit(EmitContext &rWriteContext) const override
virtual bool emit(EmitContext &rWriteContext) const override
virtual ~PDFValue() override
virtual ~PDFDict() override
virtual bool emit(EmitContext &rWriteContext) const override
std::vector< std::unique_ptr< PDFEntry > > m_aSubElements
bool emitSubElements(EmitContext &rWriteContext) const
virtual bool emit(EmitContext &rWriteContext) const override
virtual PDFEntry * clone() const override
virtual ~PDFBool() override
virtual ~PDFNull() override
virtual ~PDFName() override
OUString getFilteredName() const
bool usesSupportedEncryptionFormat() const
virtual ~PDFObject() override
virtual PDFEntry * clone() const override
virtual PDFEntry * clone() const override
static EmitImplData * getEmitData(EmitContext const &rContext)
virtual PDFEntry * clone() const override
void insertValue(const OString &rName, std::unique_ptr< PDFEntry > pValue)
virtual ~PDFStream() override
bool getDeflatedStream(std::unique_ptr< char[]> &rpStream, unsigned int *pBytes, const PDFContainer *pObjectContainer, EmitContext &rContext) const
virtual unsigned int getCurPos()=0
virtual unsigned int readOrigBytes(unsigned int nOrigOffset, unsigned int nLen, void *pBuf)=0
virtual PDFEntry * clone() const override
virtual bool copyOrigBytes(unsigned int nOrigOffset, unsigned int nLen)=0
virtual PDFEntry * clone() const override
virtual ~PDFArray() override
virtual PDFEntry * clone() const override
virtual bool emit(EmitContext &rWriteContext) const override
virtual bool emit(EmitContext &rWriteContext) const override
PDFFileImplData * impl_getData() const
PDFObject * findObject(PDFObjectRef const *pRef) const
virtual PDFEntry * clone() const override
virtual ~PDFString() override
virtual PDFEntry * clone() const override
static void setEmitData(EmitContext &rContext, EmitImplData *pNewEmitData)
void cloneSubElements(std::vector< std::unique_ptr< PDFEntry >> &rNewSubElements) const
EmitContext(const PDFContainer *pTop=nullptr)
PDFName(const OString &rName)
virtual ~PDFContainer() override
PDFObject(unsigned int nNr, unsigned int nGen)
virtual bool emit(EmitContext &rWriteContext) const override
unsigned int getDictLength(const PDFContainer *pObjectContainer) const
virtual bool emit(EmitContext &rWriteContext) const override
virtual PDFEntry * clone() const override
virtual ~PDFObjectRef() override
virtual PDFEntry * clone() const =0
std::unique_ptr< EmitImplData > m_pImplData
unsigned int m_nGeneration
bool setupDecryptionData(const OString &rPwd) const
virtual ~PDFTrailer() override
virtual PDFEntry * clone() const override
PDFStream(unsigned int nBegin, unsigned int nEnd, PDFDict *pStreamDict)
virtual bool emit(EmitContext &rWriteContext) const override
void writeStream(EmitContext &rContext, const PDFFile *pPDFFile) const
virtual bool emit(EmitContext &rWriteContext) const =0