mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-10 18:05:41 +08:00
62 lines
2.3 KiB
C++
62 lines
2.3 KiB
C++
#pragma once
|
|
|
|
#include "libdjvu/DjVuDocument.h"
|
|
#include "libdjvu/DjVuImage.h"
|
|
#include "libdjvu/GBitmap.h"
|
|
#include "libdjvu/GScaler.h"
|
|
#include "libdjvu/IFFByteStream.h"
|
|
#include "libdjvu/BSByteStream.h"
|
|
#include "libdjvu/DataPool.h"
|
|
#include "libdjvu/DjVuText.h"
|
|
#include "libdjvu/DjVmNav.h"
|
|
#include "libdjvu/IW44Image.h"
|
|
|
|
#define ZIP_NO_COMPRESSION 0
|
|
#define ZIP_BEST_SPEED 1
|
|
#define ZIP_BEST_COMPRESSION 9
|
|
#define ZIP_DEFAULT_COMPRESSION (-1)
|
|
|
|
#define UNICODE
|
|
#define _UNICODE
|
|
#define _USE_LIBXML2_READER_
|
|
#define LIBXML_READER_ENABLED
|
|
#include "../DesktopEditor/xml/include/xmlutils.h"
|
|
|
|
#include "../DesktopEditor/graphics/IRenderer.h"
|
|
|
|
class CApplicationFonts;
|
|
|
|
class CDjVuFileImplementation
|
|
{
|
|
private:
|
|
|
|
std::wstring m_wsTempDirectory;
|
|
GP<DjVuDocument> m_pDoc;
|
|
CApplicationFonts* m_pApplicationFonts;
|
|
|
|
public:
|
|
|
|
CDjVuFileImplementation(CApplicationFonts* pFonts);
|
|
~CDjVuFileImplementation();
|
|
|
|
bool LoadFromFile(const std::wstring& wsSrcFileName, const std::wstring& wsXmlOptions = L"");
|
|
void Close();
|
|
std::wstring GetTempDirectory() const;
|
|
void SetTempDirectory(const std::wstring& wsDirectory);
|
|
int GetPagesCount() const;
|
|
void GetPageInfo(int nPageIndex, double* pdWidth, double* pdHeight, double* pdDpiX, double* pdDpiY) const;
|
|
void DrawPageOnRenderer(IRenderer* pRenderer, int nPageIndex, bool* pBreak);
|
|
void ConvertToRaster(int nPageIndex, const std::wstring& wsDstPath, int nImageType);
|
|
void ConvertToPdf(const std::wstring& wsDstPath);
|
|
|
|
private:
|
|
|
|
void CreateFrame(IRenderer* pRenderer, GP<DjVuImage>& pImage, int nPage, XmlUtils::CXmlNode& oText);
|
|
void CreatePdfFrame(IRenderer* pRenderer, GP<DjVuImage>& pImage, int nPage, XmlUtils::CXmlNode& oText);
|
|
void CreateGrFrame(IRenderer* pRenderer, GP<DjVuImage>& pImage, bool* pBreak);
|
|
XmlUtils::CXmlNode ParseText(GP<DjVuImage> pPage);
|
|
void TextToRenderer(IRenderer* pRenderer, XmlUtils::CXmlNode text, double koef, bool isView = true);
|
|
void DrawPageText(IRenderer* pRenderer, double* pdCoords, const std::wstring& wsText);
|
|
void ParseCoords(const std::wstring& wsCoordsStr, double* pdCoords, double dKoef);
|
|
};
|