DCSubtitle (DCinema/DCI) format now allows/remembers custom font size - thx Michal

git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@691 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
niksedk 2011-10-05 14:41:52 +00:00
parent 61e6c47fe5
commit 88e812091b

View File

@ -98,11 +98,12 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
" <IssueDate>" + date + "</IssueDate>" + Environment.NewLine +
" <Language>" + languageEnglishName + "</Language>" + Environment.NewLine +
" <LoadFont URI=\"Arial.ttf\" Id=\"Font1\"/>" + Environment.NewLine +
" <Font Color=\"FFFFFFFF\" Effect=\"outline\" EffectColor=\"FF000000\" Italic=\"no\" Underlined=\"no\" Script=\"normal\" Size=\"52\">" + Environment.NewLine +
" <Font Color=\"FFFFFFFF\" Effect=\"outline\" EffectColor=\"FF000000\" Italic=\"no\" Underlined=\"no\" Script=\"normal\" Size=\"42\">" + Environment.NewLine +
" </Font>" + Environment.NewLine +
"</DCSubtitle>";
string loadedFontId = "Font1";
int fontSize = 42;
XmlDocument xml = new XmlDocument();
xml.LoadXml(xmlStructure);
@ -143,6 +144,20 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
loadedFontId = null;
xml.DocumentElement.RemoveChild(xml.DocumentElement.SelectSingleNode("LoadFont"));
}
node = xmlHeader.DocumentElement.SelectSingleNode("Font");
if (node != null && node.Attributes["Size"] != null)
{
int temp;
if (int.TryParse(node.Attributes["Size"].Value, out temp))
{
if (temp > 4 && temp < 100)
{
fontSize = temp;
xml.DocumentElement.SelectSingleNode("Font").Attributes["Size"].Value = fontSize.ToString();
}
}
}
}
catch
{
@ -188,6 +203,9 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
string[] lines = p.Text.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
int vPos = 1 + lines.Length * 7;
int vPosFactor = (int)Math.Round(fontSize / 7.4);
vPos = (lines.Length * vPosFactor) - vPosFactor + 8; // always bottom margin 8
bool isItalic = false;
foreach (string line in lines)
{
@ -274,7 +292,7 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats
textNode.InnerXml = html.ToString();
subNode.AppendChild(textNode);
vPos -= 7;
vPos -= vPosFactor;
}
mainListFont.AppendChild(subNode);