mirror of
https://github.com/ONLYOFFICE/core.git
synced 2025-04-18 14:04:06 +03:00
COfficeDrawingPageParams
This commit is contained in:
parent
c83e50d164
commit
c1b01029df
@ -43,6 +43,18 @@ enum OfficeDrawingFileType
|
||||
odftUndefined = 255
|
||||
};
|
||||
|
||||
struct COfficeDrawingPageParams
|
||||
{
|
||||
bool m_bNeedDrawAnnotation;
|
||||
|
||||
COfficeDrawingPageParams() : m_bNeedDrawAnnotation(true){}
|
||||
|
||||
void SetDrawAnnotation(bool bDraw)
|
||||
{
|
||||
m_bNeedDrawAnnotation = bDraw;
|
||||
}
|
||||
};
|
||||
|
||||
class GRAPHICS_DECL IOfficeDrawingFile
|
||||
{
|
||||
public:
|
||||
@ -70,7 +82,7 @@ public:
|
||||
// Pages info/draw
|
||||
virtual int GetPagesCount() = 0;
|
||||
virtual void GetPageInfo(int nPageIndex, double* pdWidth, double* pdHeight, double* pdDpiX, double* pdDpiY) = 0;
|
||||
virtual void DrawPageOnRenderer(IRenderer* pRenderer, int nPageIndex, bool* pBreak) = 0;
|
||||
virtual void DrawPageOnRenderer(IRenderer* pRenderer, int nPageIndex, bool* pBreak, COfficeDrawingPageParams* pParams = NULL) = 0;
|
||||
|
||||
// Common methods/wrappers on GetPageInfo + DrawPageOnRenderer
|
||||
virtual unsigned char* ConvertToPixels(int nPageIndex, int nRasterW, int nRasterH,
|
||||
|
@ -93,7 +93,7 @@ void CDjVuFile::GetPageInfo(int nPageIndex, double* pdWidth, double* pdHeight, d
|
||||
if (m_pImplementation)
|
||||
m_pImplementation->GetPageInfo(nPageIndex, pdWidth, pdHeight, pdDpiX, pdDpiY);
|
||||
}
|
||||
void CDjVuFile::DrawPageOnRenderer(IRenderer* pRenderer, int nPageIndex, bool* pBreak)
|
||||
void CDjVuFile::DrawPageOnRenderer(IRenderer* pRenderer, int nPageIndex, bool* pBreak, COfficeDrawingPageParams* pParams)
|
||||
{
|
||||
if (m_pImplementation)
|
||||
m_pImplementation->DrawPageOnRenderer(pRenderer, nPageIndex, pBreak);
|
||||
|
@ -69,7 +69,7 @@ public:
|
||||
|
||||
virtual int GetPagesCount();
|
||||
virtual void GetPageInfo(int nPageIndex, double* pdWidth, double* pdHeight, double* pdDpiX, double* pdDpiY);
|
||||
virtual void DrawPageOnRenderer(IRenderer* pRenderer, int nPageIndex, bool* pBreak);
|
||||
virtual void DrawPageOnRenderer(IRenderer* pRenderer, int nPageIndex, bool* pBreak, COfficeDrawingPageParams* pParams = NULL);
|
||||
virtual std::wstring GetInfo();
|
||||
|
||||
void ConvertToPdf(const std::wstring& path);
|
||||
|
@ -382,11 +382,12 @@ bool CPdfFile::ValidMetaData()
|
||||
return false;
|
||||
return m_pInternal->pReader->ValidMetaData();
|
||||
}
|
||||
void CPdfFile::DrawPageOnRenderer(IRenderer* pRenderer, int nPageIndex, bool* pBreak)
|
||||
void CPdfFile::DrawPageOnRenderer(IRenderer* pRenderer, int nPageIndex, bool* pBreak, COfficeDrawingPageParams* pParams)
|
||||
{
|
||||
if (!m_pInternal->pReader)
|
||||
return;
|
||||
pRenderer->CommandLong(c_nPenWidth0As1px, 1);
|
||||
m_pInternal->pReader->SetParams(pParams);
|
||||
m_pInternal->pReader->DrawPageOnRenderer(pRenderer, nPageIndex, pBreak);
|
||||
}
|
||||
std::wstring CPdfFile::GetInfo()
|
||||
|
@ -121,7 +121,7 @@ public:
|
||||
|
||||
virtual int GetPagesCount();
|
||||
virtual void GetPageInfo(int nPageIndex, double* pdWidth, double* pdHeight, double* pdDpiX, double* pdDpiY);
|
||||
virtual void DrawPageOnRenderer(IRenderer* pRenderer, int nPageIndex, bool* pBreak);
|
||||
virtual void DrawPageOnRenderer(IRenderer* pRenderer, int nPageIndex, bool* pBreak, COfficeDrawingPageParams* pParams = NULL);
|
||||
virtual std::wstring GetInfo();
|
||||
virtual BYTE* GetStructure();
|
||||
virtual BYTE* GetLinks(int nPageIndex);
|
||||
|
@ -82,7 +82,7 @@ CPdfReader::CPdfReader(NSFonts::IApplicationFonts* pAppFonts)
|
||||
SetCMapFile(NSFile::GetProcessDirectory() + L"/cmap.bin");
|
||||
#else
|
||||
globalParams->setDrawFormFields(gFalse);
|
||||
//globalParams->setDrawAnnotations(gFalse);
|
||||
globalParams->setDrawAnnotations(gFalse);
|
||||
SetCMapMemory(NULL, 0);
|
||||
#endif
|
||||
|
||||
@ -448,6 +448,15 @@ void CPdfReader::Close()
|
||||
RELEASEOBJECT(m_pPDFDocument);
|
||||
m_mFonts.clear();
|
||||
}
|
||||
void CPdfReader::SetParams(COfficeDrawingPageParams* pParams)
|
||||
{
|
||||
if (!pParams)
|
||||
return;
|
||||
|
||||
GBool bDraw = pParams->m_bNeedDrawAnnotation ? gTrue : gFalse;
|
||||
globalParams->setDrawFormFields(bDraw);
|
||||
globalParams->setDrawAnnotations(bDraw);
|
||||
}
|
||||
|
||||
int CPdfReader::GetError()
|
||||
{
|
||||
|
@ -50,6 +50,7 @@ public:
|
||||
|
||||
void Close();
|
||||
|
||||
void SetParams(COfficeDrawingPageParams* pParams);
|
||||
std::wstring GetTempDirectory();
|
||||
void SetTempDirectory(const std::wstring& directory);
|
||||
|
||||
|
@ -380,7 +380,7 @@ void Page::displaySlice(OutputDev *out, double hDPI, double vDPI,
|
||||
obj.free();
|
||||
|
||||
// draw (non-form) annotations
|
||||
if (globalParams->getDrawAnnotations()) {
|
||||
if (true) {
|
||||
annotList = new Annots(doc, getAnnots(&obj));
|
||||
obj.free();
|
||||
annotList->generateAnnotAppearances();
|
||||
@ -392,12 +392,10 @@ void Page::displaySlice(OutputDev *out, double hDPI, double vDPI,
|
||||
if (abortCheckCbk && (*abortCheckCbk)(abortCheckCbkData)) {
|
||||
break;
|
||||
}
|
||||
#ifdef BUILDING_WASM_MODULE
|
||||
sType = annotList->getAnnot(i)->getType();
|
||||
if (sType->cmp("Link") == 0 || sType->cmp("FileAttachment") == 0 ||
|
||||
if (globalParams->getDrawAnnotations() || sType->cmp("Link") == 0 || sType->cmp("FileAttachment") == 0 ||
|
||||
sType->cmp("Sound") == 0 || sType->cmp("Movie") == 0 || sType->cmp("Screen") == 0 || sType->cmp("PrinterMark") == 0 ||
|
||||
sType->cmp("TrapNet") == 0 || sType->cmp("Watermark") == 0 || sType->cmp("3D") == 0 || sType->cmp("Redact") == 0)
|
||||
#endif
|
||||
annotList->getAnnot(i)->draw(gfx, printing);
|
||||
}
|
||||
}
|
||||
|
@ -173,7 +173,7 @@ void CXpsFile::GetPageInfo(int nPageIndex, double* pdWidth, double* pdHeight, do
|
||||
*pdDpiX = 25.4;
|
||||
*pdDpiY = 25.4;
|
||||
}
|
||||
void CXpsFile::DrawPageOnRenderer(IRenderer* pRenderer, int nPageIndex, bool* pBreak)
|
||||
void CXpsFile::DrawPageOnRenderer(IRenderer* pRenderer, int nPageIndex, bool* pBreak, COfficeDrawingPageParams* pParams)
|
||||
{
|
||||
if (!m_pInternal->m_pDocument)
|
||||
return;
|
||||
|
@ -64,7 +64,7 @@ public:
|
||||
|
||||
virtual int GetPagesCount();
|
||||
virtual void GetPageInfo(int nPageIndex, double* pdWidth, double* pdHeight, double* pdDpiX, double* pdDpiY);
|
||||
virtual void DrawPageOnRenderer(IRenderer* pRenderer, int nPageIndex, bool* pBreak);
|
||||
virtual void DrawPageOnRenderer(IRenderer* pRenderer, int nPageIndex, bool* pBreak, COfficeDrawingPageParams* pParams = NULL);
|
||||
virtual std::wstring GetInfo();
|
||||
|
||||
#ifndef DISABLE_PDF_CONVERTATION
|
||||
|
Loading…
x
Reference in New Issue
Block a user