Commit 27a51bca authored by Sergey.Konovalov's avatar Sergey.Konovalov Committed by Alexander Trofimov

переход от IASCRenderer к IRenderer из DesktopEditor; отказ от импорта длл...

переход от IASCRenderer к IRenderer из DesktopEditor; отказ от импорта длл ASCImageStudio3 ASCHTMLRenderer; от AscGraphics только FontPicker и FontManager.

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@58742 954022d7-b5bf-4e40-9824-e11837661b57
parent 6924d8a8
<?xml version="1.0" encoding="windows-1251"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="ASCHTMLRenderer"
ProjectGUID="{DC24710E-8DF2-4A7A-B7C3-2313E294143C}"
RootNamespace="ASCHTMLRenderer"
Keyword="AtlProj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="4"
UseOfMFC="0"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCHTMLRenderer.tlb"
HeaderFileName="HTMLRenderer.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCHTMLRenderer_i.c"
ProxyFileName="ASCHTMLRenderer_p.c"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;../DesktopEditor/freetype-2.5.2/include&quot;;&quot;../DesktopEditor/agg-2.4/include&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_USRDLL;_ATL_ATTRIBUTES;DESKTOP_EDITOR_GRAPHICS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="4"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\Redist\VersionControl.exe $(ProjectDir)version.h"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCSHTMLRenderer.tlb"
HeaderFileName="HTMLRenderer.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCHTMLRenderer_i.c"
ProxyFileName="ASCHTMLRenderer_p.c"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="&quot;../DesktopEditor/freetype-2.5.2/include&quot;;&quot;../DesktopEditor/agg-2.4/include&quot;"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES;DESKTOP_EDITOR_GRAPHICS"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1049"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description=""
CommandLine=""
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\ASCSVGWriter.cpp"
>
</File>
<File
RelativePath=".\CASCImage.cpp"
>
</File>
<File
RelativePath=".\CASCSVGRenderer.cpp"
>
</File>
<File
RelativePath=".\CMetafile.cpp"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\ASCSVGWriter.h"
>
</File>
<File
RelativePath=".\CASCImage.h"
>
</File>
<File
RelativePath=".\CASCSVGRenderer.h"
>
</File>
<File
RelativePath=".\CMetafile.h"
>
</File>
<File
RelativePath=".\Writer\Common.h"
>
</File>
<File
RelativePath=".\Writer\Const.h"
>
</File>
<File
RelativePath="..\DesktopEditor\editor\DibPainter.h"
>
</File>
<File
RelativePath=".\IBaseMatrixUpdater.h"
>
</File>
<File
RelativePath=".\Writer\TextItem.h"
>
</File>
</Filter>
<Filter
Name="Writer"
>
<File
RelativePath=".\Writer\CanvasWriter.h"
>
</File>
<File
RelativePath=".\Writer\StringWriter.h"
>
</File>
<File
RelativePath=".\Writer\SVGWriter.h"
>
</File>
<File
RelativePath=".\Writer\VectorGraphicsWriter2.h"
>
</File>
<File
RelativePath=".\Writer\VMLWriter.h"
>
</File>
</Filter>
<Filter
Name="WMF"
>
<File
RelativePath="..\ASCImageStudio3\ASCGraphics\Objects\Image\Wmf\RendererOutput.h"
>
</File>
<File
RelativePath="..\ASCImageStudio3\ASCGraphics\Objects\Image\Wmf\WmfCharsets.h"
>
</File>
<File
RelativePath="..\ASCImageStudio3\ASCGraphics\Objects\Image\Wmf\WmfCodePage1361.h"
>
</File>
<File
RelativePath="..\ASCImageStudio3\ASCGraphics\Objects\Image\Wmf\WmfCodePage932.h"
>
</File>
<File
RelativePath="..\ASCImageStudio3\ASCGraphics\Objects\Image\Wmf\WmfCodePage936.h"
>
</File>
<File
RelativePath="..\ASCImageStudio3\ASCGraphics\Objects\Image\Wmf\WmfCodePage949.h"
>
</File>
<File
RelativePath="..\ASCImageStudio3\ASCGraphics\Objects\Image\Wmf\WmfCodePage950.h"
>
</File>
<File
RelativePath="..\ASCImageStudio3\ASCGraphics\Objects\Image\Wmf\WmfColor.h"
>
</File>
<File
RelativePath="..\ASCImageStudio3\ASCGraphics\Objects\Image\Wmf\WmfFile.h"
>
</File>
<File
RelativePath="..\ASCImageStudio3\ASCGraphics\Objects\Image\Wmf\WmfMemory.h"
>
</File>
<File
RelativePath="..\ASCImageStudio3\ASCGraphics\Objects\Image\Wmf\WmfOutputDevice.h"
>
</File>
<File
RelativePath="..\ASCImageStudio3\ASCGraphics\Objects\Image\Wmf\WmfRegion.h"
>
</File>
<File
RelativePath="..\ASCImageStudio3\ASCGraphics\Objects\Image\Wmf\WmfTypes.h"
>
</File>
<File
RelativePath="..\ASCImageStudio3\ASCGraphics\Objects\Image\Wmf\WmfUtils.h"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#ifndef C_IMAGE_RENDERER
#define C_IMAGE_RENDERER
#ifdef _WIN32
#include <atlbase.h>
#include <atlstr.h>
#else
#include "../Common/DocxFormat/Source/Base/ASCString.h"
#endif
#include "../DesktopEditor/graphics/IRenderer.h"
const long c_lImageTypeUnknown = 0x0000;
const long c_lImageTypeMetafile = 0x1000;
const long c_lImageTypeBitmap = 0x2000;
const long c_lMetaWmf = 0x01;
const long c_lMetaEmf = 0x02;
const long c_lMetaSVG = 0x04;
const long c_ag_ImageTypeBitmap = 0;
const long c_ag_ImageTypeMetafile = 1;
class CFontManager;
class CWmfFile;
struct TWmfRectF;
namespace Aggplus
{
class CImage;
}
namespace NSHtmlRenderer
{
class IASCImage
{
public:
virtual HRESULT get_Type(LONG* lType) = 0;
virtual HRESULT get_Width(LONG* lWidth) = 0;
virtual HRESULT put_Width(LONG lWidth) = 0;
virtual HRESULT get_Height(LONG* lHeight) = 0;
virtual HRESULT put_Height(LONG lHeight) = 0;
virtual HRESULT get_DpiX(double* dDpiX) = 0;
virtual HRESULT put_DpiX(double dDpiX) = 0;
virtual HRESULT get_DpiY(double* dDpiY) = 0;
virtual HRESULT put_DpiY(double dDpiY) = 0;
virtual CFontManager* get_FontManager() = 0;
virtual void put_FontManager(CFontManager* pManager) = 0;
virtual HRESULT LoadFromFile(const std::wstring& bsFilePath) = 0;
virtual HRESULT DrawOnRenderer(IRenderer* pRenderer, double dX, double dY, double dWidth, double dHeight) = 0;
};
// CAVSImage
class CASCImage : public IASCImage
{
private:
CWmfFile* m_pWmfFile;
TWmfRectF* m_pRect;
CString m_wsTempFilePath;
long m_lImageType; // 0 - BMP, 1 - WMF, 2 - EFM
double m_dDpiX;
double m_dDpiY;
Aggplus::CImage* m_pMediaData;
BOOL m_bLoadOnlyMeta; //
public:
CASCImage();
~CASCImage();
private:
void Open(const std::wstring& bsFilePath);
void Close();
public:
HRESULT get_Type(LONG* lType);
HRESULT get_Width(LONG* lWidth);
HRESULT put_Width(LONG lWidth);
HRESULT get_Height(LONG* lHeight);
HRESULT put_Height(LONG lHeight);
HRESULT get_DpiX(double* dDpiX);
HRESULT put_DpiX(double dDpiX);
HRESULT get_DpiY(double* dDpiY);
HRESULT put_DpiY(double dDpiY);
HRESULT LoadFromFile(const std::wstring& bsFilePath);
HRESULT DrawOnRenderer(IRenderer* pRenderer, double dX, double dY, double dWidth, double dHeight);
HRESULT LoadOnlyMeta(bool bVal);
HRESULT LoadSVG(const std::wstring& sVal);
CFontManager* get_FontManager();
void put_FontManager(CFontManager* oManager);
Aggplus::CImage* get_BitmapImage();
};
}
#endif
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
#include "CMetafile.h"
#include "../DesktopEditor/common/File.h"
#include "../DesktopEditor/graphics/Image.h"
#include "../DesktopEditor/graphics/structures.h"
#include "../DesktopEditor/fontengine/GlyphString.h"
#include "CASCImage.h"
namespace NSHtmlRenderer
{
LONG CImageExt::GetImageType(const std::wstring& strFile)
{
NSFile::CFileBinary oFile;
if (S_OK != oFile.OpenFile(strFile))
{
oFile.CloseFile();
return 0;
}
DWORD dwSize = (DWORD)oFile.GetFileSize();
if (44 > dwSize)
{
return 0;
}
DWORD dwKey = 0;
DWORD dwSizeRead;
oFile.ReadFile((BYTE*)(&dwKey), 4, dwSizeRead);
if (0x9AC6CDD7 == dwKey)
{
// placeable meta
oFile.CloseFile();
return 1;
}
if (0x00000001 == dwKey)
{
BYTE aTemp[40];
oFile.ReadFile((BYTE*)&aTemp, 40, dwSizeRead);
oFile.ReadFile((BYTE*)(&dwKey), 4, dwSizeRead);
oFile.CloseFile();
if (0x464D4520 == dwKey)
{
// EMF/EMF+
return 2;
}
else
{
//
return 0;
}
}
oFile.CloseFile();
if (0x00090001 == dwKey)
{
return 1;
}
return 0;
}
void CImageExt::DrawOnRenderer(IRenderer* pRenderer, const std::wstring& strFile, const double& dX, const double& dY, const double& dW, const double& dH, const BOOL& bIsFromFileUse = TRUE)
{
if (NULL == pRenderer)
return;
LONG lRendType = 0;
pRenderer->get_Type(&lRendType);
if (c_nPDFWriter == lRendType)
{
//todo
//VARIANT var;
//var.vt = VT_BOOL;
//var.boolVal = VARIANT_TRUE;
//pRenderer->SetAdditionalParam(L"WhiteBackImage", var);
}
LONG lFileType = 0;
if (c_nEbookWriter != lRendType)
lFileType = GetImageType(strFile);
BOOL bIsGraphics = FALSE;
//todo
//IASCGraphicsRenderer* pGR = NULL;
//pRenderer->QueryInterface(__uuidof(IASCGraphicsRenderer), (void**)&pGR);
//if (NULL != pGR)
//{
// bIsGraphics = TRUE;
//}
//RELEASEINTERFACE(pGR);
if (0 == lFileType)
{
//
if (bIsGraphics)
{
pRenderer->DrawImageFromFile(strFile, dX, dY, dW, dH);
}
else
{
Aggplus::CImage oImage(strFile);
pRenderer->DrawImage(&oImage, dX, dY, dW, dH);
}
}
else if (1 == lFileType || 2 == lFileType)
{
// Brush, Font, Pen, Shadow ..
NSStructures::CBrush oBrush;
std::wstring bsBrushTexturePath;
pRenderer->get_BrushAlpha1( &oBrush.Alpha1 );
pRenderer->get_BrushAlpha2( &oBrush.Alpha2 );
pRenderer->get_BrushColor1( &oBrush.Color1 );
pRenderer->get_BrushColor2( &oBrush.Color2 );
pRenderer->get_BrushLinearAngle( &oBrush.LinearAngle );
pRenderer->get_BrushTextureMode( &oBrush.TextureMode );
pRenderer->get_BrushTextureAlpha( &oBrush.TextureAlpha );
pRenderer->get_BrushTexturePath( &bsBrushTexturePath );
pRenderer->get_BrushType( &oBrush.Type );
NSStructures::CFont oFont;
std::wstring bsFontPath, bsFontName;
pRenderer->get_FontName( &bsFontName );
pRenderer->get_FontPath( &bsFontPath );
pRenderer->get_FontSize( &oFont.Size );
LONG lStyle;
pRenderer->get_FontStyle( &lStyle );
oFont.Bold = lStyle & FontConstants::FontStyleBold;
oFont.Italic = lStyle & FontConstants::FontStyleItalic;
oFont.Strikeout = lStyle & FontConstants::FontStyleStrikeout;
oFont.Underline = lStyle & FontConstants::FontStyleUnderline;
pRenderer->get_FontStringGID( &oFont.StringGID );
NSStructures::CPen oPen;
pRenderer->get_PenAlign( &oPen.Align );
pRenderer->get_PenAlpha( &oPen.Alpha );
pRenderer->get_PenColor( &oPen.Color );
NSHtmlRenderer::CASCImage oImage;
oImage.put_FontManager(NULL);
oImage.LoadFromFile( strFile );
oImage.DrawOnRenderer( pRenderer, dX, dY, dW, dH );
//
pRenderer->put_BrushAlpha1( oBrush.Alpha1 );
pRenderer->put_BrushAlpha2( oBrush.Alpha2 );
pRenderer->put_BrushColor1( oBrush.Color1 );
pRenderer->put_BrushColor2( oBrush.Color2 );
pRenderer->put_BrushLinearAngle( oBrush.LinearAngle );
pRenderer->put_BrushTextureMode( oBrush.TextureMode );
pRenderer->put_BrushTextureAlpha( oBrush.TextureAlpha );
pRenderer->put_BrushTexturePath( bsBrushTexturePath );
pRenderer->put_BrushType( oBrush.Type );
pRenderer->put_FontName( bsFontName );
pRenderer->put_FontPath( bsFontPath );
pRenderer->put_FontSize( oFont.Size );
pRenderer->put_FontStyle( oFont.GetStyle() );
pRenderer->put_FontStringGID( oFont.StringGID );
pRenderer->put_PenAlign( oPen.Align );
pRenderer->put_PenAlpha( oPen.Alpha );
pRenderer->put_PenColor( oPen.Color );
// path
pRenderer->PathCommandEnd();
}
//else if (2 == lFileType)
//{
// if (bIsGraphics)
// {
// pRenderer->DrawImageFromFile(strFile, dX, dY, dW, dH);
// return;
// }
// NSDocumentViewer::CDIB oSection;
// double dDpiX = 0;
// double dDpiY = 0;
// pRenderer->get_DpiX(&dDpiX);
// pRenderer->get_DpiY(&dDpiY);
// LONG lPixW = (LONG)dW * dDpiX / NSDocumentViewer::c_dInch_to_MM;
// LONG lPixH = (LONG)dH * dDpiX / NSDocumentViewer::c_dInch_to_MM;
// oSection.Create(lPixW, lPixH, dDpiX, dDpiY);
// LONG lCount = lPixW * lPixH;
// memset(oSection.m_pBits, 0xFF, 4 * lCount);
// HDC hDC = GetDC(NULL);
// HDC memDC = CreateCompatibleDC(hDC);
// ReleaseDC(0, hDC);
// HBITMAP hOldBitmap = (HBITMAP)SelectObject(memDC, oSection.m_hBitmap);
// RECT oRectPlay;
// oRectPlay.left = 0;
// oRectPlay.top = 0;
// oRectPlay.right = lPixW;
// oRectPlay.bottom = lPixH;
// HENHMETAFILE hMeta = GetEnhMetaFile(strFile);
// PlayEnhMetaFile(memDC, hMeta, &oRectPlay);
// DeleteEnhMetaFile(hMeta);
// MediaCore::IAVSUncompressedVideoFrame* pMediaData = NULL;
// CoCreateInstance(MediaCore::CLSID_CAVSUncompressedVideoFrame, NULL, CLSCTX_INPROC, MediaCore::IID_IAVSUncompressedVideoFrame, (void**)&pMediaData);
// pMediaData->put_ColorSpace(CSP_VFLIP | CSP_BGRA);
// pMediaData->put_Width(lPixW);
// pMediaData->put_Height(lPixH);
// pMediaData->SetDefaultStrides();
// pMediaData->AllocateBuffer(-1);
// BYTE* pPixels = NULL;
// pMediaData->get_Buffer(&pPixels);
// memcpy(pPixels, oSection.m_pBits, 4 * lPixW * lPixH);
// DeleteObject(hOldBitmap);
// DeleteDC(memDC);
// IUnknown* punkImage = NULL;
// pMediaData->QueryInterface(IID_IUnknown, (void**)&punkImage);
// RELEASEINTERFACE(pMediaData);
// pRenderer->DrawImage(punkImage, dX, dY, dW, dH);
// RELEASEINTERFACE(punkImage);
//}
}
}
\ No newline at end of file
#ifndef C_METAFILE
#define C_METAFILE
#include "../DesktopEditor/graphics/IRenderer.h"
namespace NSHtmlRenderer
{
class CImageExt
{
public:
LONG GetImageType(const std::wstring& strFile);
void DrawOnRenderer(IRenderer* pRenderer, const std::wstring& strFile, const double& dX, const double& dY, const double& dW, const double& dH, const BOOL& bIsFromFileUse);
};
}
#endif
\ No newline at end of file
#ifndef I_BASE_MATRIX_UPDATER
#define I_BASE_MATRIX_UPDATER
namespace NSHtmlRenderer
{
class IBaseMatrixUpdater
{
public:
virtual void OnBaseMatrixUpdate(const double& dWidth, const double& dHeight) = 0;
};
}
#endif
\ No newline at end of file
...@@ -76,7 +76,7 @@ namespace NSHtmlRenderer ...@@ -76,7 +76,7 @@ namespace NSHtmlRenderer
{ {
if (_T("") != strFile) if (_T("") != strFile)
{ {
CDirectory::SaveToFile(strFile, m_oDocument.GetCString()); NSFile::CFileBinary::SaveToFile(std::wstring(strFile.GetString()), std::wstring(m_oDocument.GetCString().GetString()));
} }
m_oDocument.ClearNoAttack(); m_oDocument.ClearNoAttack();
...@@ -136,7 +136,7 @@ namespace NSHtmlRenderer ...@@ -136,7 +136,7 @@ namespace NSHtmlRenderer
strPath.Format(g_vml_string_CurveTo, round(x1), round(y1), round(x2), round(y2), round(x3), round(y3)); strPath.Format(g_vml_string_CurveTo, round(x1), round(y1), round(x2), round(y2), round(x3), round(y3));
m_oPath.WriteString(strPath); m_oPath.WriteString(strPath);
} }
void WriteDrawPath(LONG lType, CMatrix* pTransform, Graphics::IASCGraphicSimpleComverter* pConverter, LONG lTxId) void WriteDrawPath(LONG lType, Aggplus::CMatrix* pTransform, Graphics::IASCGraphicSimpleComverter* pConverter, LONG lTxId)
{ {
bool bStroke = false; bool bStroke = false;
......
#pragma once #pragma once
#include "../stdafx.h" //#include "../stdafx.h"
#include "Const.h"
namespace NSHtmlRenderer namespace NSHtmlRenderer
{ {
inline LONG ConvertColor(LONG lBGR)
{
return (0x00FFFFFF & (((lBGR & 0xFF) << 16) | (lBGR & 0x0000FF00) | ((lBGR >> 16) & 0xFF)));
}
inline CString GetStringColor(LONG lBGR)
{
BYTE R = (BYTE)(lBGR & 0xFF);
BYTE G = (BYTE)((lBGR >> 8) & 0xFF);
BYTE B = (BYTE)((lBGR >> 16) & 0xFF);
CString strTemp = _T("");
strTemp.Format(g_string_css_color, R, G, B);
return strTemp;
}
inline CString SetStrokeColor(LONG lBGR, LONG lA)
{
BYTE R = (BYTE)(lBGR & 0xFF);
BYTE G = (BYTE)((lBGR >> 8) & 0xFF);
BYTE B = (BYTE)((lBGR >> 16) & 0xFF);
CString strTemp = _T("");
strTemp.Format(g_string_canvas_StrokeColorA, R, G, B, (double)lA / 255);
return strTemp;
}
inline CString SetFillColor(LONG lBGR, LONG lA)
{
BYTE R = (BYTE)(lBGR & 0xFF);
BYTE G = (BYTE)((lBGR >> 8) & 0xFF);
BYTE B = (BYTE)((lBGR >> 16) & 0xFF);
CString strTemp = _T("");
strTemp.Format(g_string_canvas_FillColorA, R, G, B, (double)lA / 255);
return strTemp;
}
static RECT GetImageBounds(MediaCore::IAVSUncompressedVideoFrame* pFrame) static RECT GetImageBounds(MediaCore::IAVSUncompressedVideoFrame* pFrame)
{ {
BYTE* pBuffer = NULL; BYTE* pBuffer = NULL;
......
#pragma once #pragma once
#include "Writer\File.h" #include "File.h"
namespace NSHtmlRenderer namespace NSHtmlRenderer
{ {
class IBaseMatrixUpdater
{
public:
virtual void OnBaseMatrixUpdate(const double& dWidth, const double& dHeight) = 0;
};
class CPageInfo class CPageInfo
{ {
private: private:
......
...@@ -15,46 +15,6 @@ namespace NSHtmlRenderer ...@@ -15,46 +15,6 @@ namespace NSHtmlRenderer
const long g_lNewNoJustifySpace = 5; const long g_lNewNoJustifySpace = 5;
inline LONG ConvertColor(LONG lBGR)
{
return (0x00FFFFFF & (((lBGR & 0xFF) << 16) | (lBGR & 0x0000FF00) | ((lBGR >> 16) & 0xFF)));
}
inline CString GetStringColor(LONG lBGR)
{
BYTE R = (BYTE)(lBGR & 0xFF);
BYTE G = (BYTE)((lBGR >> 8) & 0xFF);
BYTE B = (BYTE)((lBGR >> 16) & 0xFF);
CString strTemp = _T("");
strTemp.Format(g_string_css_color, R, G, B);
return strTemp;
}
inline CString SetStrokeColor(LONG lBGR, LONG lA)
{
BYTE R = (BYTE)(lBGR & 0xFF);
BYTE G = (BYTE)((lBGR >> 8) & 0xFF);
BYTE B = (BYTE)((lBGR >> 16) & 0xFF);
CString strTemp = _T("");
strTemp.Format(g_string_canvas_StrokeColorA, R, G, B, (double)lA / 255);
return strTemp;
}
inline CString SetFillColor(LONG lBGR, LONG lA)
{
BYTE R = (BYTE)(lBGR & 0xFF);
BYTE G = (BYTE)((lBGR >> 8) & 0xFF);
BYTE B = (BYTE)((lBGR >> 16) & 0xFF);
CString strTemp = _T("");
strTemp.Format(g_string_canvas_FillColorA, R, G, B, (double)lA / 255);
return strTemp;
}
class CFontManager : public CFontManagerBase class CFontManager : public CFontManagerBase
{ {
public: public:
......
#pragma once #pragma once
#include "..\stdafx.h" #include "..\stdafx.h"
#include "StringWriter.h" #include "StringWriter.h"
#include <atlbase.h>
#include <atlcoll.h>
namespace NSHtmlRenderer namespace NSHtmlRenderer
{ {
...@@ -316,10 +318,10 @@ namespace NSHtmlRenderer ...@@ -316,10 +318,10 @@ namespace NSHtmlRenderer
{ {
m_oDocument.WriteString(g_svg_bstr_svgClose); m_oDocument.WriteString(g_svg_bstr_svgClose);
//CDirectory::SaveToFile(strFile, m_oDocument.GetCString()); //CDirectory::SaveToFile(strFile, m_oDocument.GetCString());
CFile oFile; NSFile::CFileBinary oFile;
oFile.CreateFile(strFile); oFile.CreateFile(std::wstring(strFile.GetString()));
CStringA strA(m_oDocument.GetBuffer(), (int)m_oDocument.GetCurSize()); CStringA strA(m_oDocument.GetBuffer(), (int)m_oDocument.GetCurSize());
oFile.WriteFile(strA.GetBuffer(), strA.GetLength()); oFile.WriteFile((BYTE*)strA.GetBuffer(), strA.GetLength());
} }
if (3000000 < m_oDocument.GetSize()) if (3000000 < m_oDocument.GetSize())
...@@ -466,7 +468,7 @@ namespace NSHtmlRenderer ...@@ -466,7 +468,7 @@ namespace NSHtmlRenderer
m_oPath.AddIntNoCheck(round(y3)); m_oPath.AddIntNoCheck(round(y3));
m_oPath.AddSpaceNoCheck(); m_oPath.AddSpaceNoCheck();
} }
void WriteDrawPath(LONG nType, CMatrix* pTransform, Graphics::IASCGraphicSimpleComverter* pConverter, CImageInfo& oInfo, const double& dAngle) void WriteDrawPath(LONG nType, Aggplus::CMatrix* pTransform, Aggplus::CGraphicsPathSimpleConverter* pConverter, CImageInfo& oInfo, const double& dAngle)
{ {
if (m_oPath.GetCurSize() < 3) if (m_oPath.GetCurSize() < 3)
return; return;
...@@ -528,7 +530,7 @@ namespace NSHtmlRenderer ...@@ -528,7 +530,7 @@ namespace NSHtmlRenderer
double r = 0; double r = 0;
double b = 0; double b = 0;
pConverter->PathCommandGetBounds(&x, &y, &r, &b); pConverter->PathCommandGetBounds(x, y, r, b);
r += x; r += x;
b += y; b += y;
...@@ -539,7 +541,7 @@ namespace NSHtmlRenderer ...@@ -539,7 +541,7 @@ namespace NSHtmlRenderer
} }
else else
{ {
NSHtmlRenderer::CMatrix oTemp = *pTransform; Aggplus::CMatrix oTemp = *pTransform;
double dCx = (x + r) / 2; double dCx = (x + r) / 2;
double dCy = (y + b) / 2; double dCy = (y + b) / 2;
......
#pragma once #pragma once
#include "..\stdafx.h" #include "../../DesktopEditor/common/File.h"
#include "File.h"
#include "TextItem.h" #include "TextItem.h"
#include "Common.h" #include "Common.h"
......
...@@ -81,10 +81,10 @@ namespace NSHtmlRenderer ...@@ -81,10 +81,10 @@ namespace NSHtmlRenderer
{ {
m_oDocument.WriteString(g_vml_bstr_document_end); m_oDocument.WriteString(g_vml_bstr_document_end);
//CDirectory::SaveToFile(strFile, m_oDocument.GetCString()); //CDirectory::SaveToFile(strFile, m_oDocument.GetCString());
CFile oFile; NSFile::CFileBinary oFile;
oFile.CreateFile(strFile); oFile.CreateFile(std::wstring(strFile.GetString()));
CStringA strA(m_oDocument.GetBuffer(), (int)m_oDocument.GetCurSize()); CStringA strA(m_oDocument.GetBuffer(), (int)m_oDocument.GetCurSize());
oFile.WriteFile(strA.GetBuffer(), strA.GetLength()); oFile.WriteFile((BYTE*)strA.GetBuffer(), strA.GetLength());
} }
if (3000000 < m_oDocument.GetSize()) if (3000000 < m_oDocument.GetSize())
...@@ -164,7 +164,7 @@ namespace NSHtmlRenderer ...@@ -164,7 +164,7 @@ namespace NSHtmlRenderer
strPath.Format(g_vml_string_CurveTo, round(x1), round(y1), round(x2), round(y2), round(x3), round(y3)); strPath.Format(g_vml_string_CurveTo, round(x1), round(y1), round(x2), round(y2), round(x3), round(y3));
m_oPath.WriteString(strPath); m_oPath.WriteString(strPath);
} }
void WriteDrawPath(LONG lType, CMatrix* pTransform, Graphics::IASCGraphicSimpleComverter* pConverter, CImageInfo& oInfo, const double& dAngle) void WriteDrawPath(LONG lType, Aggplus::CMatrix* pTransform, Aggplus::CGraphicsPathSimpleConverter* pConverter, CImageInfo& oInfo, const double& dAngle)
{ {
if (m_oPath.GetCurSize() < 3) if (m_oPath.GetCurSize() < 3)
return; return;
......
#pragma once #pragma once
#include "Const.h" //#include "Const.h"
#include "SVGWriter.h" #include "SVGWriter.h"
#include "VMLWriter.h" #include "VMLWriter.h"
#include "CanvasWriter.h" #include "CanvasWriter.h"
#include "../DesktopEditor/graphics/GraphicsPath.h"
namespace NSHtmlRenderer namespace NSHtmlRenderer
{ {
...@@ -14,12 +15,12 @@ namespace NSHtmlRenderer ...@@ -14,12 +15,12 @@ namespace NSHtmlRenderer
CVMLWriter m_oVML; CVMLWriter m_oVML;
CCanvasWriter m_oCanvas; CCanvasWriter m_oCanvas;
Graphics::IASCGraphicSimpleComverter* m_pSimpleConverter; Aggplus::CGraphicsPathSimpleConverter* m_pSimpleConverter;
NSStructures::CPen* m_pPen; NSStructures::CPen* m_pPen;
NSStructures::CBrush* m_pBrush; NSStructures::CBrush* m_pBrush;
CMatrix* m_pFullTransform; Aggplus::CMatrix* m_pFullTransform;
LONG m_lCurrentObjectInPage; LONG m_lCurrentObjectInPage;
...@@ -37,7 +38,7 @@ namespace NSHtmlRenderer ...@@ -37,7 +38,7 @@ namespace NSHtmlRenderer
{ {
} }
void SetSettings(NSStructures::CPen* pPen, NSStructures::CBrush* pBrush, Graphics::IASCGraphicSimpleComverter* pSimpleConverter) void SetSettings(NSStructures::CPen* pPen, NSStructures::CBrush* pBrush, Aggplus::CGraphicsPathSimpleConverter* pSimpleConverter)
{ {
m_pPen = pPen; m_pPen = pPen;
m_pBrush = pBrush; m_pBrush = pBrush;
...@@ -117,7 +118,7 @@ namespace NSHtmlRenderer ...@@ -117,7 +118,7 @@ namespace NSHtmlRenderer
double y = 0; double y = 0;
double r = 0; double r = 0;
double b = 0; double b = 0;
m_pSimpleConverter->PathCommandGetBounds(&x, &y, &r, &b); m_pSimpleConverter->PathCommandGetBounds(x, y, r, b);
r += x; r += x;
b += y; b += y;
...@@ -211,12 +212,12 @@ namespace NSHtmlRenderer ...@@ -211,12 +212,12 @@ namespace NSHtmlRenderer
{ {
public: public:
CSVGWriter m_oSVG; CSVGWriter m_oSVG;
Graphics::IASCGraphicSimpleComverter* m_pSimpleConverter; Aggplus::CGraphicsPathSimpleConverter* m_pSimpleConverter;
NSStructures::CPen* m_pPen; NSStructures::CPen* m_pPen;
NSStructures::CBrush* m_pBrush; NSStructures::CBrush* m_pBrush;
CMatrix* m_pFullTransform; Aggplus::CMatrix* m_pFullTransform;
double m_dWidth; double m_dWidth;
double m_dHeight; double m_dHeight;
...@@ -230,7 +231,7 @@ namespace NSHtmlRenderer ...@@ -230,7 +231,7 @@ namespace NSHtmlRenderer
{ {
} }
void SetSettings(NSStructures::CPen* pPen, NSStructures::CBrush* pBrush, Graphics::IASCGraphicSimpleComverter* pSimpleConverter) void SetSettings(NSStructures::CPen* pPen, NSStructures::CBrush* pBrush, Aggplus::CGraphicsPathSimpleConverter* pSimpleConverter)
{ {
m_pPen = pPen; m_pPen = pPen;
m_pBrush = pBrush; m_pBrush = pBrush;
......
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
//1 //1
//0 //0
//0 //0
//77 //84
#define INTVER 1,0,0,77 #define INTVER 1,0,0,84
#define STRVER "1,0,0,77\0" #define STRVER "1,0,0,84\0"
#ifndef _RENDERER_OUTPUT_H #ifndef _RENDERER_OUTPUT_H
#define _RENDERER_OUTPUT_H #define _RENDERER_OUTPUT_H
#ifdef DESKTOP_EDITOR_GRAPHICS
#include "../../../../../DesktopEditor/graphics/IRenderer.h"
#include "../../../../../DesktopEditor/graphics/structures.h"
#include "../../../../../DesktopEditor/graphics/Image.h"
#include "../../../../../DesktopEditor/raster/ImageFileFormatChecker.h"
#else
#include "../../../stdafx.h" #include "../../../stdafx.h"
#include "..\..\..\Interfaces\ASCRenderer.h" #include "..\..\..\Interfaces\ASCRenderer.h"
#include "..\..\Structures.h" #include "..\..\Structures.h"
#endif
#include "WmfUtils.h" #include "WmfUtils.h"
#include "WmfCharsets.h" #include "WmfCharsets.h"
...@@ -28,8 +35,11 @@ class CRendererOutput : public CWmfOutputDevice ...@@ -28,8 +35,11 @@ class CRendererOutput : public CWmfOutputDevice
{ {
public: public:
#ifdef DESKTOP_EDITOR_GRAPHICS
CRendererOutput(CWmfFile *pFile, IRenderer *pRenderer, double dX, double dY, double dWidth, double dHeight)
#else
CRendererOutput(CWmfFile *pFile, IASCRenderer *pRenderer, double dX, double dY, double dWidth, double dHeight) CRendererOutput(CWmfFile *pFile, IASCRenderer *pRenderer, double dX, double dY, double dWidth, double dHeight)
#endif
{ {
m_pWmfFile = pFile; m_pWmfFile = pFile;
...@@ -47,9 +57,10 @@ public: ...@@ -47,9 +57,10 @@ public:
return; return;
m_pRenderer = pRenderer; m_pRenderer = pRenderer;
#ifndef DESKTOP_EDITOR_GRAPHICS
m_oShadow.Visible = FALSE; m_oShadow.Visible = FALSE;
m_pRenderer->put_ShadowVisible(m_oShadow.Visible); m_pRenderer->put_ShadowVisible(m_oShadow.Visible);
#endif
/*BSTR bsShadow = m_oShadow.ToXmlString().AllocSysString(); /*BSTR bsShadow = m_oShadow.ToXmlString().AllocSysString();
m_pRenderer->SetShadow( bsShadow ); m_pRenderer->SetShadow( bsShadow );
::SysFreeString( bsShadow );*/ ::SysFreeString( bsShadow );*/
...@@ -568,7 +579,16 @@ public: ...@@ -568,7 +579,16 @@ public:
void Bmp_Draw(TWmfBMPDraw *pDrawBitmap) void Bmp_Draw(TWmfBMPDraw *pDrawBitmap)
{ {
TWmfDC *pDC = pDrawBitmap->pDC; TWmfDC *pDC = pDrawBitmap->pDC;
#ifdef DESKTOP_EDITOR_GRAPHICS
USHORT nWidth = pDrawBitmap->oBitmap.ushWidth;
USHORT nHeight = pDrawBitmap->oBitmap.ushHeight;
int nBufferSize = 4 * nWidth * nHeight;
if ( nBufferSize < 1 )
return;
Aggplus::CImage oImage;
BYTE* pBufferPtr = new BYTE[4 * nWidth * nHeight];
oImage.Create(pBufferPtr, nWidth, nHeight, 4 * nWidth);
#else
// create result interface // create result interface
IUnknown *pInterface = NULL; IUnknown *pInterface = NULL;
HRESULT hRes = CoCreateInstance( MediaCore::CLSID_CAVSUncompressedVideoFrame, NULL, CLSCTX_ALL, MediaCore::IID_IAVSUncompressedVideoFrame, (void**)&pInterface ); HRESULT hRes = CoCreateInstance( MediaCore::CLSID_CAVSUncompressedVideoFrame, NULL, CLSCTX_ALL, MediaCore::IID_IAVSUncompressedVideoFrame, (void**)&pInterface );
...@@ -604,6 +624,7 @@ public: ...@@ -604,6 +624,7 @@ public:
pInterface = pMediaData; pInterface = pMediaData;
#endif
// pBufferPtr // pBufferPtr
for ( int nIndex = 0; nIndex < 4 * nWidth * nHeight; nIndex += 4 ) for ( int nIndex = 0; nIndex < 4 * nWidth * nHeight; nIndex += 4 )
...@@ -623,7 +644,11 @@ public: ...@@ -623,7 +644,11 @@ public:
Trans( pDC, &dX, &dY ); Trans( pDC, &dX, &dY );
Trans( pDC, &dX1, &dY1 ); Trans( pDC, &dX1, &dY1 );
#ifdef DESKTOP_EDITOR_GRAPHICS
m_pRenderer->DrawImage( &oImage, (float)dX, (float)dY, (float)(dX1 - dX), (float)(dY1 - dY));
#else
m_pRenderer->DrawImage( pInterface, (float)dX, (float)dY, (float)(dX1 - dX), (float)(dY1 - dY)); m_pRenderer->DrawImage( pInterface, (float)dX, (float)dY, (float)(dX1 - dX), (float)(dY1 - dY));
#endif
} }
void Bmp_Read(TWmfBMPRead *pReadBitmap) void Bmp_Read(TWmfBMPRead *pReadBitmap)
...@@ -676,10 +701,19 @@ public: ...@@ -676,10 +701,19 @@ public:
TWmfFont *pFont = pText->pDC->pFont; TWmfFont *pFont = pText->pDC->pFont;
long lStyle = ( pFont->ushWeight > 550 ? 1 : 0 ) + ( pFont->unItalic ? 2 : 0 ); long lStyle = ( pFont->ushWeight > 550 ? 1 : 0 ) + ( pFont->unItalic ? 2 : 0 );
m_pWmfFile->m_pFontManager->LoadFontByName( A2W(pText->pDC->pFont->sFaceName), dSize, lStyle, 72, 72 ); m_pWmfFile->m_pFontManager->LoadFontByName( A2W(pText->pDC->pFont->sFaceName), dSize, lStyle, 72, 72 );
#ifdef DESKTOP_EDITOR_GRAPHICS
m_pWmfFile->m_pFontManager->LoadString2( A2W(pText->sText), 0, 0 );
TBBox oBox = m_pWmfFile->m_pFontManager->MeasureString2();
fL = oBox.fMinX;
fT = oBox.fMinY;
fW = oBox.fMaxX - oBox.fMinX;
fH = oBox.fMaxY - oBox.fMinY;
m_pWmfFile->m_pFontManager->GetUnderline( &fUndX1, &fUndY1, &fUndX2, &fUndY2, &fUndSize );
#else
m_pWmfFile->m_pFontManager->LoadStringW( A2W(pText->sText), 0, 0 ); m_pWmfFile->m_pFontManager->LoadStringW( A2W(pText->sText), 0, 0 );
m_pWmfFile->m_pFontManager->MeasureString2( &fL, &fT, &fW, &fH ); m_pWmfFile->m_pFontManager->MeasureString2( &fL, &fT, &fW, &fH );
m_pWmfFile->m_pFontManager->GetUnderline( &fUndX1, &fUndY1, &fUndX2, &fUndY2, &fUndSize ); m_pWmfFile->m_pFontManager->GetUnderline( &fUndX1, &fUndY1, &fUndX2, &fUndY2, &fUndSize );
#endif
double fKoef = 25.4 / 72; double fKoef = 25.4 / 72;
fL *= fKoef; fL *= fKoef;
...@@ -1447,7 +1481,16 @@ private: ...@@ -1447,7 +1481,16 @@ private:
{ {
if ( NULL == pBrush->oBitmap.pData || 0 == pBrush->oBitmap.ushHeight || 0 == pBrush->oBitmap.ushWidth ) if ( NULL == pBrush->oBitmap.pData || 0 == pBrush->oBitmap.ushHeight || 0 == pBrush->oBitmap.ushWidth )
return false; return false;
#ifdef DESKTOP_EDITOR_GRAPHICS
USHORT nWidth = pBrush->oBitmap.ushWidth;
USHORT nHeight = pBrush->oBitmap.ushHeight;
int nBufferSize = 4 * nWidth * nHeight;
if ( nBufferSize < 1 )
return false;
Aggplus::CImage oImage;
BYTE* pBufferPtr = new BYTE[4 * nWidth * nHeight];
oImage.Create(pBufferPtr, nWidth, nHeight, 4 * nWidth);
#else
// create result interface // create result interface
IUnknown *pInterface = NULL; IUnknown *pInterface = NULL;
HRESULT hRes = CoCreateInstance( MediaCore::CLSID_CAVSUncompressedVideoFrame, NULL, CLSCTX_ALL, MediaCore::IID_IAVSUncompressedVideoFrame, (void**)&pInterface ); HRESULT hRes = CoCreateInstance( MediaCore::CLSID_CAVSUncompressedVideoFrame, NULL, CLSCTX_ALL, MediaCore::IID_IAVSUncompressedVideoFrame, (void**)&pInterface );
...@@ -1482,7 +1525,7 @@ private: ...@@ -1482,7 +1525,7 @@ private:
return false; return false;
pInterface = pMediaData; pInterface = pMediaData;
#endif
// pBufferPtr // pBufferPtr
for ( int nIndex = 0; nIndex < 4 * nWidth * nHeight; nIndex += 4 ) for ( int nIndex = 0; nIndex < 4 * nWidth * nHeight; nIndex += 4 )
...@@ -1498,16 +1541,22 @@ private: ...@@ -1498,16 +1541,22 @@ private:
CString wsTempFileName; CString wsTempFileName;
if ( !WmfOpenTempFile( &wsTempFileName, &pTempFile, _T("wb"), _T(".wmf0"), NULL ) ) if ( !WmfOpenTempFile( &wsTempFileName, &pTempFile, _T("wb"), _T(".wmf0"), NULL ) )
{ {
#ifndef DESKTOP_EDITOR_GRAPHICS
RELEASEINTERFACE( pInterface ); RELEASEINTERFACE( pInterface );
#endif
return false; return false;
} }
::fclose( pTempFile ); ::fclose( pTempFile );
#ifdef DESKTOP_EDITOR_GRAPHICS
oImage.SaveFile(std::wstring(wsTempFileName.GetString()), _CXIMAGE_FORMAT_PNG);
#else
BOOL bRet = ImageStudio::SaveImageAsPNG(pInterface, wsTempFileName); BOOL bRet = ImageStudio::SaveImageAsPNG(pInterface, wsTempFileName);
if (!bRet) if (!bRet)
return false; return false;
RELEASEINTERFACE( pInterface ); RELEASEINTERFACE( pInterface );
#endif
m_oBrush.TexturePath = wsTempFileName; m_oBrush.TexturePath = wsTempFileName;
m_oBrush.TextureMode = c_BrushTextureModeTile; m_oBrush.TextureMode = c_BrushTextureModeTile;
...@@ -1515,9 +1564,13 @@ private: ...@@ -1515,9 +1564,13 @@ private:
m_pRenderer->put_BrushTextureMode( m_oBrush.Type ); m_pRenderer->put_BrushTextureMode( m_oBrush.Type );
m_pRenderer->put_BrushType( m_oBrush.Type ); m_pRenderer->put_BrushType( m_oBrush.Type );
#ifdef DESKTOP_EDITOR_GRAPHICS
m_pRenderer->put_BrushTexturePath(m_oBrush.TexturePath);
#else
BSTR bsTexture = m_oBrush.TexturePath.AllocSysString(); BSTR bsTexture = m_oBrush.TexturePath.AllocSysString();
m_pRenderer->put_BrushTexturePath(bsTexture); m_pRenderer->put_BrushTexturePath(bsTexture);
::SysFreeString(bsTexture); ::SysFreeString(bsTexture);
#endif
//m_oBrush.SetTexturePath( wsTempFileName ); //m_oBrush.SetTexturePath( wsTempFileName );
//m_oBrush.SetTextureMode( 1 ); //m_oBrush.SetTextureMode( 1 );
...@@ -1667,7 +1720,8 @@ private: ...@@ -1667,7 +1720,8 @@ private:
return false; return false;
// ImageStudio // ImageStudio
//todo
#ifndef DESKTOP_EDITOR_GRAPHICS
USES_CONVERSION; USES_CONVERSION;
CStringW wsTempFileName = _T(""); CStringW wsTempFileName = _T("");
FILE *pTempFile = NULL; FILE *pTempFile = NULL;
...@@ -1687,6 +1741,7 @@ private: ...@@ -1687,6 +1741,7 @@ private:
//pTransform->GetResult( 0, &oVar ); //pTransform->GetResult( 0, &oVar );
::_wunlink( wsTempFileName.GetBuffer() ); ::_wunlink( wsTempFileName.GetBuffer() );
#endif
return false; return false;
...@@ -1930,13 +1985,18 @@ private: ...@@ -1930,13 +1985,18 @@ private:
} }
private: private:
#ifdef DESKTOP_EDITOR_GRAPHICS
IRenderer *m_pRenderer;
#else
IASCRenderer *m_pRenderer; IASCRenderer *m_pRenderer;
#endif
NSStructures::CPen m_oPen; NSStructures::CPen m_oPen;
NSStructures::CBrush m_oBrush; NSStructures::CBrush m_oBrush;
#ifndef DESKTOP_EDITOR_GRAPHICS
NSStructures::CShadow m_oShadow; NSStructures::CShadow m_oShadow;
NSStructures::CEdgeText m_oEdgeText; NSStructures::CEdgeText m_oEdgeText;
#endif
NSStructures::CFont m_oFont; NSStructures::CFont m_oFont;
......
#ifndef _WMF_TYPES_H_ #ifndef _WMF_TYPES_H_
#define _WMF_TYPES_H_ #define _WMF_TYPES_H_
#ifdef DESKTOP_EDITOR_GRAPHICS
// freetype
#include <ft2build.h>
#include FT_OUTLINE_H
//#include FT_SIZES_H
//#include FT_GLYPH_H
//#include FT_TRUETYPE_IDS_H
//#include FT_TRUETYPE_TABLES_H
//#include FT_XFREE86_H
//#include FT_ADVANCES_H
#endif
//--------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------
// //
......
This diff is collapsed.
...@@ -25,12 +25,13 @@ bool BinDocxRW::CDocxSerializer::saveToFile(CString& sSrcFileName, CString& sDst ...@@ -25,12 +25,13 @@ bool BinDocxRW::CDocxSerializer::saveToFile(CString& sSrcFileName, CString& sDst
CString mediaDir = path.GetDirectory() + _T("media\\"); CString mediaDir = path.GetDirectory() + _T("media\\");
NSDirectory::CreateDirectory(string2std_string(mediaDir)); NSDirectory::CreateDirectory(string2std_string(mediaDir));
DocWrapper::FontProcessor fp;
fp.setFontDir(m_sFontDir);
NSBinPptxRW::CDrawingConverter oDrawingConverter; NSBinPptxRW::CDrawingConverter oDrawingConverter;
oDrawingConverter.SetFontManager(fp.getFontManager2());
NSBinPptxRW::CBinaryFileWriter& oBufferedStream = *oDrawingConverter.m_pBinaryWriter; NSBinPptxRW::CBinaryFileWriter& oBufferedStream = *oDrawingConverter.m_pBinaryWriter;
#ifdef _WIN32 #ifdef _WIN32
DocWrapper::FontProcessor fp;
fp.setFontDir(m_sFontDir);
PPTXFile::IOfficeFontPicker* pFontPicker = NULL; PPTXFile::IOfficeFontPicker* pFontPicker = NULL;
CoCreateInstance(__uuidof(PPTXFile::COfficeFontPicker), NULL, CLSCTX_ALL, __uuidof(PPTXFile::IOfficeFontPicker), (void**)(&pFontPicker)); CoCreateInstance(__uuidof(PPTXFile::COfficeFontPicker), NULL, CLSCTX_ALL, __uuidof(PPTXFile::IOfficeFontPicker), (void**)(&pFontPicker));
BSTR bstrFontDir1 = m_sFontDir.AllocSysString(); BSTR bstrFontDir1 = m_sFontDir.AllocSysString();
......
...@@ -47,6 +47,9 @@ namespace DocWrapper { ...@@ -47,6 +47,9 @@ namespace DocWrapper {
ASCGraphics::IASCFontManager* getFontManager() { ASCGraphics::IASCFontManager* getFontManager() {
return fontManager; return fontManager;
} }
CFontManager* getFontManager2() {
return m_pFontManager;
}
private: private:
void initFontManager(); void initFontManager();
......
...@@ -789,9 +789,7 @@ CDrawingConverter::CDrawingConverter() ...@@ -789,9 +789,7 @@ CDrawingConverter::CDrawingConverter()
m_strFontDirectory = _T(""); m_strFontDirectory = _T("");
m_lNextId = 1; m_lNextId = 1;
m_lCurrentObjectTop = 0; m_lCurrentObjectTop = 0;
#ifdef AVS_USE_CONVERT_PPTX_TOCUSTOM_VML
m_pOOXToVMLRenderer = NULL; m_pOOXToVMLRenderer = NULL;
#endif
m_bIsUseConvertion2007 = TRUE; m_bIsUseConvertion2007 = TRUE;
m_pBinaryWriter = new NSBinPptxRW::CBinaryFileWriter(); m_pBinaryWriter = new NSBinPptxRW::CBinaryFileWriter();
m_pReader = new NSBinPptxRW::CBinaryFileReader(); m_pReader = new NSBinPptxRW::CBinaryFileReader();
...@@ -803,9 +801,7 @@ CDrawingConverter::CDrawingConverter() ...@@ -803,9 +801,7 @@ CDrawingConverter::CDrawingConverter()
CDrawingConverter::~CDrawingConverter() CDrawingConverter::~CDrawingConverter()
{ {
Clear(); Clear();
#ifdef AVS_USE_CONVERT_PPTX_TOCUSTOM_VML RELEASEOBJECT(m_pOOXToVMLRenderer);
RELEASEINTERFACE(m_pOOXToVMLRenderer);
#endif
RELEASEOBJECT(m_pBinaryWriter); RELEASEOBJECT(m_pBinaryWriter);
RELEASEOBJECT(m_pReader); RELEASEOBJECT(m_pReader);
RELEASEOBJECT(m_pImageManager); RELEASEOBJECT(m_pImageManager);
...@@ -3175,10 +3171,8 @@ HRESULT CDrawingConverter::SaveObject(LONG lStart, LONG lLength, CString& bsMain ...@@ -3175,10 +3171,8 @@ HRESULT CDrawingConverter::SaveObject(LONG lStart, LONG lLength, CString& bsMain
#if defined(BUILD_CONFIG_FULL_VERSION) && defined(AVS_USE_CONVERT_PPTX_TOCUSTOM_VML) #if defined(BUILD_CONFIG_FULL_VERSION) && defined(AVS_USE_CONVERT_PPTX_TOCUSTOM_VML)
if (NULL == m_pOOXToVMLRenderer) if (NULL == m_pOOXToVMLRenderer)
{ m_pOOXToVMLRenderer = new COOXToVMLGeometry();
CoCreateInstance(__uuidof(CAVSOOXToVMLGeometry), NULL, CLSCTX_ALL, __uuidof(IASCRenderer), (void**)&m_pOOXToVMLRenderer); oXmlWriter.m_pOOXToVMLRenderer = m_pOOXToVMLRenderer;
}
m_pOOXToVMLRenderer->QueryInterface(__uuidof(IASCRenderer), (void**)(&(oXmlWriter.m_pOOXToVMLRenderer)));
#endif #endif
BOOL bIsNeedConvert2007 = FALSE; BOOL bIsNeedConvert2007 = FALSE;
...@@ -3911,3 +3905,8 @@ HRESULT CDrawingConverter::SetCurrentRelsPath() ...@@ -3911,3 +3905,8 @@ HRESULT CDrawingConverter::SetCurrentRelsPath()
*m_pBinaryWriter->m_pCommonRels = pPair->m_value.smart_dynamic_cast<PPTX::FileContainer>(); *m_pBinaryWriter->m_pCommonRels = pPair->m_value.smart_dynamic_cast<PPTX::FileContainer>();
return S_OK; return S_OK;
} }
void CDrawingConverter::SetFontManager(CFontManager* pFontManager)
{
if(NULL != m_pBinaryWriter && NULL != m_pBinaryWriter->m_pCommon && NULL != m_pBinaryWriter->m_pCommon->m_pImageManager)
m_pBinaryWriter->m_pCommon->m_pImageManager->SetFontManager(pFontManager);
}
\ No newline at end of file
...@@ -7,9 +7,10 @@ ...@@ -7,9 +7,10 @@
#include "../Common/DocxFormat/Source/Base/Base.h" #include "../Common/DocxFormat/Source/Base/Base.h"
#include "../ASCPresentationEditor/OfficeDrawing/Shapes/BaseShape/PPTShape/PPTShapeEnum.h" #include "../ASCPresentationEditor/OfficeDrawing/Shapes/BaseShape/PPTShape/PPTShapeEnum.h"
__interface IASCRenderer; class IRenderer;
class CShape; class CShape;
class CPPTShape; class CPPTShape;
class CFontManager;
namespace XmlUtils namespace XmlUtils
{ {
class CXmlNode; class CXmlNode;
...@@ -153,10 +154,7 @@ namespace NSBinPptxRW ...@@ -153,10 +154,7 @@ namespace NSBinPptxRW
NSBinPptxRW::CImageManager2* m_pImageManager; NSBinPptxRW::CImageManager2* m_pImageManager;
NSBinPptxRW::CXmlWriter* m_pXmlWriter; NSBinPptxRW::CXmlWriter* m_pXmlWriter;
int m_nCurrentIndexObject; int m_nCurrentIndexObject;
//todo IRenderer* m_pOOXToVMLRenderer;
#ifdef AVS_USE_CONVERT_PPTX_TOCUSTOM_VML
IASCRenderer* m_pOOXToVMLRenderer;
#endif
BOOL m_bIsUseConvertion2007; BOOL m_bIsUseConvertion2007;
NSCommon::smart_ptr<PPTX::WrapperFile>* m_pTheme; NSCommon::smart_ptr<PPTX::WrapperFile>* m_pTheme;
...@@ -196,6 +194,8 @@ namespace NSBinPptxRW ...@@ -196,6 +194,8 @@ namespace NSBinPptxRW
STDMETHOD(SetAdditionalParam)(CString& ParamName, VARIANT ParamValue); STDMETHOD(SetAdditionalParam)(CString& ParamName, VARIANT ParamValue);
STDMETHOD(GetAdditionalParam)(CString& ParamName, VARIANT* ParamValue); STDMETHOD(GetAdditionalParam)(CString& ParamName, VARIANT* ParamValue);
public:
void SetFontManager(CFontManager* pFontManager);
protected: protected:
bool ParceObject(CString& strXml, CString** pMainProps); bool ParceObject(CString& strXml, CString** pMainProps);
void SendMainProps(CString& strMainProps, CString**& pMainProps); void SendMainProps(CString& strMainProps, CString**& pMainProps);
......
...@@ -12,7 +12,6 @@ typedef bool (*extract_to_directory)(void*, CString&, CString&); ...@@ -12,7 +12,6 @@ typedef bool (*extract_to_directory)(void*, CString&, CString&);
typedef bool (*compress_from_directory)(void*, CString&, CString&); typedef bool (*compress_from_directory)(void*, CString&, CString&);
typedef bool (*progress_operation)(void*, long, long); typedef bool (*progress_operation)(void*, long, long);
class CGdiPlusInit;
namespace PPTX namespace PPTX
{ {
class Folder; class Folder;
...@@ -35,7 +34,6 @@ private: ...@@ -35,7 +34,6 @@ private:
CString m_strFolderThemes; CString m_strFolderThemes;
CGdiPlusInit* m_pInit;
load_from_resource m_fCallbackResource; load_from_resource m_fCallbackResource;
extract_to_directory m_fCallbackExtract; extract_to_directory m_fCallbackExtract;
compress_from_directory m_fCallbackCompress; compress_from_directory m_fCallbackCompress;
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
#include "ASCOfficePPTXFile.h" #include "ASCOfficePPTXFile.h"
#include "PPTXFormat/PPTXEvent.h" #include "PPTXFormat/PPTXEvent.h"
#include "../../../../Common/GdiPlusEx.h"
#include <shellapi.h> #include <shellapi.h>
#include <shlobj.h> #include <shlobj.h>
...@@ -39,13 +38,10 @@ CPPTXFile::CPPTXFile(load_from_resource fCallbackResource, extract_to_directory ...@@ -39,13 +38,10 @@ CPPTXFile::CPPTXFile(load_from_resource fCallbackResource, extract_to_directory
//if (S_OK != CoCreateInstance(__uuidof(OfficeUtils::COfficeUtils), NULL, CLSCTX_INPROC_SERVER, __uuidof(OfficeUtils::IOfficeUtils),(void**)&m_pOfficeUtils)) //if (S_OK != CoCreateInstance(__uuidof(OfficeUtils::COfficeUtils), NULL, CLSCTX_INPROC_SERVER, __uuidof(OfficeUtils::IOfficeUtils),(void**)&m_pOfficeUtils))
// return S_FALSE; // return S_FALSE;
m_pInit = new CGdiPlusInit();
m_pInit->Init();
} }
CPPTXFile::~CPPTXFile() CPPTXFile::~CPPTXFile()
{ {
RELEASEOBJECT(m_pFolder); RELEASEOBJECT(m_pFolder);
RELEASEOBJECT(m_pInit);
} }
HRESULT CPPTXFile::LoadFromFile(BSTR sSrcFileName, BSTR sDstPath, BSTR sXMLOptions) HRESULT CPPTXFile::LoadFromFile(BSTR sSrcFileName, BSTR sDstPath, BSTR sXMLOptions)
{ {
......
This diff is collapsed.
This diff is collapsed.
...@@ -340,9 +340,7 @@ namespace PPTX ...@@ -340,9 +340,7 @@ namespace PPTX
m_geometry->SetParentPointer(pParent); m_geometry->SetParentPointer(pParent);
}; };
#ifdef AVS_USE_CONVERT_PPTX_TOCUSTOM_VML void ConvertToCustomVML(IRenderer* punkRenderer, CString& strPath, CString& strRect, LONG& lWidth, LONG& lHeight);
void ConvertToCustomVML(IASCRenderer* punkRenderer, CString& strPath, CString& strRect, LONG& lWidth, LONG& lHeight);
#endif
}; };
} // namespace Logic } // namespace Logic
} // namespace PPTX } // namespace PPTX
......
This diff is collapsed.
// stdafx.cpp : source file that includes just the standard includes
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
#define _BUILD_GRAPHICS_STRUCTURES_H_ #define _BUILD_GRAPHICS_STRUCTURES_H_
#include "../common/Array.h" #include "../common/Array.h"
#include "../graphics/aggplustypes.h"
#include <string> #include <string>
#include <stdlib.h> #include <stdlib.h>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment