полностью реализован механизм билда статической и динамической библиотеки

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@63673 954022d7-b5bf-4e40-9824-e11837661b57
This commit is contained in:
Oleg.Korshul
2015-07-23 14:20:18 +00:00
committed by Alexander Trofimov
parent 3d027e9fd0
commit e5a0ebb024
10 changed files with 126 additions and 39 deletions

View File

@ -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);
}
}
}