'commit'
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -26,12 +26,8 @@
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 1,
|
||||
"SelectedChildIndex": 0,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
@@ -40,11 +36,15 @@
|
||||
"RelativeDocumentMoniker": "WordAddIn\\AiRibbon.cs",
|
||||
"ToolTip": "D:\\dsWork\\aiData\\WordAddIn\\WordAddIn\\AiRibbon.cs",
|
||||
"RelativeToolTip": "WordAddIn\\AiRibbon.cs",
|
||||
"ViewState": "AgIAACgAAAAAAAAAAAAAACgAAAAIAAAAAAAAAA==",
|
||||
"ViewState": "AgIAACgAAAAAAAAAAAAAACgAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-24T02:46:43.959Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
|
||||
@@ -26,12 +26,8 @@
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 1,
|
||||
"SelectedChildIndex": 0,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
@@ -40,11 +36,15 @@
|
||||
"RelativeDocumentMoniker": "WordAddIn\\AiRibbon.cs",
|
||||
"ToolTip": "D:\\dsWork\\aiData\\WordAddIn\\WordAddIn\\AiRibbon.cs",
|
||||
"RelativeToolTip": "WordAddIn\\AiRibbon.cs",
|
||||
"ViewState": "AgIAACgAAAAAAAAAAAAAACgAAAAIAAAAAAAAAA==",
|
||||
"ViewState": "AgIAACgAAAAAAAAAAAAAACgAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-24T02:46:43.959Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
|
||||
@@ -10,8 +10,9 @@ using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Office = Microsoft.Office.Core;
|
||||
using Word = Microsoft.Office.Interop.Word;
|
||||
|
||||
using WordAddIn.Properties; // 引用 Properties 命名空间
|
||||
using WordAddIn.Properties;
|
||||
using WordAddIn.Models;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace WordAddIn
|
||||
{
|
||||
@@ -23,7 +24,6 @@ namespace WordAddIn
|
||||
private static bool _isLoggedIn = false; // 登录状态 (静态变量,确保整个应用程序生命周期内有效)
|
||||
private string _documentContext = null; // 存储文档的全文分析上下文
|
||||
private string _referenceContext = null; // 存储外部参考文档内容
|
||||
private StyleProfile _styleProfile = null; // 存储文档的样式配置
|
||||
|
||||
public AiRibbon()
|
||||
{
|
||||
@@ -737,6 +737,122 @@ namespace WordAddIn
|
||||
}
|
||||
}
|
||||
|
||||
public void OnOutlineSettingClick(Office.IRibbonControl control)
|
||||
{
|
||||
if (!EnsureLoggedIn()) return;
|
||||
using (var form = new OutlineSettingsForm())
|
||||
{
|
||||
form.ShowDialog();
|
||||
}
|
||||
}
|
||||
|
||||
public async void OnCreateOutlineClick(Office.IRibbonControl control)
|
||||
{
|
||||
if (!EnsureLoggedIn()) return;
|
||||
|
||||
string topic = null;
|
||||
using (var form = new CreateOutlineForm())
|
||||
{
|
||||
if (form.ShowDialog() != DialogResult.OK) return;
|
||||
topic = form.Topic;
|
||||
}
|
||||
|
||||
LoadingForm loading = null;
|
||||
try
|
||||
{
|
||||
loading = new LoadingForm("AI 正在生成大纲,请稍候...");
|
||||
loading.Show();
|
||||
loading.Refresh();
|
||||
|
||||
var outline = await Task.Run(() => _aiService.GenerateOutline(topic));
|
||||
|
||||
if (outline == null || outline.Count == 0)
|
||||
{
|
||||
MessageBox.Show("生成大纲失败,请重试。");
|
||||
return;
|
||||
}
|
||||
|
||||
// Load config
|
||||
OutlineStyleConfig config = null;
|
||||
try
|
||||
{
|
||||
string json = Settings.Default.OutlineStyles;
|
||||
if (!string.IsNullOrEmpty(json))
|
||||
{
|
||||
config = JsonConvert.DeserializeObject<OutlineStyleConfig>(json);
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
if (config == null) config = new OutlineStyleConfig();
|
||||
|
||||
var selection = Globals.ThisAddIn.Application.Selection;
|
||||
|
||||
// Move to end of selection to avoid overwriting if just cursor
|
||||
selection.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
|
||||
|
||||
foreach (var item in outline)
|
||||
{
|
||||
// Type text
|
||||
selection.TypeText(item.Title);
|
||||
|
||||
// Get current paragraph
|
||||
Word.Paragraph p = selection.Paragraphs[1];
|
||||
|
||||
// 1. Apply Built-in Style
|
||||
try
|
||||
{
|
||||
switch (item.Level)
|
||||
{
|
||||
case 0: p.set_Style(Word.WdBuiltinStyle.wdStyleTitle); break;
|
||||
case 1: p.set_Style(Word.WdBuiltinStyle.wdStyleHeading1); break;
|
||||
case 2: p.set_Style(Word.WdBuiltinStyle.wdStyleHeading2); break;
|
||||
case 3: p.set_Style(Word.WdBuiltinStyle.wdStyleHeading3); break;
|
||||
default: p.set_Style(Word.WdBuiltinStyle.wdStyleNormal); break;
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
|
||||
// 2. Apply Custom Config
|
||||
TextStyle style = null;
|
||||
switch (item.Level)
|
||||
{
|
||||
case 0: style = config.MainTitle; break;
|
||||
case 1: style = config.Heading1; break;
|
||||
case 2: style = config.Heading2; break;
|
||||
case 3: style = config.Heading3; break;
|
||||
default: style = config.Heading3; break;
|
||||
}
|
||||
|
||||
if (style != null)
|
||||
{
|
||||
p.Range.Font.Name = style.FontName;
|
||||
p.Range.Font.Size = style.FontSize;
|
||||
p.Range.Font.Bold = style.IsBold ? 1 : 0;
|
||||
p.Range.Font.Color = Word.WdColor.wdColorBlack; // 强制设置为黑色
|
||||
|
||||
if (style.Alignment == 1) p.Format.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
|
||||
else if (style.Alignment == 2) p.Format.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
|
||||
else p.Format.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft;
|
||||
}
|
||||
|
||||
// New line for next item
|
||||
selection.TypeParagraph();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("创建大纲失败: " + ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (loading != null)
|
||||
{
|
||||
loading.CloseSafe();
|
||||
loading.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnSettingsClick(Office.IRibbonControl control)
|
||||
{
|
||||
MessageBox.Show("请在代码 AiService.cs 中配置您的 API Key。", "设置");
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
<tabs>
|
||||
<tab id="tabAiAssistant" label="AI助手">
|
||||
<group id="groupContent" label="内容创作">
|
||||
<button id="btnCreateOutline" label="创建大纲" size="large" onAction="OnCreateOutlineClick" imageMso="ViewOutlineView" />
|
||||
<button id="btnOutlineSetting" label="大纲配置" size="large" onAction="OnOutlineSettingClick" imageMso="ParagraphDialog" />
|
||||
<button id="btnReadFull" label="通读全文" size="large" onAction="OnReadFullClick" imageMso="FindDialog" />
|
||||
<button id="btnImportReference" label="补充背景" size="large" onAction="OnImportReferenceClick" imageMso="ImportTextFile" />
|
||||
<button id="btnReferenceGenerate" label="素材写作" size="large" onAction="OnReferenceGenerateClick" imageMso="ReviewCompareTwoVersions" />
|
||||
|
||||
@@ -131,6 +131,41 @@ namespace WordAddIn
|
||||
return await GetChatCompletion(messages);
|
||||
}
|
||||
|
||||
public async Task<List<OutlineItem>> GenerateOutline(string topic)
|
||||
{
|
||||
string systemPrompt = @"你是一个专业的文档大纲生成助手。请根据用户提供的主题或描述,生成一个结构化的文档大纲。
|
||||
要求包含:
|
||||
1. 主标题 (Level 0)
|
||||
2. 一级目录 (Level 1)
|
||||
3. 二级目录 (Level 2)
|
||||
4. 三级目录 (Level 3)
|
||||
|
||||
请只返回一个JSON数组,数组中的每个元素包含 'Title' (标题文本) 和 'Level' (整数层级,0-3)。
|
||||
例如:[{""Title"": ""关于人工智能的发展报告"", ""Level"": 0}, {""Title"": ""第一章 绪论"", ""Level"": 1}, {""Title"": ""1.1 研究背景"", ""Level"": 2}]
|
||||
请确保返回的是合法的JSON格式,不包含Markdown标记。";
|
||||
|
||||
var messages = new List<Message>
|
||||
{
|
||||
new Message { role = "system", content = systemPrompt },
|
||||
new Message { role = "user", content = topic }
|
||||
};
|
||||
|
||||
string jsonResponse = await GetChatCompletion(messages);
|
||||
|
||||
// 清理可能存在的 Markdown 代码块标记
|
||||
jsonResponse = jsonResponse.Replace("```json", "").Replace("```", "").Trim();
|
||||
|
||||
try
|
||||
{
|
||||
return JsonConvert.DeserializeObject<List<OutlineItem>>(jsonResponse);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("JSON Parsing Failed: " + ex.Message);
|
||||
return new List<OutlineItem>();
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<List<HeadingInfo>> AnalyzeStructure(string text)
|
||||
{
|
||||
string systemPrompt = @"你是一个文档格式专家。请分析用户提供的文档内容,识别出所有的标题及其对应的层级(1级、2级、3级...)。
|
||||
|
||||
@@ -1,120 +0,0 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using WordAddIn.Properties;
|
||||
|
||||
namespace WordAddIn
|
||||
{
|
||||
public class FormatOptionsForm : Form
|
||||
{
|
||||
public string SelectedFontName { get; private set; }
|
||||
public float SelectedFontSize { get; private set; }
|
||||
public float SelectedLineSpacing { get; private set; }
|
||||
|
||||
private ComboBox cmbFontName;
|
||||
private ComboBox cmbFontSize;
|
||||
private ComboBox cmbLineSpacing;
|
||||
private Button btnOk;
|
||||
private Button btnCancel;
|
||||
|
||||
public FormatOptionsForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
LoadSettings();
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.Text = "格式化设置";
|
||||
this.Size = new Size(350, 250);
|
||||
this.StartPosition = FormStartPosition.CenterScreen;
|
||||
this.FormBorderStyle = FormBorderStyle.FixedDialog;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
|
||||
int labelX = 30;
|
||||
int inputX = 120;
|
||||
int startY = 30;
|
||||
int gapY = 40;
|
||||
|
||||
// 1. 字体
|
||||
var lblFont = new Label { Text = "字体:", Location = new Point(labelX, startY + 5), AutoSize = true };
|
||||
cmbFontName = new ComboBox { Location = new Point(inputX, startY), Width = 150, DropDownStyle = ComboBoxStyle.DropDownList };
|
||||
// 简单添加几个常用中文字体
|
||||
cmbFontName.Items.AddRange(new object[] { "微软雅黑", "宋体", "黑体", "楷体", "Arial", "Times New Roman" });
|
||||
|
||||
// 2. 字号
|
||||
var lblSize = new Label { Text = "字号:", Location = new Point(labelX, startY + gapY + 5), AutoSize = true };
|
||||
cmbFontSize = new ComboBox { Location = new Point(inputX, startY + gapY), Width = 150, DropDownStyle = ComboBoxStyle.DropDownList };
|
||||
cmbFontSize.Items.AddRange(new object[] { "9", "10", "10.5", "11", "12", "14", "16", "18", "22", "24" });
|
||||
|
||||
// 3. 行间距
|
||||
var lblSpacing = new Label { Text = "行间距(倍):", Location = new Point(labelX, startY + gapY * 2 + 5), AutoSize = true };
|
||||
cmbLineSpacing = new ComboBox { Location = new Point(inputX, startY + gapY * 2), Width = 150, DropDownStyle = ComboBoxStyle.DropDownList };
|
||||
cmbLineSpacing.Items.AddRange(new object[] { "1.0", "1.25", "1.5", "2.0", "2.5", "3.0" });
|
||||
|
||||
// Buttons
|
||||
btnOk = new Button { Text = "确定", Location = new Point(130, 160), Width = 80, Height = 30, DialogResult = DialogResult.OK };
|
||||
btnOk.Click += BtnOk_Click;
|
||||
|
||||
btnCancel = new Button { Text = "取消", Location = new Point(220, 160), Width = 80, Height = 30, DialogResult = DialogResult.Cancel };
|
||||
|
||||
this.Controls.Add(lblFont);
|
||||
this.Controls.Add(cmbFontName);
|
||||
this.Controls.Add(lblSize);
|
||||
this.Controls.Add(cmbFontSize);
|
||||
this.Controls.Add(lblSpacing);
|
||||
this.Controls.Add(cmbLineSpacing);
|
||||
this.Controls.Add(btnOk);
|
||||
this.Controls.Add(btnCancel);
|
||||
|
||||
this.AcceptButton = btnOk;
|
||||
this.CancelButton = btnCancel;
|
||||
}
|
||||
|
||||
private void LoadSettings()
|
||||
{
|
||||
// 读取保存的设置,如果没有则使用默认值
|
||||
string fontName = Settings.Default.FormatFontName;
|
||||
float fontSize = Settings.Default.FormatFontSize;
|
||||
float lineSpacing = Settings.Default.FormatLineSpacing;
|
||||
|
||||
if (cmbFontName.Items.Contains(fontName))
|
||||
cmbFontName.SelectedItem = fontName;
|
||||
else
|
||||
cmbFontName.SelectedIndex = 0;
|
||||
|
||||
string sizeStr = fontSize.ToString();
|
||||
if (cmbFontSize.Items.Contains(sizeStr))
|
||||
cmbFontSize.SelectedItem = sizeStr;
|
||||
else
|
||||
cmbFontSize.SelectedItem = "12";
|
||||
|
||||
string spacingStr = lineSpacing.ToString();
|
||||
if (cmbLineSpacing.Items.Contains(spacingStr))
|
||||
cmbLineSpacing.SelectedItem = spacingStr;
|
||||
else
|
||||
cmbLineSpacing.SelectedItem = "1.5";
|
||||
}
|
||||
|
||||
private void BtnOk_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 保存设置
|
||||
if (cmbFontName.SelectedItem != null)
|
||||
Settings.Default.FormatFontName = cmbFontName.SelectedItem.ToString();
|
||||
|
||||
if (cmbFontSize.SelectedItem != null && float.TryParse(cmbFontSize.SelectedItem.ToString(), out float size))
|
||||
Settings.Default.FormatFontSize = size;
|
||||
|
||||
if (cmbLineSpacing.SelectedItem != null && float.TryParse(cmbLineSpacing.SelectedItem.ToString(), out float spacing))
|
||||
Settings.Default.FormatLineSpacing = spacing;
|
||||
|
||||
Settings.Default.Save();
|
||||
|
||||
// 更新属性供外部调用
|
||||
SelectedFontName = Settings.Default.FormatFontName;
|
||||
SelectedFontSize = Settings.Default.FormatFontSize;
|
||||
SelectedLineSpacing = Settings.Default.FormatLineSpacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -46,4 +46,27 @@ namespace WordAddIn.Models
|
||||
{
|
||||
public string url { get; set; }
|
||||
}
|
||||
|
||||
// Outline Models
|
||||
public class OutlineItem
|
||||
{
|
||||
public string Title { get; set; }
|
||||
public int Level { get; set; } // 0=MainTitle, 1=H1, 2=H2, 3=H3
|
||||
}
|
||||
|
||||
public class OutlineStyleConfig
|
||||
{
|
||||
public TextStyle MainTitle { get; set; } = new TextStyle { FontSize = 22, IsBold = true, FontName = "微软雅黑", Alignment = 1 }; // Center
|
||||
public TextStyle Heading1 { get; set; } = new TextStyle { FontSize = 16, IsBold = true, FontName = "黑体" };
|
||||
public TextStyle Heading2 { get; set; } = new TextStyle { FontSize = 14, IsBold = true, FontName = "黑体" };
|
||||
public TextStyle Heading3 { get; set; } = new TextStyle { FontSize = 12, IsBold = true, FontName = "宋体" };
|
||||
}
|
||||
|
||||
public class TextStyle
|
||||
{
|
||||
public string FontName { get; set; } = "宋体";
|
||||
public float FontSize { get; set; } = 12;
|
||||
public bool IsBold { get; set; } = false;
|
||||
public int Alignment { get; set; } = 0; // 0=Left, 1=Center, 2=Right
|
||||
}
|
||||
}
|
||||
|
||||
12
WordAddIn/WordAddIn/Properties/Settings.Designer.cs
generated
12
WordAddIn/WordAddIn/Properties/Settings.Designer.cs
generated
@@ -70,5 +70,17 @@ namespace WordAddIn.Properties {
|
||||
this["LastImageStyle"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string OutlineStyles {
|
||||
get {
|
||||
return ((string)(this["OutlineStyles"]));
|
||||
}
|
||||
set {
|
||||
this["OutlineStyles"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,5 +16,8 @@
|
||||
<Setting Name="LastImageStyle" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">写实摄影 (Photorealistic)</Value>
|
||||
</Setting>
|
||||
<Setting Name="OutlineStyles" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
|
||||
@@ -1,96 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Word = Microsoft.Office.Interop.Word;
|
||||
using Microsoft.Office.Interop.Word;
|
||||
|
||||
namespace WordAddIn
|
||||
{
|
||||
public class StyleProfile
|
||||
{
|
||||
public Dictionary<string, StyleAttributes> Styles { get; set; } = new Dictionary<string, StyleAttributes>();
|
||||
public string NumberingSchemeDescription { get; set; } // 描述编号规则,如 "一级标题使用一、,二级使用(一)"
|
||||
}
|
||||
|
||||
public class StyleAttributes
|
||||
{
|
||||
public string FontName { get; set; } // ASCII Font
|
||||
public string FontNameFarEast { get; set; } // Asian Font
|
||||
public float FontSize { get; set; }
|
||||
public int Color { get; set; }
|
||||
public int Bold { get; set; }
|
||||
public float LineSpacing { get; set; }
|
||||
public Word.WdLineSpacing LineSpacingRule { get; set; }
|
||||
public float FirstLineIndent { get; set; }
|
||||
public float SpaceBefore { get; set; }
|
||||
public float SpaceAfter { get; set; }
|
||||
public string StyleName { get; set; } // Word内部的样式名称
|
||||
}
|
||||
|
||||
public static class StyleAnalyzer
|
||||
{
|
||||
public static StyleProfile AnalyzeDocumentStyles(Document doc)
|
||||
{
|
||||
var profile = new StyleProfile();
|
||||
|
||||
// 定义我们需要关注的样式层级
|
||||
// wdStyleHeading1 = -2, Heading2 = -3, Heading3 = -4, Normal = -1
|
||||
var targets = new Dictionary<WdBuiltinStyle, string>
|
||||
{
|
||||
{ WdBuiltinStyle.wdStyleHeading1, "Heading 1" },
|
||||
{ WdBuiltinStyle.wdStyleHeading2, "Heading 2" },
|
||||
{ WdBuiltinStyle.wdStyleHeading3, "Heading 3" },
|
||||
{ WdBuiltinStyle.wdStyleNormal, "Normal" }
|
||||
};
|
||||
|
||||
foreach (var target in targets)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 获取文档中的样式定义
|
||||
Style style = doc.Styles[target.Key];
|
||||
|
||||
var attrs = new StyleAttributes
|
||||
{
|
||||
FontName = style.Font.Name,
|
||||
FontNameFarEast = style.Font.NameFarEast,
|
||||
FontSize = style.Font.Size,
|
||||
Color = (int)style.Font.Color,
|
||||
Bold = style.Font.Bold,
|
||||
StyleName = style.NameLocal, // 获取本地化名称,如 "标题 1"
|
||||
LineSpacing = style.ParagraphFormat.LineSpacing,
|
||||
LineSpacingRule = style.ParagraphFormat.LineSpacingRule,
|
||||
FirstLineIndent = style.ParagraphFormat.CharacterUnitFirstLineIndent > 0 ? style.ParagraphFormat.CharacterUnitFirstLineIndent : style.ParagraphFormat.FirstLineIndent,
|
||||
SpaceBefore = style.ParagraphFormat.SpaceBefore,
|
||||
SpaceAfter = style.ParagraphFormat.SpaceAfter
|
||||
};
|
||||
|
||||
profile.Styles[target.Value] = attrs;
|
||||
}
|
||||
catch
|
||||
{
|
||||
// 样式可能不存在
|
||||
}
|
||||
}
|
||||
|
||||
return profile;
|
||||
}
|
||||
|
||||
public static string GenerateStyleDescription(StyleProfile profile)
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
sb.AppendLine("文档排版规则:");
|
||||
|
||||
foreach (var kv in profile.Styles)
|
||||
{
|
||||
var s = kv.Value;
|
||||
string levelName = kv.Key == "Normal" ? "正文" : kv.Key.Replace("Heading ", "级标题");
|
||||
sb.AppendLine($"- {levelName}: 中文字体[{s.FontNameFarEast}], 英文字体[{s.FontName}], 大小[{s.FontSize}]");
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -225,16 +225,12 @@
|
||||
<Compile Include="ExpandOptionsForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FormatOptionsForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ImageOptionsForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ReferenceGeneratorForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="StyleAnalyzer.cs" />
|
||||
<Compile Include="LoginForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
@@ -244,6 +240,12 @@
|
||||
<Compile Include="AiService.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="CreateOutlineForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="OutlineSettingsForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="AiRibbon.xml" />
|
||||
<None Include="ThisAddIn.Designer.xml">
|
||||
<DependentUpon>ThisAddIn.cs</DependentUpon>
|
||||
|
||||
Binary file not shown.
@@ -166,14 +166,14 @@
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="WordAddIn.dll" size="88576">
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="WordAddIn.dll" size="90112">
|
||||
<assemblyIdentity name="WordAddIn" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>UfaMRUXaY5UnnT7MdvsYAO8ZpOP8TEHjaBY8tbnu7lA=</dsig:DigestValue>
|
||||
<dsig:DigestValue>+twUOyk3hKDGsqzQPUAqOQJEwzHYRY33n87+7HOnfig=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
@@ -200,4 +200,4 @@
|
||||
</vstov4:customizations>
|
||||
</vstav3:application>
|
||||
</vstav3:addIn>
|
||||
<publisherIdentity name="CN=DESKTOP-Q6H7B6L\Administrator" issuerKeyHash="42606c52715d5764c2f9dab5bee6dcd76cc7a67d" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>6ARPRBIXfvsxGG+s7eLh9omVJw9+d6u+WZ1MWHaFv9g=</DigestValue></Reference></SignedInfo><SignatureValue>lc7c7Ko4DjaT7/xRXqxQ2fw75HYlonmqxf5ZPHDZaSM5o+VXQe8ngHzBAnPrqV9OjS/qq2y7A9thSlCOIOK0A5nRaFldm+gbsG2ZAMawVau7zHAnPx+DSgiS09QuENpimg14k9UvSAQIeaQ2IomwDHtT/AcRQDm6nKGIlCIQXmU=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>23ghUI75yy8GcLhPT5yA+v2ssRfSW+chNqMI+pq5OAr7RXQJOt/+bHdoT9NoS9GQkvblc7ekoUNShIcN601ZZOPgAxkXaQS+La14Wp8GOwnM1qHNJwgla4VAIYjmCj3CUMXLsxspOFVZKRnB6/idYku4Gzhc7NjRBAwe8qWBXaE=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="d8bf8576584c9d59beab777e0f279589f6e1e2edac6f1831fb7e1712444f04e8" Description="" Url=""><as:assemblyIdentity name="WordAddIn.dll" version="1.0.0.0" publicKeyToken="06a92c46db516926" language="neutral" processorArchitecture="msil" type="win32" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=DESKTOP-Q6H7B6L\Administrator</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>v/TLe11MKFnBs0fYGMUK+rtaLVC8eIbxj2MA2r2imss=</DigestValue></Reference></SignedInfo><SignatureValue>Ow7xC42PXmaP6HJGnBlAJsrYoDDPA0pe5Kcj/G9EKx98/3iQtnC+sjo16MHcnrR96ksGJm6HGft41fthoalccDcd770dKF9lc6L0KqOVur5/Jyze2Dvw/bmObKCcDPzhxtciK+8XMtNxiN4YxQA0MQMtUGhcpY2XKAWyQIYenIs=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>23ghUI75yy8GcLhPT5yA+v2ssRfSW+chNqMI+pq5OAr7RXQJOt/+bHdoT9NoS9GQkvblc7ekoUNShIcN601ZZOPgAxkXaQS+La14Wp8GOwnM1qHNJwgla4VAIYjmCj3CUMXLsxspOFVZKRnB6/idYku4Gzhc7NjRBAwe8qWBXaE=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIICDTCCAXagAwIBAgIQJpSlsxfGbpRNgyjD5Q/yDjANBgkqhkiG9w0BAQsFADBFMUMwQQYDVQQDHjoARABFAFMASwBUAE8AUAAtAFEANgBIADcAQgA2AEwAXABBAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByMB4XDTI2MDEyNDAwMzYxNVoXDTI3MDEyNDA2MzYxNVowRTFDMEEGA1UEAx46AEQARQBTAEsAVABPAFAALQBRADYASAA3AEIANgBMAFwAQQBkAG0AaQBuAGkAcwB0AHIAYQB0AG8AcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA23ghUI75yy8GcLhPT5yA+v2ssRfSW+chNqMI+pq5OAr7RXQJOt/+bHdoT9NoS9GQkvblc7ekoUNShIcN601ZZOPgAxkXaQS+La14Wp8GOwnM1qHNJwgla4VAIYjmCj3CUMXLsxspOFVZKRnB6/idYku4Gzhc7NjRBAwe8qWBXaECAwEAATANBgkqhkiG9w0BAQsFAAOBgQC3GjWMhEFFrn9PGYrQVGNAaibG1sR/eRX3ZWNRjYLhiqbsdeHvm4CX/W0EWd9yZlbaej87XyeUbX+mC3q3yMFVPCRn/W65WYyBPbWTWmSfU9VLKKULAH6WqjS7CqEU3cQSuKcU6nYG4AJu2/FkQJaA82tr3pvcQD28HmOlDeNh0Q==</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>
|
||||
<publisherIdentity name="CN=DESKTOP-Q6H7B6L\Administrator" issuerKeyHash="42606c52715d5764c2f9dab5bee6dcd76cc7a67d" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>Czzez1ajncrcmDUKihHHVGzi3SI5kLLF/wxZIDDFIIw=</DigestValue></Reference></SignedInfo><SignatureValue>EjrIJ43qQo2EldJbNnATamzKEKTmSgFpoHKD2FjpPE/9SRvzNoGk4zVlVKmwChE6LrmtbTM2PzBlKgR81RFAaYb3W2xQ68E26Z0oDU156KZp/lMYBnOwXJgENnrGTrxZZoJ+pcsOJX52zjl4Z2YqlxnCxwnCL/qM3ryHnKEESI8=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>23ghUI75yy8GcLhPT5yA+v2ssRfSW+chNqMI+pq5OAr7RXQJOt/+bHdoT9NoS9GQkvblc7ekoUNShIcN601ZZOPgAxkXaQS+La14Wp8GOwnM1qHNJwgla4VAIYjmCj3CUMXLsxspOFVZKRnB6/idYku4Gzhc7NjRBAwe8qWBXaE=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="8c20c53020590cffc5b2903922dde26c54c7118a0a3598dcca9da356cfde3c0b" Description="" Url=""><as:assemblyIdentity name="WordAddIn.dll" version="1.0.0.0" publicKeyToken="06a92c46db516926" language="neutral" processorArchitecture="msil" type="win32" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=DESKTOP-Q6H7B6L\Administrator</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>mRyxepAcY8eK1+Hg6r+OQKAut6EzEIImoGwlscXbtWk=</DigestValue></Reference></SignedInfo><SignatureValue>BNQ0LxuA6RhLv16doQ6Ql1oAZDnYDCnA6dAX0mDgMUePL1+Rfnm6xBXXeBQUYmf4vyFIevfGsUAwtS94WGLgGZxKvBxa0I2kcLFsANS0qxqHEBgOhZ5E2UkyRXtzProocDpTpO0Oh5WzWgz/aTsfxRtAUT2yNegMClzRdlHFklY=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>23ghUI75yy8GcLhPT5yA+v2ssRfSW+chNqMI+pq5OAr7RXQJOt/+bHdoT9NoS9GQkvblc7ekoUNShIcN601ZZOPgAxkXaQS+La14Wp8GOwnM1qHNJwgla4VAIYjmCj3CUMXLsxspOFVZKRnB6/idYku4Gzhc7NjRBAwe8qWBXaE=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIICDTCCAXagAwIBAgIQJpSlsxfGbpRNgyjD5Q/yDjANBgkqhkiG9w0BAQsFADBFMUMwQQYDVQQDHjoARABFAFMASwBUAE8AUAAtAFEANgBIADcAQgA2AEwAXABBAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByMB4XDTI2MDEyNDAwMzYxNVoXDTI3MDEyNDA2MzYxNVowRTFDMEEGA1UEAx46AEQARQBTAEsAVABPAFAALQBRADYASAA3AEIANgBMAFwAQQBkAG0AaQBuAGkAcwB0AHIAYQB0AG8AcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA23ghUI75yy8GcLhPT5yA+v2ssRfSW+chNqMI+pq5OAr7RXQJOt/+bHdoT9NoS9GQkvblc7ekoUNShIcN601ZZOPgAxkXaQS+La14Wp8GOwnM1qHNJwgla4VAIYjmCj3CUMXLsxspOFVZKRnB6/idYku4Gzhc7NjRBAwe8qWBXaECAwEAATANBgkqhkiG9w0BAQsFAAOBgQC3GjWMhEFFrn9PGYrQVGNAaibG1sR/eRX3ZWNRjYLhiqbsdeHvm4CX/W0EWd9yZlbaej87XyeUbX+mC3q3yMFVPCRn/W65WYyBPbWTWmSfU9VLKKULAH6WqjS7CqEU3cQSuKcU6nYG4AJu2/FkQJaA82tr3pvcQD28HmOlDeNh0Q==</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>
|
||||
Binary file not shown.
@@ -14,8 +14,8 @@
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>Cy7n1QaBs9zvjHlZNLpWQeHMimrr7CoRNpQ6mYSMmgw=</dsig:DigestValue>
|
||||
<dsig:DigestValue>lGR+g0G3oRh6CYqn4BOwswtXYIPtDSPLISmW3/6m/B4=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<publisherIdentity name="CN=DESKTOP-Q6H7B6L\Administrator" issuerKeyHash="42606c52715d5764c2f9dab5bee6dcd76cc7a67d" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>ZFWmviVXbUoNNcTzjlF6CIAwgFjucuAe0uaxM3GynHY=</DigestValue></Reference></SignedInfo><SignatureValue>QsNzP/zBkv4DjAGj7OxFeO2+ULAJpFzHIQWvvZJ5we+j1FaKDwRRWfPxulWzuN8FufVJxBDfTP1u6P+AjcCXexiR4Z6FqsQIjp+srwZVS/s+5aqE+/g6sM467hj9EoaAT06G3UGd5zfS7jSrml0cixdgdxccDSKXMhrzRKLXaQk=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>23ghUI75yy8GcLhPT5yA+v2ssRfSW+chNqMI+pq5OAr7RXQJOt/+bHdoT9NoS9GQkvblc7ekoUNShIcN601ZZOPgAxkXaQS+La14Wp8GOwnM1qHNJwgla4VAIYjmCj3CUMXLsxspOFVZKRnB6/idYku4Gzhc7NjRBAwe8qWBXaE=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="769cb27133b1e6d21ee072ee58803080087a518ef3c4350d4a6d5725bea65564" Description="" Url=""><as:assemblyIdentity name="WordAddIn.vsto" version="1.0.0.0" publicKeyToken="06a92c46db516926" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=DESKTOP-Q6H7B6L\Administrator</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>IGWhRxMC2v3ue2XqINSJOZycFNAcbH/CGBZthW7V9BY=</DigestValue></Reference></SignedInfo><SignatureValue>KNH1p1S/yjcNQCG+fkNvmwbN0kZfwZcenBKArK8+E8ktY0Arv1JPWatVI/ZjnjDilPuSdYpkJr/dOWavuWaPwxyL+x5PoCIGTsq6uXlnTq/ylkqY8mesFYZk6fC7qfSH1zDo7sQljlmpd7NtPq4wzyG2HOGyxytfBw6Hg7TgJ0I=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>23ghUI75yy8GcLhPT5yA+v2ssRfSW+chNqMI+pq5OAr7RXQJOt/+bHdoT9NoS9GQkvblc7ekoUNShIcN601ZZOPgAxkXaQS+La14Wp8GOwnM1qHNJwgla4VAIYjmCj3CUMXLsxspOFVZKRnB6/idYku4Gzhc7NjRBAwe8qWBXaE=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIICDTCCAXagAwIBAgIQJpSlsxfGbpRNgyjD5Q/yDjANBgkqhkiG9w0BAQsFADBFMUMwQQYDVQQDHjoARABFAFMASwBUAE8AUAAtAFEANgBIADcAQgA2AEwAXABBAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByMB4XDTI2MDEyNDAwMzYxNVoXDTI3MDEyNDA2MzYxNVowRTFDMEEGA1UEAx46AEQARQBTAEsAVABPAFAALQBRADYASAA3AEIANgBMAFwAQQBkAG0AaQBuAGkAcwB0AHIAYQB0AG8AcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA23ghUI75yy8GcLhPT5yA+v2ssRfSW+chNqMI+pq5OAr7RXQJOt/+bHdoT9NoS9GQkvblc7ekoUNShIcN601ZZOPgAxkXaQS+La14Wp8GOwnM1qHNJwgla4VAIYjmCj3CUMXLsxspOFVZKRnB6/idYku4Gzhc7NjRBAwe8qWBXaECAwEAATANBgkqhkiG9w0BAQsFAAOBgQC3GjWMhEFFrn9PGYrQVGNAaibG1sR/eRX3ZWNRjYLhiqbsdeHvm4CX/W0EWd9yZlbaej87XyeUbX+mC3q3yMFVPCRn/W65WYyBPbWTWmSfU9VLKKULAH6WqjS7CqEU3cQSuKcU6nYG4AJu2/FkQJaA82tr3pvcQD28HmOlDeNh0Q==</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>
|
||||
<publisherIdentity name="CN=DESKTOP-Q6H7B6L\Administrator" issuerKeyHash="42606c52715d5764c2f9dab5bee6dcd76cc7a67d" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>iEFRnZU9D2CuwgoEUx12Fub+u5LGVopuy6gF4w0Ypmw=</DigestValue></Reference></SignedInfo><SignatureValue>bD/ev1Krz3V8Zujwd2WBrkPBzUVb4AbfI1GOxQCLHPGC4RmrUrCQmHEAKMoDIaYT6aNxokGccY+1uIanZA9RzYgLtIkHSPgO60hj/xDwQo/L7X/MgN6kyrcVpf4IivQxqMpC2guGEThoe7VlVPrcG1u2UFOsthLVcdVneHBw10s=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>23ghUI75yy8GcLhPT5yA+v2ssRfSW+chNqMI+pq5OAr7RXQJOt/+bHdoT9NoS9GQkvblc7ekoUNShIcN601ZZOPgAxkXaQS+La14Wp8GOwnM1qHNJwgla4VAIYjmCj3CUMXLsxspOFVZKRnB6/idYku4Gzhc7NjRBAwe8qWBXaE=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="6ca6180de305a8cb6e8a56c692bbfee616761d53040ac2ae600f3d959d514188" Description="" Url=""><as:assemblyIdentity name="WordAddIn.vsto" version="1.0.0.0" publicKeyToken="06a92c46db516926" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=DESKTOP-Q6H7B6L\Administrator</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>4A3DJErRH421ddNaDY5wUhU7rnuNYWOJ6Uw0CbjdQtE=</DigestValue></Reference></SignedInfo><SignatureValue>vrd8laleYqhCHvJEilCJMwBu1WXyuCICm1RySKI9KdKdcrV7F6Vuk+0H8uNDn3tyW6vKmUm4xHyjSUWHzjmpVP8SF6UpgHnCSy5MlVHsD+W2zwZpHp0RWmsa3l3xmA/R2ZIzWFH3lKc+Ris5DCWt6c95QpYrFTozHiI5tzGN11E=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>23ghUI75yy8GcLhPT5yA+v2ssRfSW+chNqMI+pq5OAr7RXQJOt/+bHdoT9NoS9GQkvblc7ekoUNShIcN601ZZOPgAxkXaQS+La14Wp8GOwnM1qHNJwgla4VAIYjmCj3CUMXLsxspOFVZKRnB6/idYku4Gzhc7NjRBAwe8qWBXaE=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIICDTCCAXagAwIBAgIQJpSlsxfGbpRNgyjD5Q/yDjANBgkqhkiG9w0BAQsFADBFMUMwQQYDVQQDHjoARABFAFMASwBUAE8AUAAtAFEANgBIADcAQgA2AEwAXABBAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByMB4XDTI2MDEyNDAwMzYxNVoXDTI3MDEyNDA2MzYxNVowRTFDMEEGA1UEAx46AEQARQBTAEsAVABPAFAALQBRADYASAA3AEIANgBMAFwAQQBkAG0AaQBuAGkAcwB0AHIAYQB0AG8AcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA23ghUI75yy8GcLhPT5yA+v2ssRfSW+chNqMI+pq5OAr7RXQJOt/+bHdoT9NoS9GQkvblc7ekoUNShIcN601ZZOPgAxkXaQS+La14Wp8GOwnM1qHNJwgla4VAIYjmCj3CUMXLsxspOFVZKRnB6/idYku4Gzhc7NjRBAwe8qWBXaECAwEAATANBgkqhkiG9w0BAQsFAAOBgQC3GjWMhEFFrn9PGYrQVGNAaibG1sR/eRX3ZWNRjYLhiqbsdeHvm4CX/W0EWd9yZlbaej87XyeUbX+mC3q3yMFVPCRn/W65WYyBPbWTWmSfU9VLKKULAH6WqjS7CqEU3cQSuKcU6nYG4AJu2/FkQJaA82tr3pvcQD28HmOlDeNh0Q==</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
b1dd600e6e5ec491b0bd8e58b71d496f8d22083cd1f3a16f9892bb70b2e31a3f
|
||||
0d64e77cb4bdacc7f0baf6ddf9ef2f438b5bde539b8038cdf17f2259249243fd
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user