мелкие правки по пакету
This commit is contained in:
parent
b59e0e09c2
commit
92f9e9f8e9
@ -1,6 +1,7 @@
|
|||||||
using DocumentFormat.OpenXml;
|
using DocumentFormat.OpenXml;
|
||||||
using DocumentFormat.OpenXml.Wordprocessing;
|
using DocumentFormat.OpenXml.Wordprocessing;
|
||||||
using System;
|
using System;
|
||||||
|
using ToolsOffice.Interfaces;
|
||||||
using ToolsOffice.Interfaces.Word.Models;
|
using ToolsOffice.Interfaces.Word.Models;
|
||||||
|
|
||||||
namespace ToolsOffice.Implements.WordOpenXML.Extensions
|
namespace ToolsOffice.Implements.WordOpenXML.Extensions
|
||||||
@ -8,6 +9,7 @@ namespace ToolsOffice.Implements.WordOpenXML.Extensions
|
|||||||
public static class WordDocumentExtension
|
public static class WordDocumentExtension
|
||||||
{
|
{
|
||||||
private static readonly int _coefToPoins = 567;
|
private static readonly int _coefToPoins = 567;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавление общих настроек документа
|
/// Добавление общих настроек документа
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -70,5 +72,16 @@ namespace ToolsOffice.Implements.WordOpenXML.Extensions
|
|||||||
|
|
||||||
body.AppendChild(properties);
|
body.AppendChild(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Получение шрифта из FontNames
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fn"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static (string Ascii, string HighAnsi, string ComplexScript) GetFontName(FontNames fn) => fn switch
|
||||||
|
{
|
||||||
|
FontNames.TimesNewRoman => ("Times New Roman", "Times New Roman", "Times New Roman"),
|
||||||
|
_ => default,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -2,7 +2,6 @@
|
|||||||
using DocumentFormat.OpenXml.Wordprocessing;
|
using DocumentFormat.OpenXml.Wordprocessing;
|
||||||
using System;
|
using System;
|
||||||
using ToolsModule.ManagmentExtension;
|
using ToolsModule.ManagmentExtension;
|
||||||
using ToolsOffice.Interfaces;
|
|
||||||
using ToolsOffice.Interfaces.Word.Models;
|
using ToolsOffice.Interfaces.Word.Models;
|
||||||
|
|
||||||
namespace ToolsOffice.Implements.WordOpenXML.Extensions
|
namespace ToolsOffice.Implements.WordOpenXML.Extensions
|
||||||
@ -96,7 +95,7 @@ namespace ToolsOffice.Implements.WordOpenXML.Extensions
|
|||||||
var paragraphMarkRunProperties = new ParagraphMarkRunProperties();
|
var paragraphMarkRunProperties = new ParagraphMarkRunProperties();
|
||||||
if (model.FontName.HasValue)
|
if (model.FontName.HasValue)
|
||||||
{
|
{
|
||||||
var font = GetFontName(model.FontName.Value);
|
var font = WordDocumentExtension.GetFontName(model.FontName.Value);
|
||||||
paragraphMarkRunProperties.AppendChild(new RunFonts
|
paragraphMarkRunProperties.AppendChild(new RunFonts
|
||||||
{
|
{
|
||||||
Ascii = new StringValue(font.Ascii),
|
Ascii = new StringValue(font.Ascii),
|
||||||
@ -138,37 +137,26 @@ namespace ToolsOffice.Implements.WordOpenXML.Extensions
|
|||||||
if (model.Text.IsNotEmpty())
|
if (model.Text.IsNotEmpty())
|
||||||
{
|
{
|
||||||
var text = new ModelWordText { Text = model.Text };
|
var text = new ModelWordText { Text = model.Text };
|
||||||
CheckRunProps(model, text);
|
SyncRunProps(model, text);
|
||||||
paragraph.AddRun(text);
|
paragraph.AddRun(text);
|
||||||
}
|
}
|
||||||
else if (model.WordTexts != null)
|
else if (model.WordTexts != null)
|
||||||
{
|
{
|
||||||
foreach (var text in model.WordTexts)
|
foreach (var text in model.WordTexts)
|
||||||
{
|
{
|
||||||
CheckRunProps(model, text);
|
SyncRunProps(model, text);
|
||||||
paragraph.AddRun(text);
|
paragraph.AddRun(text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return paragraph;
|
return paragraph;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Получение шрифта из FontNames
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="fn"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
private static (string Ascii, string HighAnsi, string ComplexScript) GetFontName(FontNames fn) => fn switch
|
|
||||||
{
|
|
||||||
FontNames.TimesNewRoman => ("Times New Roman", "Times New Roman", "Times New Roman"),
|
|
||||||
_ => default,
|
|
||||||
};
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Пеоедача параметров текста из параметров абзаца, если не заданы параметры текста
|
/// Пеоедача параметров текста из параметров абзаца, если не заданы параметры текста
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="paragraph"></param>
|
/// <param name="paragraph"></param>
|
||||||
/// <param name="run"></param>
|
/// <param name="run"></param>
|
||||||
private static void CheckRunProps(ModelWordParagraph paragraph, ModelWordText run)
|
private static void SyncRunProps(ModelWordParagraph paragraph, ModelWordText run)
|
||||||
{
|
{
|
||||||
if (run == null)
|
if (run == null)
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
using DocumentFormat.OpenXml;
|
using DocumentFormat.OpenXml;
|
||||||
using DocumentFormat.OpenXml.Wordprocessing;
|
using DocumentFormat.OpenXml.Wordprocessing;
|
||||||
using ToolsOffice.Interfaces;
|
|
||||||
using ToolsOffice.Interfaces.Word.Models;
|
using ToolsOffice.Interfaces.Word.Models;
|
||||||
|
|
||||||
namespace ToolsOffice.Implements.WordOpenXML.Extensions
|
namespace ToolsOffice.Implements.WordOpenXML.Extensions
|
||||||
@ -52,7 +51,7 @@ namespace ToolsOffice.Implements.WordOpenXML.Extensions
|
|||||||
var properties = new RunProperties();
|
var properties = new RunProperties();
|
||||||
if (model.FontName.HasValue)
|
if (model.FontName.HasValue)
|
||||||
{
|
{
|
||||||
var font = GetFontName(model.FontName.Value);
|
var font = WordDocumentExtension.GetFontName(model.FontName.Value);
|
||||||
properties.AppendChild(new RunFonts
|
properties.AppendChild(new RunFonts
|
||||||
{
|
{
|
||||||
Ascii = new StringValue(font.Ascii),
|
Ascii = new StringValue(font.Ascii),
|
||||||
@ -80,16 +79,5 @@ namespace ToolsOffice.Implements.WordOpenXML.Extensions
|
|||||||
run.AppendChild(properties);
|
run.AppendChild(properties);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Получение шрифта из FontNames
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="fn"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
private static (string Ascii, string HighAnsi, string ComplexScript) GetFontName(FontNames fn) => fn switch
|
|
||||||
{
|
|
||||||
FontNames.TimesNewRoman => ("Times New Roman", "Times New Roman", "Times New Roman"),
|
|
||||||
_ => default,
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -6,6 +6,11 @@ namespace ToolsOffice.Interfaces.Word
|
|||||||
{
|
{
|
||||||
public abstract class BuilderWordDocument
|
public abstract class BuilderWordDocument
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Создание документа с заголовком и таблицей
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="model"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public Stream CreateDocumentWithTable(ModelWordDocumentWithHeaderAndTable model)
|
public Stream CreateDocumentWithTable(ModelWordDocumentWithHeaderAndTable model)
|
||||||
{
|
{
|
||||||
if (model == null || model.Document == null || model.Header == null || model.Table == null)
|
if (model == null || model.Document == null || model.Header == null || model.Table == null)
|
||||||
|
@ -1,14 +1,23 @@
|
|||||||
namespace ToolsOffice.Interfaces.Word.Models.Cases
|
namespace ToolsOffice.Interfaces.Word.Models.Cases
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Модель для создания простого документа с шапкой и таблицей
|
/// Модель для создания простого документа с заголовком и таблицей
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class ModelWordDocumentWithHeaderAndTable
|
public class ModelWordDocumentWithHeaderAndTable
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Информация по документу
|
||||||
|
/// </summary>
|
||||||
public ModelWordDocument Document { get; set; }
|
public ModelWordDocument Document { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Заголовок
|
||||||
|
/// </summary>
|
||||||
public ModelWordParagraph Header { get; set; }
|
public ModelWordParagraph Header { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Таблица
|
||||||
|
/// </summary>
|
||||||
public ModelWordTable Table { get; set; }
|
public ModelWordTable Table { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -3,7 +3,10 @@ using System.Linq;
|
|||||||
|
|
||||||
namespace ToolsOffice.Interfaces.Word
|
namespace ToolsOffice.Interfaces.Word
|
||||||
{
|
{
|
||||||
public class PageSizes
|
/// <summary>
|
||||||
|
/// Размеры страниц документов (портретная ориентация)
|
||||||
|
/// </summary>
|
||||||
|
public class WordPageSizes
|
||||||
{
|
{
|
||||||
private static readonly
|
private static readonly
|
||||||
Dictionary<string, (double Height, double Width, double MarginBottom, double MarginTop, double MarginLeft, double MarginRigth, double MarginGutter, double Header, double Footer)> _sizes = new()
|
Dictionary<string, (double Height, double Width, double MarginBottom, double MarginTop, double MarginLeft, double MarginRigth, double MarginGutter, double Header, double Footer)> _sizes = new()
|
||||||
@ -17,7 +20,7 @@ namespace ToolsOffice.Interfaces.Word
|
|||||||
|
|
||||||
private readonly string _key;
|
private readonly string _key;
|
||||||
|
|
||||||
public PageSizes(string key)
|
public WordPageSizes(string key)
|
||||||
{
|
{
|
||||||
_hasKey = _sizes.ContainsKey(key);
|
_hasKey = _sizes.ContainsKey(key);
|
||||||
_key = key;
|
_key = key;
|
@ -149,7 +149,7 @@ namespace DepartmentBusinessLogic.BusinessLogics.GenericBusinessLogic
|
|||||||
rowIndex++;
|
rowIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
var pageSize = new PageSizes("А4");
|
var pageSize = new WordPageSizes("А4");
|
||||||
var docModel = new ModelWordDocumentWithHeaderAndTable
|
var docModel = new ModelWordDocumentWithHeaderAndTable
|
||||||
{
|
{
|
||||||
Document = new ModelWordDocument
|
Document = new ModelWordDocument
|
||||||
|
Loading…
Reference in New Issue
Block a user