Compare commits

..

4 Commits

Author SHA1 Message Date
cc31becec1 [x2t] Fix bug 39305
Fix String.ToString2 after f7a13e04d8
2018-10-12 16:39:01 +03:00
9b5f052c97 OdfFormatWriter - fix after testing 2018-10-11 17:57:45 +03:00
2017a8c692 OdfFormat - fix after testing 2018-10-10 19:29:31 +03:00
558c669fb6 Disable truetype fonts convertasion in html viewer 2018-10-10 15:58:26 +03:00
19 changed files with 171 additions and 91 deletions

View File

@ -465,6 +465,10 @@ std::wstring oox2odf_converter::Impl::convert_formula(const std::wstring & expr)
boost::wregex(L"(?!([a-zA-Z]+\\d*\\())(([a-zA-Z]+\\!)?\\$?[a-zA-Z]*\\$?\\d*(\\:\\$?[a-zA-Z]*\\$?\\d*){0,1})"),
&oox2odf_converter::Impl::replace_arguments, boost::match_default | boost::format_all);
//SUBTOTAL(109,Expense31[Amount])
XmlUtils::replace_all( res, L"[", L"KVADRATIN");
XmlUtils::replace_all( res, L"]", L"KVADRATOUT");
if (res1 == res)
{
XmlUtils::replace_all( res1, L"KAVYCHKA", L"\""); //IMCONJUGATE_emb.xlsx

View File

@ -838,12 +838,20 @@ void common_draw_docx_convert(oox::docx_conversion_context & Context, union_comm
}
if (!drawing->isInline)
{
drawing->relativeHeight = L"2";
drawing->behindDoc = L"0";
if (((drawing->styleWrap && drawing->styleWrap->get_type() == style_wrap::RunThrough) ||
!drawing->styleWrap) && styleRunThrough && styleRunThrough->get_type() == run_through::Background)
{
drawing->behindDoc = L"1";
if (!drawing->styleWrap)
drawing->styleWrap = style_wrap(style_wrap::RunThrough);
}
if (!drawing->styleWrap)
drawing->styleWrap = style_wrap(style_wrap::Parallel);//у опен офис и мс разные дефолты
drawing->relativeHeight = L"2";
drawing->behindDoc = L"0";
_CP_OPT(int) zIndex = attlists_.shape_with_text_and_styles_.common_shape_draw_attlist_.draw_z_index_;
if (zIndex)//порядок отрисовки объектов
@ -853,13 +861,6 @@ void common_draw_docx_convert(oox::docx_conversion_context & Context, union_comm
else
drawing->relativeHeight = std::to_wstring( 2 + *zIndex );
}
if (drawing->styleWrap && drawing->styleWrap->get_type() == style_wrap::RunThrough
&& styleRunThrough && styleRunThrough->get_type() == run_through::Background)
{
drawing-> behindDoc = L"1";
}
drawing->margin_rect[0] = GetMargin(graphicProperties, sideLeft);
drawing->margin_rect[1] = GetMargin(graphicProperties, sideTop);
drawing->margin_rect[2] = GetMargin(graphicProperties, sideRight);

View File

@ -103,6 +103,7 @@ void draw_shape::common_docx_convert(oox::docx_conversion_context & Context)
{
std::wstring href = fill.bitmap->xlink_href_;
fill.bitmap->rId = Context.get_mediaitems().add_or_find(href, oox::typeImage, fill.bitmap->isInternal, href);
fill.bitmap->name_space = L"w14";
}
std::wstringstream strm_fill, strm_ln;

View File

@ -96,7 +96,7 @@ HRESULT convert_single(std::wstring srcFileName)
Oox2Odf::Converter converter(srcTempPath, type, L"C:\\Windows\\Fonts", NULL);
std::wstring sPassword = L"password";
std::wstring sPassword;// = L"password";
converter.convert();
converter.write(dstTempPath, srcTempPath, sPassword, L"hiuh56f56tfy7g");

View File

@ -230,10 +230,11 @@ std::wstring odf_chart_context::Impl::convert_formula(std::wstring oox_formula)
else
{
//open office dont support defined names in chart formula
// 7501214.xlsx - частичное заполнение local-table
int col = -1, row = -1;
utils::parsing_ref( refs[0], col, row);
if (col < 0 && row < 0)
if (col < 0 && row < 0 && (odf_context_->type != SpreadsheetDocument))
{
local_table_enabled_ = true;
//find defined name ????
@ -1587,7 +1588,9 @@ void odf_chart_context::set_cash(std::wstring format, std::vector<std::wstring>
int col1 = -1, col2 = -1, row1 = -1, row2 = -1;
if (refs.size() < 1) return;
if (refs.size() < 1) return;
if (refs[0].empty()) return;
utils::parsing_ref( refs[0], col1, row1);
if (refs.size() > 1)
@ -1694,7 +1697,7 @@ int odf_chart_context::Impl::create_local_table_rows(int curr_row, ods_table_sta
add = false;
if (cells[i].row > curr_row + 1 && !header)
if (cells[i].row > curr_row + 1/* && !header*/)
{
office_element_ptr row_elm;

View File

@ -346,7 +346,7 @@ void odf_drawing_context::set_background_state(bool Val)
void odf_drawing_context::check_anchor()
{
return;
if ((impl_->is_footer_ || impl_->is_header_ || impl_->is_background_) && (impl_->anchor_settings_.run_through_) && (impl_->anchor_settings_.run_through_->get_type() == run_through::Background))
if ((/*impl_->is_footer_ || impl_->is_header_ ||*/ impl_->is_background_) && (impl_->anchor_settings_.run_through_) && (impl_->anchor_settings_.run_through_->get_type() == run_through::Background))
{
set_anchor(anchor_type::Char);
//подозрительно на подложку страницы
@ -1317,7 +1317,7 @@ void odf_drawing_context::set_no_fill()
switch(impl_->current_drawing_part_)
{
case Area:
if ((impl_->is_footer_ || impl_->is_header_ || impl_->is_background_) &&
if ((/*impl_->is_footer_ || impl_->is_header_ ||*/ impl_->is_background_) &&
(impl_->current_graphic_properties->common_draw_fill_attlist_.draw_fill_) &&
(impl_->current_graphic_properties->common_draw_fill_attlist_.draw_fill_->get_type() == draw_fill::bitmap))
{
@ -1367,7 +1367,7 @@ void odf_drawing_context::set_solid_fill(std::wstring hexColor)
//impl_->current_graphic_properties->common_background_color_attlist_.fo_background_color_ = color(hexColor); - default transparent
//последнее нужно - что если будут вводить текст - под текстом будет цвет фона (или он поменяется в полях текста)
if ((impl_->is_footer_ || impl_->is_header_ || impl_->is_background_) &&
if ((/*impl_->is_footer_ || impl_->is_header_ ||*/ impl_->is_background_) &&
(impl_->current_graphic_properties->common_draw_fill_attlist_.draw_fill_) &&
(impl_->current_graphic_properties->common_draw_fill_attlist_.draw_fill_->get_type() == draw_fill::bitmap))
{
@ -2391,7 +2391,7 @@ void odf_drawing_context::set_textarea_padding(_CP_OPT(double) & left, _CP_OPT(d
//------------------------------------------------------------------------------------------------------------------
void odf_drawing_context::start_image(std::wstring odf_path)
{
if (impl_->is_footer_ || impl_->is_header_ || impl_->is_background_)
if (/*impl_->is_footer_ || impl_->is_header_ ||*/ impl_->is_background_)//AstraIntlCaseStudyFinal0.docx
{
start_shape(142/*SimpleTypes::shapetypeRect*/);
start_bitmap_style();
@ -2514,7 +2514,10 @@ void odf_drawing_context::set_text_box_min_size(bool val)
if (impl_->current_graphic_properties)
{
impl_->current_graphic_properties->draw_auto_grow_height_ = true;
impl_->current_graphic_properties->draw_auto_grow_width_ = true;
//impl_->current_graphic_properties->draw_auto_grow_width_ = true; //Example_2.xlsx
impl_->current_graphic_properties->draw_fit_to_size_ = false;
impl_->current_graphic_properties->style_shrink_to_fit_ = false;
}
if (impl_->current_drawing_state_.elements_.empty()) return;
@ -2675,7 +2678,7 @@ void odf_drawing_context::set_text_box_parent_style(std::wstring style_name)
void odf_drawing_context::end_image()
{
if (impl_->is_footer_ || impl_->is_header_ || impl_->is_background_)
if (/*impl_->is_footer_ || impl_->is_header_ ||*/ impl_->is_background_)
{
end_bitmap_style();
end_shape();

View File

@ -80,11 +80,20 @@ std::wstring convert_date(const std::wstring & oox_date)
boost::gregorian::date date_ = boost::gregorian::date(1900, 1, 1) + boost::gregorian::date_duration(iDate-2);
////to for example, "1899-12-31T05:37:46.66569
std::wstring date_str = boost::lexical_cast<std::wstring>(date_.year())
std::wstring date_str;
try
{
date_str = boost::lexical_cast<std::wstring>(date_.year())
+ L"-" +
(date_.month() < 10 ? L"0": L"") + boost::lexical_cast<std::wstring>(date_.month().as_number())
+ L"-" +
(date_.day() < 10 ? L"0": L"") + boost::lexical_cast<std::wstring>(date_.day());
}
catch(...)
{
date_str = oox_date;
}
return date_str;
}
@ -471,21 +480,21 @@ void ods_table_state::set_row_default_cell_style(std::wstring & style_name)
office_element_ptr & ods_table_state::current_row_element()
{
if (rows_.size()>0)
if (false == rows_.empty())
return rows_.back().elm;
else
throw;
}
office_element_ptr & ods_table_state::current_cell_element()
{
if (cells_size_ >0)
if (cells_size_ > 0)
return cells_.back().elm;
else
throw;
}
ods_hyperlink_state & ods_table_state::current_hyperlink()
{
if ((cells_size_ >0 && hyperlinks_.size()>0) && (cells_.back().hyperlink_idx>=0) )
if ((cells_size_ >0 && !hyperlinks_.empty()) && (cells_.back().hyperlink_idx >= 0) )
{
return hyperlinks_[cells_.back().hyperlink_idx];
}

View File

@ -658,6 +658,7 @@ std::map<std::wstring, std::wstring> odt_conversion_context::parse_instr_options
void odt_conversion_context::add_field_instr(const std::wstring &instr)
{
if (current_fields.empty()) return;
current_fields.back().instrText += instr;
}
void odt_conversion_context::set_field_instr()
@ -824,7 +825,7 @@ void odt_conversion_context::set_field_instr()
}
void odt_conversion_context::start_field(bool in_span)
{
if (false == current_fields.empty() && current_fields.back().status == 0)
if (false == current_fields.empty() && current_fields.back().status == 0 && current_fields.back().instrText.empty() )
return; //start_field из sdt
_field_state field;

View File

@ -125,6 +125,7 @@ void graphic_format_properties::serialize(std::wostream & _Wostream ,const wchar
CP_XML_ATTR_OPT(L"draw:fit-to-size", draw_fit_to_size_);
CP_XML_ATTR_OPT(L"draw:fit-to-contour", draw_fit_to_contour_);
CP_XML_ATTR_OPT(L"draw:ole-draw-aspect", draw_ole_draw_aspect_);
CP_XML_ATTR_OPT(L"style:shrink-to-fit", style_shrink_to_fit_);
CP_XML_ATTR_OPT(L"draw:stroke", draw_stroke_);
CP_XML_ATTR_OPT(L"draw:stroke-dash", draw_stroke_dash_);

View File

@ -93,6 +93,7 @@ public:
_CP_OPT(odf_types::Bool) draw_auto_grow_height_;
_CP_OPT(odf_types::Bool) draw_auto_grow_width_;
_CP_OPT(odf_types::Bool) style_shrink_to_fit_;
_CP_OPT(odf_types::Bool) draw_fit_to_size_;
_CP_OPT(odf_types::Bool) draw_fit_to_contour_;
_CP_OPT(std::wstring) draw_wrap_influence_on_position_;

View File

@ -688,8 +688,8 @@ void OoxConverter::convert(PPTX::Logic::SpPr *oox_spPr, PPTX::Logic::ShapeStyle*
bool bLine = odf_context()->drawing_context()->isLineShape();
if (custGeom && !custGeom->cxnLst.empty())
bLine = true;
//if (custGeom && !custGeom->cxnLst.empty())
// bLine = true;
odf_context()->drawing_context()->start_area_properties();
{
@ -2293,7 +2293,7 @@ void OoxConverter::convert(PPTX::Logic::StyleRef *style_ref, int type)
if (index < 1000)
{
index -= 1;
if ((index >= 0) || (index < (int)theme->themeElements.fmtScheme.fillStyleLst.size()))
if (index >= 0 && index < (int)theme->themeElements.fmtScheme.fillStyleLst.size())
{
fill = &theme->themeElements.fmtScheme.fillStyleLst[index];
}
@ -2301,7 +2301,7 @@ void OoxConverter::convert(PPTX::Logic::StyleRef *style_ref, int type)
else if (index > 1000)
{
index -= 1001;
if ((index >= 0) || (index < (int)theme->themeElements.fmtScheme.bgFillStyleLst.size()))
if (index >= 0 && index < (int)theme->themeElements.fmtScheme.bgFillStyleLst.size())
{
fill = &theme->themeElements.fmtScheme.bgFillStyleLst[index];
}
@ -2312,15 +2312,15 @@ void OoxConverter::convert(PPTX::Logic::StyleRef *style_ref, int type)
else if (type == 2)
{
index -= 1;
if (index >= 0 || index < (int)theme->themeElements.fmtScheme.lnStyleLst.size())
if (index >= 0 && index < (int)theme->themeElements.fmtScheme.lnStyleLst.size())
{
convert(&theme->themeElements.fmtScheme.lnStyleLst[index], nARGB);
}
}
else if (type == 3)
else if (type == 3)
{
index -= 1;
if ((index >= 0) || (index < (int)theme->themeElements.fmtScheme.effectStyleLst.size()))
if (index >= 0 && index < (int)theme->themeElements.fmtScheme.effectStyleLst.size())
{
convert(&theme->themeElements.fmtScheme.effectStyleLst[index]);
}

View File

@ -483,9 +483,17 @@ void OoxConverter::convert(OOX::Vml::CFill *vml_fill)
odf_context()->drawing_context()->set_gradient_start(*sRgbColor1, no_set);
if (sRgbColor2)
odf_context()->drawing_context()->set_gradient_end(*sRgbColor2, no_set);
else
odf_context()->drawing_context()->set_gradient_end(L"#ffffff", no_set);
if (vml_fill->m_oAngle.IsInit())
{
odf_context()->drawing_context()->set_gradient_angle(vml_fill->m_oAngle->GetValue() + 90);
}
if (vml_fill->m_oFocusPosition.IsInit())
{
odf_context()->drawing_context()->set_gradient_center(vml_fill->m_oFocusPosition->GetX(), vml_fill->m_oFocusPosition->GetY());
}
odf_context()->drawing_context()->end_gradient_style();
}break;
@ -952,9 +960,9 @@ void OoxConverter::convert(OOX::Vml::CVmlCommonElements *vml_common)
delete oRgbColor;
}
}
for (std::vector<OOX::WritingElement*>::iterator it = vml_common->m_arrItems.begin(); it != vml_common->m_arrItems.end(); ++it)
for (size_t i = 0; i < vml_common->m_arrItems.size(); ++i)
{
convert(*it);
convert(vml_common->m_arrItems[i]);
}
if (vml_common->m_oFilled.IsInit() && vml_common->m_oFilled->GetValue() == SimpleTypes::booleanFalse)

View File

@ -1205,7 +1205,8 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_NumDataSource* val)
}
else if (val->m_numRef)
{
if (val->m_numRef->m_f)odf_context()->chart_context()->set_series_value_formula(*val->m_numRef->m_f);
if (val->m_numRef->m_f)
odf_context()->chart_context()->set_series_value_formula(*val->m_numRef->m_f);
convert(val->m_numRef->m_numCache, false, false);
}

View File

@ -3000,6 +3000,11 @@ void DocxConverter::convert(OOX::Drawing::CAnchor *oox_anchor)
odt_context->drawing_context()->set_wrap_style(odf_types::style_wrap::Parallel);
wrap_set = true;
}
else if (oox_anchor->m_oWrapNone.IsInit())
{
odt_context->drawing_context()->set_wrap_style(odf_types::style_wrap::None);
wrap_set = true;
}
else if (oox_anchor->m_oAllowOverlap.IsInit())
{
odt_context->drawing_context()->set_overlap(oox_anchor->m_oAllowOverlap->ToBool());
@ -4363,13 +4368,22 @@ bool DocxConverter::convert(OOX::Logic::CTableProperty *oox_table_pr, odf_writer
}
else if (oox_table_pr->m_oTblLayout.IsInit() && oox_table_pr->m_oTblLayout->m_oType.IsInit())
{
table_properties->table_format_properties_.common_horizontal_margin_attlist_.fo_margin_left_ = odf_types::length(0,odf_types::length::cm);
table_properties->table_format_properties_.common_horizontal_margin_attlist_.fo_margin_left_ = odf_types::length(0, odf_types::length::cm);
table_properties->table_format_properties_.table_align_ = odf_types::table_align(odf_types::table_align::Left);
}
//if(oox_table_pr->m_oJc.IsInit() && oox_table_pr->m_oJc->m_oVal.IsInit())
//{
//}
if(oox_table_pr->m_oJc.IsInit() && oox_table_pr->m_oJc->m_oVal.IsInit())
{
switch(oox_table_pr->m_oJc->m_oVal->GetValue())
{
case 0: table_properties->table_format_properties_.table_align_ = odf_types::table_align(odf_types::table_align::Center); break;
case 2:
case 3: table_properties->table_format_properties_.table_align_ = odf_types::table_align(odf_types::table_align::Left); break;
case 1:
case 4: table_properties->table_format_properties_.table_align_ = odf_types::table_align(odf_types::table_align::Right); break;
default: break;
}
}
//nullable<ComplexTypes::Word::COnOff2<SimpleTypes::onoffTrue> > m_oBidiVisual;
//nullable<ComplexTypes::Word::CShading > m_oShade;
//nullable<ComplexTypes::Word::std::wstring_ > m_oTblCaption;

View File

@ -1115,10 +1115,10 @@ void XlsxConverter::convert(OOX::Spreadsheet::CSheetViews *oox_sheet_views)
std::wstring ref(selection->m_oActiveCell.get());
odf_writer::utils::parsing_ref (ref, ActiveCellX, ActiveCellY);
if (ActiveCellX >= 0 && ActiveCellY >= 0)
if (ActiveCellX > 0 && ActiveCellY > 0)
{
ods_context->settings_context()->add_property(L"CursorPositionX", L"int", std::to_wstring(ActiveCellX));
ods_context->settings_context()->add_property(L"CursorPositionY", L"int", std::to_wstring(ActiveCellY));
ods_context->settings_context()->add_property(L"CursorPositionX", L"int", std::to_wstring(ActiveCellX - 1));
ods_context->settings_context()->add_property(L"CursorPositionY", L"int", std::to_wstring(ActiveCellY - 1));
}
}
if (selection->m_oSqref.IsInit())
@ -1983,16 +1983,37 @@ void XlsxConverter::convert(OOX::Spreadsheet::CCellAnchor *oox_anchor)
if (!oox_anchor) return;
//////////////////
if (oox_anchor->m_oFrom.IsInit() || oox_anchor->m_oTo.IsInit())
if (oox_anchor->m_oFrom.IsInit() || oox_anchor->m_oTo.IsInit() ||
oox_anchor->m_oPos.IsInit() || oox_anchor->m_oExt.IsInit())
{
oox_table_position from={}, to={};
convert(oox_anchor->m_oFrom.GetPointer(), &from);
convert(oox_anchor->m_oTo.GetPointer(), &to);
double x1 = 0, y1 = 0, x2 = 0, y2 = 0;
double x1=0, y1=0, x2=0, y2=0;
ods_context->current_table().convert_position(from, x1, y1);
ods_context->current_table().convert_position(to, x2, y2);
if (oox_anchor->m_oFrom.IsInit())
{
convert(oox_anchor->m_oFrom.GetPointer(), &from);
ods_context->current_table().convert_position(from, x1, y1);
}
else if (oox_anchor->m_oPos.IsInit())
{
if (oox_anchor->m_oPos->m_oX.IsInit())
x1 = oox_anchor->m_oPos->m_oX->GetValue();
if (oox_anchor->m_oPos->m_oY.IsInit())
y1 = oox_anchor->m_oPos->m_oY->GetValue();
}
if (oox_anchor->m_oTo.IsInit())
{
convert(oox_anchor->m_oTo.GetPointer(), &to);
ods_context->current_table().convert_position(to, x2, y2);
}
else if (oox_anchor->m_oExt.IsInit())
{
if (oox_anchor->m_oExt->m_oCx.IsInit())
x2 = x1 + oox_anchor->m_oExt->m_oCx->GetValue();
if (oox_anchor->m_oExt->m_oCy.IsInit())
y2 = y1 + oox_anchor->m_oExt->m_oCy->GetValue();
}
ods_context->drawing_context()->set_drawings_rect(x1, y1, x2 - x1, y2 - y1);
}

View File

@ -704,7 +704,7 @@ namespace ComplexTypes
std::wstring sResult;
if ( m_sVal.IsInit() )
sResult += XmlUtils::EncodeXmlString(m_sVal.get(), false);
sResult += m_sVal.get();
return sResult;
}

View File

@ -4106,10 +4106,16 @@ namespace SimpleTypes
void ReadValue_Rotation(std::wstring& sValue)
{
m_oValue.dValue = sValue.empty() ? 0 : _wtof(sValue.c_str() );
m_oValue.dValue = sValue.empty() ? 0 : _wtof(sValue.c_str() );
if (sValue.find(_T("fd")) != -1)
m_oValue.dValue /= 6000;
if (sValue.find(_T("fd")) != std::wstring::npos)
{
m_oValue.dValue /= 6000.;
}
else if (sValue.find(_T("f")) == sValue.length() - 1)
{
m_oValue.dValue /= 65536.;
}
}
void ReadValue_Double(std::wstring& sValue)

View File

@ -60,9 +60,12 @@ core_windows {
LIB_GRAPHICS_PRI_PATH = $$PWD/../..
FREETYPE_VERSION=2.5.2
INCLUDEPATH += \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/include \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/include \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/include \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/include/freetype \
$$LIB_GRAPHICS_PRI_PATH/cximage/jasper/include \
$$LIB_GRAPHICS_PRI_PATH/cximage/jpeg \
$$LIB_GRAPHICS_PRI_PATH/cximage/png \
@ -134,45 +137,46 @@ SOURCES += \
SOURCES += $$PWD/graphics_pri.cpp
SOURCES += $$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftbbox.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftgxval.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftlcdfil.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftmm.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftotval.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftpatent.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftpfr.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftsynth.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/fttype1.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftwinfnt.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftxf86.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/pcf/pcf.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/pfr/pfr.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/psaux/psaux.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/pshinter/pshinter.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/psnames/psmodule.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/raster/raster.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/sfnt/sfnt.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/truetype/truetype.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/type1/type1.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/cid/type1cid.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/type42/type42.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/winfonts/winfnt.c \
SOURCES += \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftbbox.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftgxval.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftlcdfil.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftmm.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftotval.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftpatent.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftpfr.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftsynth.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/fttype1.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftwinfnt.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftxf86.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/pcf/pcf.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/pfr/pfr.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/psaux/psaux.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/pshinter/pshinter.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/psnames/psmodule.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/raster/raster.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/sfnt/sfnt.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/truetype/truetype.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/type1/type1.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/cid/type1cid.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/type42/type42.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/winfonts/winfnt.c \
\
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/autofit/autofit.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/bdf/bdf.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/cff/cff.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftbase.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftbitmap.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/cache/ftcache.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftfstype.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftgasp.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftglyph.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/gzip/ftgzip.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftinit.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/lzw/ftlzw.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftstroke.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/base/ftsystem.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-2.5.2/src/smooth/smooth.c
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/autofit/autofit.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/bdf/bdf.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/cff/cff.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftbase.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftbitmap.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/cache/ftcache.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftfstype.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftgasp.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftglyph.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/gzip/ftgzip.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftinit.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/lzw/ftlzw.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftstroke.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/base/ftsystem.c \
$$LIB_GRAPHICS_PRI_PATH/freetype-$$FREETYPE_VERSION/src/smooth/smooth.c
SOURCES += \
$$LIB_GRAPHICS_PRI_PATH/cximage/jasper/base/jas_cm.c \

View File

@ -1143,6 +1143,8 @@ namespace NSHtmlRenderer
int symbolsCount = 0;
oCur.GenerateArray(symbols, symbolsCount);
// есть проблема с композитными глифами (буква ё). пока отключу конвертацию
lFontConverterFlag = 0;
oFontConverter.ToOTF(oCur.m_strFontPath, strTempFont, (unsigned int*)symbols, symbolsCount, sName, lFontConverterFlag); // TRUETYPE only
RELEASEARRAYOBJECTS(symbols);