mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-07-16 00:59:02 +08:00
полностью реализован механизм билда статической и динамической библиотеки
git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@63673 954022d7-b5bf-4e40-9824-e11837661b57
This commit is contained in:
committed by
Alexander Trofimov
parent
3d027e9fd0
commit
e5a0ebb024
@ -1,4 +1,4 @@
|
||||
#include "DjVuFileImplementation.h"
|
||||
#include "DjVuFileImplementation.h"
|
||||
|
||||
#include "../DesktopEditor/common/File.h"
|
||||
#include "../DesktopEditor/common/Directory.h"
|
||||
@ -29,11 +29,10 @@ namespace NSDjvu
|
||||
GUTF8String utf8String(sText.c_str());
|
||||
return utf8String;
|
||||
}
|
||||
static CString MakeCString(GUTF8String& strText)
|
||||
static std::string MakeCString(GUTF8String& strText)
|
||||
{
|
||||
std::string sString(strText.getbuf());
|
||||
std::wstring wsString = NSFile::CUtf8Converter::GetUnicodeStringFromUTF8((BYTE*)sString.c_str(), sString.length());
|
||||
return CString(wsString.c_str());
|
||||
return sString;
|
||||
}
|
||||
static int GetInteger(const std::wstring& wsString)
|
||||
{
|
||||
@ -42,7 +41,7 @@ namespace NSDjvu
|
||||
|
||||
try
|
||||
{
|
||||
return _ttoi(wsString.c_str());
|
||||
return std::stoi(wsString);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
@ -162,7 +161,7 @@ void CDjVuFileImplementation::DrawPageOnRenderer(IRenderer* pRende
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// белая страница
|
||||
}
|
||||
}
|
||||
void CDjVuFileImplementation::ConvertToRaster(CApplicationFonts* pAppFonts, int nPageIndex, const std::wstring& wsDstPath, int nImageType)
|
||||
@ -252,6 +251,10 @@ void CDjVuFileImplementation::CreateFrame(IRenderer* pRenderer, GP
|
||||
double dRendWidth = 0;
|
||||
double dRendHeight = 0;
|
||||
|
||||
pRenderer->NewPage();
|
||||
pRenderer->put_Width(25.4 * nWidth / dRendDpiX);
|
||||
pRenderer->put_Height(25.4 * nHeight / dRendDpiY);
|
||||
|
||||
pRenderer->get_Width(&dRendWidth);
|
||||
pRenderer->get_Height(&dRendHeight);
|
||||
|
||||
@ -272,7 +275,7 @@ void CDjVuFileImplementation::CreateFrame(IRenderer* pRenderer, GP
|
||||
}
|
||||
else if (c_nHtmlRendrerer == lRendererType)
|
||||
{
|
||||
// TODO: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// TODO: Нужно реализовать функцию
|
||||
// pRenderer->GetMaxImageSize();
|
||||
//VARIANT var;
|
||||
//renderer->GetAdditionalParam(L"MaxImageSize", &var);
|
||||
@ -358,7 +361,7 @@ void CDjVuFileImplementation::CreateFrame(IRenderer* pRenderer, GP
|
||||
}
|
||||
else
|
||||
{
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>??
|
||||
// белый фрейм??
|
||||
//memset(pBufferDst, 0xFF, 4 * lImageWidth * lImageHeight);
|
||||
GRect oRectAll(0, 0, lImageWidth, lImageHeight);
|
||||
GP<GPixmap> pImage = pPage->get_pixmap(oRectAll, oRectAll);
|
||||
@ -582,7 +585,7 @@ void CDjVuFileImplementation::CreatePdfFrame(IRenderer* pRenderer,
|
||||
}
|
||||
else
|
||||
{
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>??
|
||||
// белый фрейм??
|
||||
//memset(pBufferDst, 0xFF, 4 * lImageWidth * lImageHeight);
|
||||
GRect oRectAll(0, 0, lImageWidth, lImageHeight);
|
||||
GP<GPixmap> pImage = pPage->get_pixmap(oRectAll, oRectAll);
|
||||
@ -692,7 +695,7 @@ void CDjVuFileImplementation::CreateGrFrame(IRenderer* pRenderer,
|
||||
LONG lImageWidth = 0;
|
||||
LONG lImageHeight = 0;
|
||||
|
||||
// TODO: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// TODO: Реализовать для графического рендерера
|
||||
|
||||
//VARIANT var;
|
||||
//renderer->GetAdditionalParam(L"Pixels", &var);
|
||||
@ -773,7 +776,7 @@ void CDjVuFileImplementation::CreateGrFrame(IRenderer* pRenderer,
|
||||
}
|
||||
else
|
||||
{
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>??
|
||||
// белый фрейм??
|
||||
//memset(pBufferDst, 0xFF, 4 * lImageWidth * lImageHeight);
|
||||
GRect oRectAll(0, 0, lImageWidth, lImageHeight);
|
||||
GP<GPixmap> pImage = pPage->get_pixmap(oRectAll, oRectAll);
|
||||
@ -855,18 +858,18 @@ XmlUtils::CXmlNode CDjVuFileImplementation::ParseText(GP<DjVuImage> pPage)
|
||||
XmlUtils::CXmlNode hiddenText;
|
||||
XmlUtils::CXmlNode pageColumn;
|
||||
XmlUtils::CXmlNode region;
|
||||
hiddenText.FromXmlString(NSDjvu::MakeCString(pageText));
|
||||
hiddenText.GetNode(_T("PAGECOLUMN"), pageColumn);
|
||||
pageColumn.GetNode(_T("REGION"), region);
|
||||
region.GetNode(_T("PARAGRAPH"), paragraph);
|
||||
hiddenText.FromXmlStringA(NSDjvu::MakeCString(pageText));
|
||||
hiddenText.GetNode(L"PAGECOLUMN", pageColumn);
|
||||
pageColumn.GetNode(L"REGION", region);
|
||||
region.GetNode(L"PARAGRAPH", paragraph);
|
||||
}
|
||||
return paragraph;
|
||||
}
|
||||
void CDjVuFileImplementation::TextToRenderer(IRenderer* pRenderer, XmlUtils::CXmlNode oTextNode, double dKoef, bool isView)
|
||||
{
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// Выставим шрифт пустой (чтобы растягивать по всему ректу)
|
||||
pRenderer->put_FontName(L"DjvuEmptyFont");
|
||||
CString csText = oTextNode.GetXml();
|
||||
//std::wstring csText = oTextNode.GetXml();
|
||||
XmlUtils::CXmlNodes oLinesNodes;
|
||||
oTextNode.GetNodes(L"LINE", oLinesNodes);
|
||||
for (int nLineIndex = 0; nLineIndex < oLinesNodes.GetCount(); ++nLineIndex)
|
||||
@ -879,11 +882,11 @@ void CDjVuFileImplementation::TextToRenderer(IRenderer* pRenderer,
|
||||
{
|
||||
XmlUtils::CXmlNode oWordNode;
|
||||
oWordsNodes.GetAt(nWordIndex, oWordNode);
|
||||
CString csWord = oWordNode.GetText();
|
||||
CString csCoords = oWordNode.GetAttribute(L"coords");
|
||||
std::wstring csWord = oWordNode.GetText();
|
||||
std::wstring csCoords = oWordNode.GetAttribute(L"coords");
|
||||
double arrCoords[4];
|
||||
ParseCoords(csCoords.GetBuffer(), arrCoords, dKoef);
|
||||
DrawPageText(pRenderer, arrCoords, csWord.GetBuffer());
|
||||
ParseCoords(csCoords, arrCoords, dKoef);
|
||||
DrawPageText(pRenderer, arrCoords, csWord);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user