Commit 37be95b8 authored by Ilya.Kirillov's avatar Ilya.Kirillov Committed by Alexander.Trofimov

Исправлен баг с рассчетом высоты пустых параграфов.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@55840 954022d7-b5bf-4e40-9824-e11837661b57
parent dae86550
...@@ -4085,13 +4085,36 @@ Paragraph.prototype = ...@@ -4085,13 +4085,36 @@ Paragraph.prototype =
{ {
var LastItem = ( true === PRS.End ? this.Content[this.Content.length - 1] : this.Content[this.Lines[CurLine].EndPos] ); var LastItem = ( true === PRS.End ? this.Content[this.Content.length - 1] : this.Content[this.Lines[CurLine].EndPos] );
if ( undefined !== LastItem ) if ( true === PRS.End )
{
// TODO: Как только переделаем para_End переделать тут
// Выставляем настройки для символа параграфа
var EndTextPr = this.Get_CompiledPr2(false).TextPr.Copy();
EndTextPr.Merge(this.TextPr.Value);
g_oTextMeasurer.SetTextPr( EndTextPr, this.Get_Theme());
g_oTextMeasurer.SetFontSlot( fontslot_ASCII );
// Запрашиваем текущие метрики шрифта, под TextAscent мы будем понимать ascent + linegap(которые записаны в шрифте)
var EndTextHeight = g_oTextMeasurer.GetHeight();
var EndTextDescent = Math.abs( g_oTextMeasurer.GetDescender() );
var EndTextAscent = EndTextHeight - EndTextDescent;
var EndTextAscent2 = g_oTextMeasurer.GetAscender();
PRS.LineTextAscent = EndTextAscent;
PRS.LineTextAscent2 = EndTextAscent2;
PRS.LineTextDescent = EndTextDescent;
PRS.LineAscent = EndTextAscent;
PRS.LineDescent = EndTextDescent;
}
else if ( undefined !== LastItem )
{ {
if ( PRS.LineTextAscent < LastItem.TextAscent ) if ( PRS.LineTextAscent < LastItem.TextAscent )
PRS.LineTextAscent = LastItem.TextAscent; PRS.LineTextAscent = LastItem.TextAscent;
if ( PRS.LineTextAscent2 < LastItem.TextAscent2 ) if ( PRS.LineTextAscent2 < LastItem.TextAscent2 )
LineTextAscent2 = LastItem.TextAscent2; PRS.LineTextAscent2 = LastItem.TextAscent2;
if ( PRS.LineTextDescent < LastItem.TextDescent ) if ( PRS.LineTextDescent < LastItem.TextDescent )
PRS.LineTextDescent = LastItem.TextDescent; PRS.LineTextDescent = LastItem.TextDescent;
......
...@@ -1177,7 +1177,6 @@ ParaRun.prototype = ...@@ -1177,7 +1177,6 @@ ParaRun.prototype =
var Pr = this.Get_CompiledPr(false); var Pr = this.Get_CompiledPr(false);
g_oTextMeasurer.SetTextPr( Pr, this.Paragraph.Get_Theme()); g_oTextMeasurer.SetTextPr( Pr, this.Paragraph.Get_Theme());
g_oTextMeasurer.SetFontSlot( fontslot_ASCII ); g_oTextMeasurer.SetFontSlot( fontslot_ASCII );
......
...@@ -12,6 +12,10 @@ ...@@ -12,6 +12,10 @@
// TODO: Несовсем правильно(всмысле не как в Word) обрабатывается верхнее поле ячеек: // TODO: Несовсем правильно(всмысле не как в Word) обрабатывается верхнее поле ячеек:
// особенно это проявляется в таблицах с ненулевым расстоянием между ячейками. // особенно это проявляется в таблицах с ненулевым расстоянием между ячейками.
// TODO: Оказалось, что параметр "не отрывать от следующего" влияет и на таблицы, если
// после параграфа с таким параметром идет таблица. (см. MSFT_FY11Q3_10Q.docx стр. 3)
var table_Selection_Cell = 0x00; // Селектим целыми ячейками var table_Selection_Cell = 0x00; // Селектим целыми ячейками
var table_Selection_Text = 0x01; // Селектим текст внутри текущей ячейки var table_Selection_Text = 0x01; // Селектим текст внутри текущей ячейки
......
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