mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-07-20 03:55:47 +08:00
109 lines
2.1 KiB
C++
109 lines
2.1 KiB
C++
#ifndef _CATALOG_H
|
|
#define _CATALOG_H
|
|
|
|
#include "GlobalParams.h"
|
|
|
|
class XRef;
|
|
class Object;
|
|
class Page;
|
|
class PageAttrs;
|
|
struct Ref;
|
|
class LinkDestination;
|
|
|
|
//------------------------------------------------------------------------
|
|
// Catalog
|
|
//------------------------------------------------------------------------
|
|
|
|
class Catalog
|
|
{
|
|
public:
|
|
|
|
Catalog(GlobalParams *pGlobalParams, XRef *pXref);
|
|
|
|
~Catalog();
|
|
|
|
BOOL CheckValidation()
|
|
{
|
|
return m_bValid;
|
|
}
|
|
|
|
int GetPagesCount()
|
|
{
|
|
return m_nPagesCount;
|
|
}
|
|
|
|
Page *GetPage(int nIndex)
|
|
{
|
|
return m_ppPages[nIndex - 1];
|
|
}
|
|
|
|
Ref *GetPageRef(int nIndex)
|
|
{
|
|
return &m_pPageRefs[nIndex - 1];
|
|
}
|
|
|
|
StringExt *GetBaseURI()
|
|
{
|
|
return m_seBaseURI;
|
|
}
|
|
|
|
StringExt *ReadMetadata();
|
|
|
|
Object *GetStructTreeRoot()
|
|
{
|
|
return &m_oStructTreeRoot;
|
|
}
|
|
|
|
// Èùåì íîìåð ñòðàíèöû â ñïèñêå, ïî åå îáúåêòíûì íîìåðàì.
|
|
int FindPage(int nNum, int nGen);
|
|
|
|
// Èùåì Named destination.
|
|
LinkDestination *FindDest(StringExt *seName);
|
|
|
|
Object *GetDests()
|
|
{
|
|
return &m_oDests;
|
|
}
|
|
|
|
Object *GetNameTree()
|
|
{
|
|
return &m_oNameTree;
|
|
}
|
|
|
|
Object *GetOutline()
|
|
{
|
|
return &m_oOutline;
|
|
}
|
|
|
|
Object *GetAcroForm()
|
|
{
|
|
return &m_oAcroForm;
|
|
}
|
|
|
|
private:
|
|
|
|
int ReadPageTree(Dict *pPages, PageAttrs *pAttrs, int nStart, char *sAlreadyRead);
|
|
Object *FindDestInTree(Object *pTree, StringExt *seName, Object *pObject);
|
|
|
|
private:
|
|
|
|
XRef *m_pXref; // Òàáëèöà xref äëÿ äàííîãî PDF ôàéëà
|
|
Page **m_ppPages; // Ìàññèâ ñòðàíèö
|
|
Ref *m_pPageRefs; // Îáúåêòíûå íîìåðà âñåõ ñòðàíèö
|
|
int m_nPagesCount; // ×èñëî ñòðàíèö
|
|
int m_nPagesSize; // Ðàçìåð ìàññèâà ñòðàíèö(â áàéòàõ)
|
|
Object m_oDests; // Destination dictionary
|
|
Object m_oNameTree; // Name tree
|
|
StringExt *m_seBaseURI; // Äëÿ ññûëîê URI
|
|
Object m_oMetadata; // Metadata
|
|
Object m_oStructTreeRoot; // Ñòðóêòóðà ñòðàíèö
|
|
Object m_oOutline; // Outline
|
|
Object m_oAcroForm; // AcroForm
|
|
|
|
BOOL m_bValid; // True, åñëè Ñatalog - êîððåòíûé
|
|
|
|
GlobalParams *m_pGlobalParams;
|
|
};
|
|
|
|
#endif /* _CATALOG_H */
|