update
@ -344,6 +344,12 @@
|
|||||||
<Compile Include="Controls\FormWebView.Designer.cs">
|
<Compile Include="Controls\FormWebView.Designer.cs">
|
||||||
<DependentUpon>FormWebView.cs</DependentUpon>
|
<DependentUpon>FormWebView.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Controls\MessageTips.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Controls\MessageTips.Designer.cs">
|
||||||
|
<DependentUpon>MessageTips.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Controls\ProofreadMainControl.cs">
|
<Compile Include="Controls\ProofreadMainControl.cs">
|
||||||
<SubType>UserControl</SubType>
|
<SubType>UserControl</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@ -405,6 +411,9 @@
|
|||||||
<EmbeddedResource Include="Controls\FormWebView.resx">
|
<EmbeddedResource Include="Controls\FormWebView.resx">
|
||||||
<DependentUpon>FormWebView.cs</DependentUpon>
|
<DependentUpon>FormWebView.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Controls\MessageTips.resx">
|
||||||
|
<DependentUpon>MessageTips.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Controls\ProofreadMainControl.resx">
|
<EmbeddedResource Include="Controls\ProofreadMainControl.resx">
|
||||||
<DependentUpon>ProofreadMainControl.cs</DependentUpon>
|
<DependentUpon>ProofreadMainControl.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
@ -501,6 +510,18 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="Resources\icon_close.png" />
|
<None Include="Resources\icon_close.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\logo.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\logo_wps.jpg" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\logo_no_text.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\logo_no_text_wps.jpg" />
|
||||||
|
</ItemGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||||
|
@ -136,7 +136,7 @@ namespace AIProofread
|
|||||||
Globals.ThisAddIn.ribbon.SetBtnStatus(key, status);
|
Globals.ThisAddIn.ribbon.SetBtnStatus(key, status);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showDialog(string message, string confirmText = "", string confirmAction = "")
|
public void ShowDialog(string message, string confirmText = "", string confirmAction = "")
|
||||||
{
|
{
|
||||||
Globals.ThisAddIn.ActiveDocument?.ShowDialog(message, confirmText, confirmAction);
|
Globals.ThisAddIn.ActiveDocument?.ShowDialog(message, confirmText, confirmAction);
|
||||||
}
|
}
|
||||||
@ -206,7 +206,7 @@ namespace AIProofread
|
|||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
showDialog("打开网页失败");
|
ShowDialog("打开网页失败");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -591,9 +591,14 @@ namespace AIProofread
|
|||||||
return InitContent(content, documentId, false);
|
return InitContent(content, documentId, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ShowMessage(string message,int closeDelay=1000)
|
||||||
|
{
|
||||||
|
//FormMessage.ShowMessage(message, closeDelay);
|
||||||
|
Globals.ThisAddIn.ActiveDocument?.ShowMessage(message, closeDelay);
|
||||||
|
}
|
||||||
public string ShowDialogMessage(string message)
|
public string ShowDialogMessage(string message)
|
||||||
{
|
{
|
||||||
var result = FormMessage.ShowMessage(message);
|
var result = FormMessage.ShowMessage(message, "确认",null);
|
||||||
if (result == DialogResult.Retry)
|
if (result == DialogResult.Retry)
|
||||||
{
|
{
|
||||||
return "retry";
|
return "retry";
|
||||||
|
@ -12,7 +12,7 @@ namespace AIProofread
|
|||||||
public class Config
|
public class Config
|
||||||
{
|
{
|
||||||
public static readonly string APP_NAME = "AI校对王";
|
public static readonly string APP_NAME = "AI校对王";
|
||||||
public static readonly string APP_VERSION = "2.0.1";
|
public static readonly string APP_VERSION = "2.0.2";
|
||||||
public static bool IS_WPS = false;
|
public static bool IS_WPS = false;
|
||||||
public static bool UpgradeForcedNotice = false;
|
public static bool UpgradeForcedNotice = false;
|
||||||
public static readonly string APP_BASE_DIR = AppDomain.CurrentDomain.BaseDirectory;
|
public static readonly string APP_BASE_DIR = AppDomain.CurrentDomain.BaseDirectory;
|
||||||
|
10
AIProofread/Controls/FormMessage.Designer.cs
generated
@ -44,7 +44,7 @@
|
|||||||
this.LblMeesage.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
this.LblMeesage.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
this.LblMeesage.Location = new System.Drawing.Point(30, 60);
|
this.LblMeesage.Location = new System.Drawing.Point(30, 60);
|
||||||
this.LblMeesage.Name = "LblMeesage";
|
this.LblMeesage.Name = "LblMeesage";
|
||||||
this.LblMeesage.Size = new System.Drawing.Size(320, 140);
|
this.LblMeesage.Size = new System.Drawing.Size(320, 70);
|
||||||
this.LblMeesage.TabIndex = 4;
|
this.LblMeesage.TabIndex = 4;
|
||||||
this.LblMeesage.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
this.LblMeesage.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
//
|
//
|
||||||
@ -70,6 +70,7 @@
|
|||||||
this.panel1.Name = "panel1";
|
this.panel1.Name = "panel1";
|
||||||
this.panel1.Size = new System.Drawing.Size(380, 46);
|
this.panel1.Size = new System.Drawing.Size(380, 46);
|
||||||
this.panel1.TabIndex = 3;
|
this.panel1.TabIndex = 3;
|
||||||
|
this.panel1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseDown);
|
||||||
//
|
//
|
||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
@ -81,6 +82,7 @@
|
|||||||
this.label1.Size = new System.Drawing.Size(74, 21);
|
this.label1.Size = new System.Drawing.Size(74, 21);
|
||||||
this.label1.TabIndex = 0;
|
this.label1.TabIndex = 0;
|
||||||
this.label1.Text = "温馨提示";
|
this.label1.Text = "温馨提示";
|
||||||
|
this.label1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.label1_MouseDown);
|
||||||
//
|
//
|
||||||
// BtnClose
|
// BtnClose
|
||||||
//
|
//
|
||||||
@ -96,7 +98,7 @@
|
|||||||
this.BtnClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
this.BtnClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||||
this.BtnClose.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
this.BtnClose.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
this.BtnClose.ForeColor = System.Drawing.Color.Black;
|
this.BtnClose.ForeColor = System.Drawing.Color.Black;
|
||||||
this.BtnClose.Location = new System.Drawing.Point(200, 214);
|
this.BtnClose.Location = new System.Drawing.Point(200, 150);
|
||||||
this.BtnClose.Name = "BtnClose";
|
this.BtnClose.Name = "BtnClose";
|
||||||
this.BtnClose.Size = new System.Drawing.Size(120, 44);
|
this.BtnClose.Size = new System.Drawing.Size(120, 44);
|
||||||
this.BtnClose.TabIndex = 2;
|
this.BtnClose.TabIndex = 2;
|
||||||
@ -116,7 +118,7 @@
|
|||||||
this.BtnConfirm.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
this.BtnConfirm.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||||
this.BtnConfirm.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
this.BtnConfirm.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
this.BtnConfirm.ForeColor = System.Drawing.Color.White;
|
this.BtnConfirm.ForeColor = System.Drawing.Color.White;
|
||||||
this.BtnConfirm.Location = new System.Drawing.Point(60, 214);
|
this.BtnConfirm.Location = new System.Drawing.Point(60, 150);
|
||||||
this.BtnConfirm.Name = "BtnConfirm";
|
this.BtnConfirm.Name = "BtnConfirm";
|
||||||
this.BtnConfirm.Size = new System.Drawing.Size(120, 44);
|
this.BtnConfirm.Size = new System.Drawing.Size(120, 44);
|
||||||
this.BtnConfirm.TabIndex = 1;
|
this.BtnConfirm.TabIndex = 1;
|
||||||
@ -129,7 +131,7 @@
|
|||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.BackColor = System.Drawing.Color.White;
|
this.BackColor = System.Drawing.Color.White;
|
||||||
this.ClientSize = new System.Drawing.Size(380, 286);
|
this.ClientSize = new System.Drawing.Size(380, 216);
|
||||||
this.Controls.Add(this.LblMeesage);
|
this.Controls.Add(this.LblMeesage);
|
||||||
this.Controls.Add(this.panel1);
|
this.Controls.Add(this.panel1);
|
||||||
this.Controls.Add(this.BtnClose);
|
this.Controls.Add(this.BtnClose);
|
||||||
|
@ -1,10 +1,24 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace AIProofread.Controls
|
namespace AIProofread.Controls
|
||||||
{
|
{
|
||||||
public partial class FormMessage : BaseWinForm
|
public partial class FormMessage : BaseWinForm
|
||||||
{
|
{
|
||||||
|
public const int WM_NCLBUTTONDOWN = 0xA1;
|
||||||
|
public const int HT_CAPTION = 0x2;
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern bool ReleaseCapture();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 初始化宽度
|
||||||
|
/// </summary>
|
||||||
|
private const int INIT_WIDTH = 380;
|
||||||
|
|
||||||
public FormMessage()
|
public FormMessage()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
@ -37,26 +51,46 @@ namespace AIProofread.Controls
|
|||||||
), BtnClose.Location.Y);
|
), BtnClose.Location.Y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 计算缩放
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="size"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private int ScaleSize(int size)
|
||||||
|
{
|
||||||
|
return (int)(size * this.Width * 1.0 / INIT_WIDTH);
|
||||||
|
}
|
||||||
|
|
||||||
private void ResetButtons()
|
private void ResetButtons()
|
||||||
{
|
{
|
||||||
BtnClose.Location = new System.Drawing.Point(200, BtnClose.Location.Y);
|
BtnClose.Location = new System.Drawing.Point(ScaleSize(200), BtnClose.Location.Y);
|
||||||
BtnConfirm.Location = new System.Drawing.Point(60, BtnConfirm.Location.Y);
|
BtnConfirm.Location = new System.Drawing.Point(ScaleSize(60), BtnConfirm.Location.Y);
|
||||||
BtnConfirm.Visible = true;
|
BtnConfirm.Visible = true;
|
||||||
BtnConfirm.Enabled = true;
|
BtnConfirm.Enabled = true;
|
||||||
}
|
}
|
||||||
|
public static FormMessage ShowMessage(string message, int closeDelay = 3000)
|
||||||
public static DialogResult ShowMessage(string message,string confirmText = "确认",string confirmAction = null)
|
{
|
||||||
|
FormMessage formMessage = new FormMessage();
|
||||||
|
formMessage.SetMessage(message);
|
||||||
|
formMessage.HideConfirm();
|
||||||
|
// 先置顶
|
||||||
|
formMessage.TopMost = true;
|
||||||
|
formMessage.Show();
|
||||||
|
return formMessage;
|
||||||
|
}
|
||||||
|
public static DialogResult ShowMessage(string message, string confirmText = "确认", string confirmAction = null)
|
||||||
{
|
{
|
||||||
FormMessage formMessage = new FormMessage();
|
FormMessage formMessage = new FormMessage();
|
||||||
formMessage.SetMessage(message);
|
formMessage.SetMessage(message);
|
||||||
formMessage.currentConfirmAction = confirmAction;
|
formMessage.currentConfirmAction = confirmAction;
|
||||||
|
|
||||||
if(string.IsNullOrEmpty(confirmText))
|
if (string.IsNullOrEmpty(confirmText))
|
||||||
{
|
{
|
||||||
formMessage.HideConfirm();
|
formMessage.HideConfirm();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
formMessage.BtnConfirm.Text = confirmText;
|
||||||
formMessage.ResetButtons();
|
formMessage.ResetButtons();
|
||||||
}
|
}
|
||||||
return formMessage.ShowDialog();
|
return formMessage.ShowDialog();
|
||||||
@ -81,5 +115,21 @@ namespace AIProofread.Controls
|
|||||||
{
|
{
|
||||||
this.Close();
|
this.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void HanleMouseDown()
|
||||||
|
{
|
||||||
|
ReleaseCapture();
|
||||||
|
SendMessage(this.Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void label1_MouseDown(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
HanleMouseDown();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void panel1_MouseDown(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
HanleMouseDown();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
46
AIProofread/Controls/MessageTips.Designer.cs
generated
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
namespace AIProofread.Controls
|
||||||
|
{
|
||||||
|
partial class MessageTips
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// MessageTips
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(483, 360);
|
||||||
|
this.Name = "MessageTips";
|
||||||
|
this.Text = "MessageTips";
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
20
AIProofread/Controls/MessageTips.cs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace AIProofread.Controls
|
||||||
|
{
|
||||||
|
public partial class MessageTips : Form
|
||||||
|
{
|
||||||
|
public MessageTips()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
AIProofread/Controls/MessageTips.resx
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
@ -115,6 +115,19 @@ namespace AIProofread.Model
|
|||||||
FormMessage.ShowMessage(message, confirmText, confirmAction);
|
FormMessage.ShowMessage(message, confirmText, confirmAction);
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
public void ShowMessage(string message, int closeDelay)
|
||||||
|
{
|
||||||
|
var msgForm = FormMessage.ShowMessage(message, closeDelay);
|
||||||
|
// n毫秒后自动关闭
|
||||||
|
System.Threading.Tasks.Task.Delay(closeDelay).ContinueWith(t =>
|
||||||
|
{
|
||||||
|
if(msgForm.IsDisposed) return;
|
||||||
|
TaskPane.Control.BeginInvoke(new Action(() =>
|
||||||
|
{
|
||||||
|
msgForm.Close();
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public void ShowLogin(string action)
|
public void ShowLogin(string action)
|
||||||
{
|
{
|
||||||
@ -589,6 +602,10 @@ namespace AIProofread.Model
|
|||||||
int index = 0;
|
int index = 0;
|
||||||
foreach (var item in correct.CorrectItems)
|
foreach (var item in correct.CorrectItems)
|
||||||
{
|
{
|
||||||
|
if (item.Origin == "不同变换角色" || item.Origin == "给与")
|
||||||
|
{
|
||||||
|
Console.WriteLine("", item.Id);
|
||||||
|
}
|
||||||
if (marks.ContainsKey(item.Id)) continue;
|
if (marks.ContainsKey(item.Id)) continue;
|
||||||
Logger.Log(string.Format("mark type {0} data {1}->{2}", item.Tag, item.Origin, item.Text));
|
Logger.Log(string.Format("mark type {0} data {1}->{2}", item.Tag, item.Origin, item.Text));
|
||||||
int _prev = prevOffset;
|
int _prev = prevOffset;
|
||||||
@ -607,7 +624,7 @@ namespace AIProofread.Model
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (item.Tag == "i")
|
if (item.Tag == "i")
|
||||||
{
|
{
|
||||||
insertMarks.Add(new InsertMarkData()
|
insertMarks.Add(new InsertMarkData()
|
||||||
{
|
{
|
||||||
Mark = mark,
|
Mark = mark,
|
||||||
|
40
AIProofread/Properties/Resources.Designer.cs
generated
@ -369,5 +369,45 @@ namespace AIProofread.Properties {
|
|||||||
return ((System.Drawing.Bitmap)(obj));
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap logo {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("logo", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap logo_no_text {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("logo_no_text", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap logo_no_text_wps {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("logo_no_text_wps", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap logo_wps {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("logo_wps", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -160,6 +160,9 @@
|
|||||||
<data name="icon-setting" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icon-setting" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icon-setting.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icon-setting.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="logo" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="icon-update" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icon-update" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icon-update.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icon-update.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
@ -181,6 +184,9 @@
|
|||||||
<data name="icon-export" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icon-export" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icon-export.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icon-export.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="icon-history" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icon-history.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="button_default" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="button_default" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\button_default.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\button_default.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
@ -190,6 +196,9 @@
|
|||||||
<data name="icon-refresh" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icon-refresh" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icon-refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icon-refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="logo_wps" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\logo_wps.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="icon-clear" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icon-clear" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icon-clear.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icon-clear.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
@ -202,13 +211,16 @@
|
|||||||
<data name="icon-logout" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icon-logout" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icon-logout.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icon-logout.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icon-history" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icon_close" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icon-history.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icon_close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icon-panel" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icon-panel" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icon-panel.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icon-panel.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icon_close" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="logo_no_text" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icon_close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\logo_no_text.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="logo_no_text_wps" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\logo_no_text_wps.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 948 B After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 835 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 942 B After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
AIProofread/Resources/logo.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
AIProofread/Resources/logo_no_text.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
BIN
AIProofread/Resources/logo_no_text_wps.jpg
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
AIProofread/Resources/logo_wps.jpg
Normal file
After Width: | Height: | Size: 4.5 KiB |
101
AIProofread/Ribbon1.Designer.cs
generated
@ -41,20 +41,22 @@ namespace AIProofread
|
|||||||
Microsoft.Office.Tools.Ribbon.RibbonDropDownItem ribbonDropDownItemImpl3 = this.Factory.CreateRibbonDropDownItem();
|
Microsoft.Office.Tools.Ribbon.RibbonDropDownItem ribbonDropDownItemImpl3 = this.Factory.CreateRibbonDropDownItem();
|
||||||
this.tabAIProofread = this.Factory.CreateRibbonTab();
|
this.tabAIProofread = this.Factory.CreateRibbonTab();
|
||||||
this.group1 = this.Factory.CreateRibbonGroup();
|
this.group1 = this.Factory.CreateRibbonGroup();
|
||||||
|
this.BtnLogo = this.Factory.CreateRibbonButton();
|
||||||
this.BtnProofreadAll = this.Factory.CreateRibbonButton();
|
this.BtnProofreadAll = this.Factory.CreateRibbonButton();
|
||||||
this.BtnExportProofreadResult = this.Factory.CreateRibbonButton();
|
this.BtnExportProofreadResult = this.Factory.CreateRibbonButton();
|
||||||
this.btnClear = this.Factory.CreateRibbonButton();
|
this.btnClear = this.Factory.CreateRibbonButton();
|
||||||
this.btnOpenLexicon = this.Factory.CreateRibbonButton();
|
this.btnOpenLexicon = this.Factory.CreateRibbonButton();
|
||||||
this.btnSetting = this.Factory.CreateRibbonButton();
|
this.btnSetting = this.Factory.CreateRibbonButton();
|
||||||
|
this.Group = this.Factory.CreateRibbonGroup();
|
||||||
|
this.ButtonSaveCache = this.Factory.CreateRibbonButton();
|
||||||
|
this.ButtonLoadCache = this.Factory.CreateRibbonButton();
|
||||||
|
this.grpOther = this.Factory.CreateRibbonGroup();
|
||||||
this.BtnGetContact = this.Factory.CreateRibbonButton();
|
this.BtnGetContact = this.Factory.CreateRibbonButton();
|
||||||
this.BtnUpdate = this.Factory.CreateRibbonButton();
|
this.BtnUpdate = this.Factory.CreateRibbonButton();
|
||||||
this.btnLogin = this.Factory.CreateRibbonButton();
|
this.btnLogin = this.Factory.CreateRibbonButton();
|
||||||
this.btnLogout = this.Factory.CreateRibbonButton();
|
this.btnLogout = this.Factory.CreateRibbonButton();
|
||||||
this.LblNickname = this.Factory.CreateRibbonLabel();
|
|
||||||
this.LblDate = this.Factory.CreateRibbonLabel();
|
this.LblDate = this.Factory.CreateRibbonLabel();
|
||||||
this.Group = this.Factory.CreateRibbonGroup();
|
this.LblNickname = this.Factory.CreateRibbonLabel();
|
||||||
this.ButtonSaveCache = this.Factory.CreateRibbonButton();
|
|
||||||
this.ButtonLoadCache = this.Factory.CreateRibbonButton();
|
|
||||||
this.group2 = this.Factory.CreateRibbonGroup();
|
this.group2 = this.Factory.CreateRibbonGroup();
|
||||||
this.BtnShowPanel = this.Factory.CreateRibbonButton();
|
this.BtnShowPanel = this.Factory.CreateRibbonButton();
|
||||||
this.grpDebug = this.Factory.CreateRibbonGroup();
|
this.grpDebug = this.Factory.CreateRibbonGroup();
|
||||||
@ -70,6 +72,7 @@ namespace AIProofread
|
|||||||
this.tabAIProofread.SuspendLayout();
|
this.tabAIProofread.SuspendLayout();
|
||||||
this.group1.SuspendLayout();
|
this.group1.SuspendLayout();
|
||||||
this.Group.SuspendLayout();
|
this.Group.SuspendLayout();
|
||||||
|
this.grpOther.SuspendLayout();
|
||||||
this.group2.SuspendLayout();
|
this.group2.SuspendLayout();
|
||||||
this.grpDebug.SuspendLayout();
|
this.grpDebug.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
@ -78,6 +81,7 @@ namespace AIProofread
|
|||||||
//
|
//
|
||||||
this.tabAIProofread.Groups.Add(this.group1);
|
this.tabAIProofread.Groups.Add(this.group1);
|
||||||
this.tabAIProofread.Groups.Add(this.Group);
|
this.tabAIProofread.Groups.Add(this.Group);
|
||||||
|
this.tabAIProofread.Groups.Add(this.grpOther);
|
||||||
this.tabAIProofread.Groups.Add(this.group2);
|
this.tabAIProofread.Groups.Add(this.group2);
|
||||||
this.tabAIProofread.Groups.Add(this.grpDebug);
|
this.tabAIProofread.Groups.Add(this.grpDebug);
|
||||||
this.tabAIProofread.Label = "AI校对王";
|
this.tabAIProofread.Label = "AI校对王";
|
||||||
@ -86,19 +90,22 @@ namespace AIProofread
|
|||||||
//
|
//
|
||||||
// group1
|
// group1
|
||||||
//
|
//
|
||||||
|
this.group1.Items.Add(this.BtnLogo);
|
||||||
this.group1.Items.Add(this.BtnProofreadAll);
|
this.group1.Items.Add(this.BtnProofreadAll);
|
||||||
this.group1.Items.Add(this.BtnExportProofreadResult);
|
this.group1.Items.Add(this.BtnExportProofreadResult);
|
||||||
this.group1.Items.Add(this.btnClear);
|
this.group1.Items.Add(this.btnClear);
|
||||||
this.group1.Items.Add(this.btnOpenLexicon);
|
this.group1.Items.Add(this.btnOpenLexicon);
|
||||||
this.group1.Items.Add(this.btnSetting);
|
this.group1.Items.Add(this.btnSetting);
|
||||||
this.group1.Items.Add(this.BtnGetContact);
|
|
||||||
this.group1.Items.Add(this.BtnUpdate);
|
|
||||||
this.group1.Items.Add(this.btnLogin);
|
|
||||||
this.group1.Items.Add(this.btnLogout);
|
|
||||||
this.group1.Items.Add(this.LblNickname);
|
|
||||||
this.group1.Items.Add(this.LblDate);
|
|
||||||
this.group1.Name = "group1";
|
this.group1.Name = "group1";
|
||||||
//
|
//
|
||||||
|
// BtnLogo
|
||||||
|
//
|
||||||
|
this.BtnLogo.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
|
||||||
|
this.BtnLogo.Image = global::AIProofread.Properties.Resources.logo_no_text;
|
||||||
|
this.BtnLogo.Label = "AI校对王 \r\n";
|
||||||
|
this.BtnLogo.Name = "BtnLogo";
|
||||||
|
this.BtnLogo.ShowImage = true;
|
||||||
|
//
|
||||||
// BtnProofreadAll
|
// BtnProofreadAll
|
||||||
//
|
//
|
||||||
this.BtnProofreadAll.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
|
this.BtnProofreadAll.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
|
||||||
@ -139,11 +146,45 @@ namespace AIProofread
|
|||||||
//
|
//
|
||||||
this.btnSetting.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
|
this.btnSetting.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
|
||||||
this.btnSetting.Image = global::AIProofread.Properties.Resources.icon_setting;
|
this.btnSetting.Image = global::AIProofread.Properties.Resources.icon_setting;
|
||||||
this.btnSetting.Label = "插件设置\r\n";
|
this.btnSetting.Label = "设置\r\n";
|
||||||
this.btnSetting.Name = "btnSetting";
|
this.btnSetting.Name = "btnSetting";
|
||||||
this.btnSetting.ShowImage = true;
|
this.btnSetting.ShowImage = true;
|
||||||
this.btnSetting.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btnSetting_Click);
|
this.btnSetting.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btnSetting_Click);
|
||||||
//
|
//
|
||||||
|
// Group
|
||||||
|
//
|
||||||
|
this.Group.Items.Add(this.ButtonSaveCache);
|
||||||
|
this.Group.Items.Add(this.ButtonLoadCache);
|
||||||
|
this.Group.Name = "Group";
|
||||||
|
//
|
||||||
|
// ButtonSaveCache
|
||||||
|
//
|
||||||
|
this.ButtonSaveCache.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
|
||||||
|
this.ButtonSaveCache.Image = global::AIProofread.Properties.Resources.icon_save;
|
||||||
|
this.ButtonSaveCache.Label = "保存进度\r\n";
|
||||||
|
this.ButtonSaveCache.Name = "ButtonSaveCache";
|
||||||
|
this.ButtonSaveCache.ShowImage = true;
|
||||||
|
this.ButtonSaveCache.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.ButtonSaveCache_Click);
|
||||||
|
//
|
||||||
|
// ButtonLoadCache
|
||||||
|
//
|
||||||
|
this.ButtonLoadCache.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
|
||||||
|
this.ButtonLoadCache.Image = global::AIProofread.Properties.Resources.icon_history;
|
||||||
|
this.ButtonLoadCache.Label = "加载进度\r\n";
|
||||||
|
this.ButtonLoadCache.Name = "ButtonLoadCache";
|
||||||
|
this.ButtonLoadCache.ShowImage = true;
|
||||||
|
this.ButtonLoadCache.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.ButtonLoadCache_Click);
|
||||||
|
//
|
||||||
|
// grpOther
|
||||||
|
//
|
||||||
|
this.grpOther.Items.Add(this.BtnGetContact);
|
||||||
|
this.grpOther.Items.Add(this.BtnUpdate);
|
||||||
|
this.grpOther.Items.Add(this.btnLogin);
|
||||||
|
this.grpOther.Items.Add(this.btnLogout);
|
||||||
|
this.grpOther.Items.Add(this.LblDate);
|
||||||
|
this.grpOther.Items.Add(this.LblNickname);
|
||||||
|
this.grpOther.Name = "grpOther";
|
||||||
|
//
|
||||||
// BtnGetContact
|
// BtnGetContact
|
||||||
//
|
//
|
||||||
this.BtnGetContact.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
|
this.BtnGetContact.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
|
||||||
@ -181,41 +222,17 @@ namespace AIProofread
|
|||||||
this.btnLogout.Visible = false;
|
this.btnLogout.Visible = false;
|
||||||
this.btnLogout.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btnLogout_Click);
|
this.btnLogout.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btnLogout_Click);
|
||||||
//
|
//
|
||||||
// LblNickname
|
|
||||||
//
|
|
||||||
this.LblNickname.Label = "xxx 已登录";
|
|
||||||
this.LblNickname.Name = "LblNickname";
|
|
||||||
this.LblNickname.Visible = false;
|
|
||||||
//
|
|
||||||
// LblDate
|
// LblDate
|
||||||
//
|
//
|
||||||
this.LblDate.Label = "过期时间:";
|
this.LblDate.Label = "过期时间:";
|
||||||
this.LblDate.Name = "LblDate";
|
this.LblDate.Name = "LblDate";
|
||||||
this.LblDate.Visible = false;
|
this.LblDate.Visible = false;
|
||||||
//
|
//
|
||||||
// Group
|
// LblNickname
|
||||||
//
|
//
|
||||||
this.Group.Items.Add(this.ButtonSaveCache);
|
this.LblNickname.Label = "xxx 已登录";
|
||||||
this.Group.Items.Add(this.ButtonLoadCache);
|
this.LblNickname.Name = "LblNickname";
|
||||||
this.Group.Name = "Group";
|
this.LblNickname.Visible = false;
|
||||||
//
|
|
||||||
// ButtonSaveCache
|
|
||||||
//
|
|
||||||
this.ButtonSaveCache.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
|
|
||||||
this.ButtonSaveCache.Image = global::AIProofread.Properties.Resources.icon_save;
|
|
||||||
this.ButtonSaveCache.Label = "手动保存数据\r\n";
|
|
||||||
this.ButtonSaveCache.Name = "ButtonSaveCache";
|
|
||||||
this.ButtonSaveCache.ShowImage = true;
|
|
||||||
this.ButtonSaveCache.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.ButtonSaveCache_Click);
|
|
||||||
//
|
|
||||||
// ButtonLoadCache
|
|
||||||
//
|
|
||||||
this.ButtonLoadCache.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
|
|
||||||
this.ButtonLoadCache.Image = global::AIProofread.Properties.Resources.icon_history;
|
|
||||||
this.ButtonLoadCache.Label = "追踪历史数据\r\n";
|
|
||||||
this.ButtonLoadCache.Name = "ButtonLoadCache";
|
|
||||||
this.ButtonLoadCache.ShowImage = true;
|
|
||||||
this.ButtonLoadCache.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.ButtonLoadCache_Click);
|
|
||||||
//
|
//
|
||||||
// group2
|
// group2
|
||||||
//
|
//
|
||||||
@ -278,7 +295,7 @@ namespace AIProofread
|
|||||||
//
|
//
|
||||||
// BtnTest
|
// BtnTest
|
||||||
//
|
//
|
||||||
this.BtnTest.Label = "打开dialog";
|
this.BtnTest.Label = "获取当前位置";
|
||||||
this.BtnTest.Name = "BtnTest";
|
this.BtnTest.Name = "BtnTest";
|
||||||
this.BtnTest.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.BtnTest_Click);
|
this.BtnTest.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.BtnTest_Click);
|
||||||
//
|
//
|
||||||
@ -317,6 +334,8 @@ namespace AIProofread
|
|||||||
this.group1.PerformLayout();
|
this.group1.PerformLayout();
|
||||||
this.Group.ResumeLayout(false);
|
this.Group.ResumeLayout(false);
|
||||||
this.Group.PerformLayout();
|
this.Group.PerformLayout();
|
||||||
|
this.grpOther.ResumeLayout(false);
|
||||||
|
this.grpOther.PerformLayout();
|
||||||
this.group2.ResumeLayout(false);
|
this.group2.ResumeLayout(false);
|
||||||
this.group2.PerformLayout();
|
this.group2.PerformLayout();
|
||||||
this.grpDebug.ResumeLayout(false);
|
this.grpDebug.ResumeLayout(false);
|
||||||
@ -355,6 +374,8 @@ namespace AIProofread
|
|||||||
internal Microsoft.Office.Tools.Ribbon.RibbonButton BtnExportProofreadResult;
|
internal Microsoft.Office.Tools.Ribbon.RibbonButton BtnExportProofreadResult;
|
||||||
internal Microsoft.Office.Tools.Ribbon.RibbonButton BtnShowVersion;
|
internal Microsoft.Office.Tools.Ribbon.RibbonButton BtnShowVersion;
|
||||||
internal Microsoft.Office.Tools.Ribbon.RibbonDropDown dropDown1;
|
internal Microsoft.Office.Tools.Ribbon.RibbonDropDown dropDown1;
|
||||||
|
internal Microsoft.Office.Tools.Ribbon.RibbonGroup grpOther;
|
||||||
|
internal Microsoft.Office.Tools.Ribbon.RibbonButton BtnLogo;
|
||||||
}
|
}
|
||||||
|
|
||||||
partial class ThisRibbonCollection
|
partial class ThisRibbonCollection
|
||||||
|
@ -10,6 +10,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using AIProofread.core;
|
using AIProofread.core;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using AIProofread.Properties;
|
||||||
|
|
||||||
namespace AIProofread
|
namespace AIProofread
|
||||||
{
|
{
|
||||||
@ -75,6 +76,7 @@ namespace AIProofread
|
|||||||
public void InitWPS()
|
public void InitWPS()
|
||||||
{
|
{
|
||||||
IS_WPS = true;
|
IS_WPS = true;
|
||||||
|
|
||||||
BtnProofreadAll.Image = AIProofread.Properties.Resources.icon_proofread_wps;
|
BtnProofreadAll.Image = AIProofread.Properties.Resources.icon_proofread_wps;
|
||||||
btnClear.Image = AIProofread.Properties.Resources.icon_clear_wps;
|
btnClear.Image = AIProofread.Properties.Resources.icon_clear_wps;
|
||||||
btnOpenLexicon.Image = AIProofread.Properties.Resources.icon_book_wps;
|
btnOpenLexicon.Image = AIProofread.Properties.Resources.icon_book_wps;
|
||||||
@ -90,6 +92,7 @@ namespace AIProofread
|
|||||||
BtnShowPanel.Image = AIProofread.Properties.Resources.icon_panel_wps;
|
BtnShowPanel.Image = AIProofread.Properties.Resources.icon_panel_wps;
|
||||||
// 导出校对结果
|
// 导出校对结果
|
||||||
BtnExportProofreadResult.Image = AIProofread.Properties.Resources.icon_export_wps;
|
BtnExportProofreadResult.Image = AIProofread.Properties.Resources.icon_export_wps;
|
||||||
|
BtnLogo.Image = Resources.logo_no_text_wps;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ProcessLoginInfo(Userinfo userinfo)
|
public void ProcessLoginInfo(Userinfo userinfo)
|
||||||
@ -186,12 +189,13 @@ namespace AIProofread
|
|||||||
private void btnClear_Click(object sender, RibbonControlEventArgs e)
|
private void btnClear_Click(object sender, RibbonControlEventArgs e)
|
||||||
{
|
{
|
||||||
//DocumentUtil.ClearProofreadMarks();
|
//DocumentUtil.ClearProofreadMarks();
|
||||||
var result = MessageBox.Show("请确认是否清除此文档的所有校对标注?", "提示", MessageBoxButtons.OKCancel);
|
|
||||||
if (result == DialogResult.OK)
|
Globals.ThisAddIn.ActiveDocument.ShowDialog("请确认是否清除此文档的所有校对标注?", "确定", "clear-tips");
|
||||||
{
|
//if (result == DialogResult.OK)
|
||||||
//Bridge.bridge.clearAllProofreadMark(null);
|
//{
|
||||||
Globals.ThisAddIn.ClearAllProofreadMark();
|
// //Bridge.bridge.clearAllProofreadMark(null);
|
||||||
}
|
// Globals.ThisAddIn.ClearAllProofreadMark();
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnShowPane_Click(object sender, RibbonControlEventArgs e)
|
private void btnShowPane_Click(object sender, RibbonControlEventArgs e)
|
||||||
@ -473,8 +477,39 @@ namespace AIProofread
|
|||||||
// 获取当前系统时间戳
|
// 获取当前系统时间戳
|
||||||
//int time = (int)(DateTime.Now.Ticks / 10000000);
|
//int time = (int)(DateTime.Now.Ticks / 10000000);
|
||||||
//BtnTest.Label = "测试按钮" + time;
|
//BtnTest.Label = "测试按钮" + time;
|
||||||
var result = MessageBox.Show("Test", "xxx");
|
//var result = MessageBox.Show("Test", "xxx");
|
||||||
|
//Globals.ThisAddIn.Application.
|
||||||
|
var app = Globals.ThisAddIn.Application;
|
||||||
|
var selection = app.Selection;
|
||||||
|
var range = selection.Range;
|
||||||
|
// 获取所在页
|
||||||
|
var pageNumber = GetIndexPageNumber(range);
|
||||||
|
// 获取所在行
|
||||||
|
var rowNumber = range.get_Information(WdInformation.wdFirstCharacterLineNumber);
|
||||||
|
|
||||||
|
int paragraphNumber = 0;
|
||||||
|
if (range.Paragraphs.Count > 0)
|
||||||
|
{
|
||||||
|
// 获取当前文本在文档的段落数
|
||||||
|
var currentParagraph = range.Paragraphs.First;
|
||||||
|
var currentParagraphStart = currentParagraph.Range.Start;
|
||||||
|
var allParagraphs = app.ActiveDocument.Paragraphs;
|
||||||
|
for (var i = 1; i <= allParagraphs.Count; i++)
|
||||||
|
{
|
||||||
|
var paragraph = allParagraphs[i];
|
||||||
|
var paragraphStart = paragraph.Range.Start;
|
||||||
|
if (paragraphStart > currentParagraphStart)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (currentParagraphStart == paragraphStart || paragraph == currentParagraph)
|
||||||
|
{
|
||||||
|
paragraphNumber = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MessageBox.Show($"当前页:{pageNumber}, 行:{rowNumber}, 段落:{paragraphNumber}");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ButtonSaveCache_Click(object sender, RibbonControlEventArgs e)
|
private void ButtonSaveCache_Click(object sender, RibbonControlEventArgs e)
|
||||||
|
@ -505,12 +505,21 @@ namespace AIProofread
|
|||||||
public void ClearAllProofreadMark()
|
public void ClearAllProofreadMark()
|
||||||
{
|
{
|
||||||
ActiveDocument?.ClearAllProofreadMark();
|
ActiveDocument?.ClearAllProofreadMark();
|
||||||
Globals.ThisAddIn.SendMessageToWeb("clear-tips", null);
|
//Globals.ThisAddIn.SendMessageToWeb("clear-tips", null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ShowDialog(string message, string confirmText, string confirmAction)
|
||||||
|
{
|
||||||
|
ActiveDocument?.ShowDialog(message, confirmText, confirmAction);
|
||||||
|
}
|
||||||
|
public void ShowMessage(string message, int closeDelay)
|
||||||
|
{
|
||||||
|
ActiveDocument?.ShowMessage(message, closeDelay);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//public string LoadCacheByPath()
|
//public string LoadCacheByPath()
|
||||||
//{
|
//{
|
||||||
|
|
||||||
//}
|
//}
|
||||||
|
|
||||||
@ -526,7 +535,7 @@ namespace AIProofread
|
|||||||
/// Required method for Designer support - do not modify
|
/// Required method for Designer support - do not modify
|
||||||
/// the contents of this method with the code editor.
|
/// the contents of this method with the code editor.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void InternalStartup()
|
private void InternalStartup()
|
||||||
{
|
{
|
||||||
this.Startup += new System.EventHandler(ThisAddIn_Startup);
|
this.Startup += new System.EventHandler(ThisAddIn_Startup);
|
||||||
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
|
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
|
||||||
|
@ -4,6 +4,7 @@ using System.Linq;
|
|||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace AIProofread.Util
|
namespace AIProofread.Util
|
||||||
{
|
{
|
||||||
@ -28,5 +29,35 @@ namespace AIProofread.Util
|
|||||||
[DllImport("user32.dll")]
|
[DllImport("user32.dll")]
|
||||||
[return: MarshalAs(UnmanagedType.Bool)]
|
[return: MarshalAs(UnmanagedType.Bool)]
|
||||||
public static extern bool SetForegroundWindow(IntPtr hWnd);
|
public static extern bool SetForegroundWindow(IntPtr hWnd);
|
||||||
|
|
||||||
|
#region 获取系统屏幕缩放比例
|
||||||
|
public const int HORZRES = 8;
|
||||||
|
public const int VERTRES = 10;
|
||||||
|
public const int LOGPIXELSX = 88;
|
||||||
|
public const int LOGPIXELSY = 90;
|
||||||
|
public const int DESKTOPVERTRES = 117;
|
||||||
|
public const int DESKTOPHORZRES = 118;
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern IntPtr GetDC(IntPtr ptr);
|
||||||
|
[DllImport("gdi32.dll")]
|
||||||
|
public static extern int GetDeviceCaps(
|
||||||
|
IntPtr hdc, // handle to DC
|
||||||
|
int nIndex // index of capability
|
||||||
|
);
|
||||||
|
[DllImport("user32.dll", EntryPoint = "ReleaseDC")]
|
||||||
|
public static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hDc);
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
public static extern IntPtr GetDesktopWindow();
|
||||||
|
|
||||||
|
public static float GetSreenScale()
|
||||||
|
{
|
||||||
|
var hdc = GetDC(GetDesktopWindow());
|
||||||
|
int nWidth = GetDeviceCaps(hdc, DESKTOPHORZRES);
|
||||||
|
ReleaseDC(IntPtr.Zero, hdc);
|
||||||
|
float f_Scale = (float)nWidth / (float)Screen.PrimaryScreen.Bounds.Width;
|
||||||
|
return 1 / f_Scale;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -481,7 +481,12 @@ namespace AIProofread
|
|||||||
|
|
||||||
public static void ExportProofreadResult()
|
public static void ExportProofreadResult()
|
||||||
{
|
{
|
||||||
|
string currentName = Globals.ThisAddIn.Application.ActiveDocument.Name;
|
||||||
|
// 去掉文件名后缀
|
||||||
|
currentName = currentName.Substring(0, currentName.LastIndexOf("."));
|
||||||
SaveFileDialog sfd = new SaveFileDialog();
|
SaveFileDialog sfd = new SaveFileDialog();
|
||||||
|
// 设置默认文件名
|
||||||
|
sfd.FileName = currentName + "_勘误表.xlsx";
|
||||||
sfd.Filter = "Excel文件|*.xlsx";
|
sfd.Filter = "Excel文件|*.xlsx";
|
||||||
var result = sfd.ShowDialog();
|
var result = sfd.ShowDialog();
|
||||||
// 如果用户取消选择,则返回
|
// 如果用户取消选择,则返回
|
||||||
@ -491,29 +496,44 @@ namespace AIProofread
|
|||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (File.Exists(sfd.FileName))
|
||||||
|
{
|
||||||
|
// 判断原始文件是否可以删除
|
||||||
|
if (File.GetAttributes(sfd.FileName).HasFlag(FileAttributes.ReadOnly))
|
||||||
|
{
|
||||||
|
Globals.ThisAddIn.ShowDialog("已经存在名勘误表文件,请更换名称或者手动删除", null, null);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 删除文件 重新写入新数据避免出现未知不可控bug
|
||||||
|
File.Delete(sfd.FileName);
|
||||||
|
}
|
||||||
ProcessExport(sfd.FileName);
|
ProcessExport(sfd.FileName);
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
Globals.ThisAddIn.ActiveDocument.ShowDialog("导出勘误表失败", null, null);
|
Globals.ThisAddIn.ShowDialog("导出勘误表失败", null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void ProcessExport(string fileName)
|
private static void ProcessExport(string fileName)
|
||||||
{
|
{
|
||||||
using (var fs = File.OpenWrite(fileName))
|
using (var fs = File.Create(fileName))
|
||||||
{
|
{
|
||||||
var book = new XSSFWorkbook();
|
var book = new XSSFWorkbook();
|
||||||
var sheet = book.CreateSheet("Sheet1");
|
var sheet = book.CreateSheet("Sheet1");
|
||||||
|
var simHeiFont = CreateBaseFont(book, "黑体", 11);
|
||||||
|
simHeiFont.Color = NPOI.HSSF.Util.HSSFColor.Black.Index;
|
||||||
// 设置表格样式
|
// 设置表格样式
|
||||||
var style = CreateBaseCellStyle(book);
|
var style = CreateBaseCellStyle(book);
|
||||||
style.SetFont(CreateBaseFont(book));
|
/* 系统与正文用不同字体区分(包括顶部栏、处理列、新增、删除等提示)勘误表系统字体为黑体,所有字号统一 */
|
||||||
|
style.SetFont(simHeiFont);
|
||||||
style.BorderBottom = NPOI.SS.UserModel.BorderStyle.None;
|
style.BorderBottom = NPOI.SS.UserModel.BorderStyle.None;
|
||||||
style.BorderTop = NPOI.SS.UserModel.BorderStyle.None;
|
style.BorderTop = NPOI.SS.UserModel.BorderStyle.None;
|
||||||
style.BorderLeft = NPOI.SS.UserModel.BorderStyle.None;
|
style.BorderLeft = NPOI.SS.UserModel.BorderStyle.None;
|
||||||
style.BorderRight = NPOI.SS.UserModel.BorderStyle.None;
|
style.BorderRight = NPOI.SS.UserModel.BorderStyle.None;
|
||||||
style.WrapText = true;
|
style.WrapText = true;
|
||||||
|
|
||||||
sheet.SetDefaultColumnStyle(0, style);
|
sheet.SetDefaultColumnStyle(0, style);
|
||||||
sheet.SetDefaultColumnStyle(1, style);
|
sheet.SetDefaultColumnStyle(1, style);
|
||||||
sheet.SetDefaultColumnStyle(2, style);
|
sheet.SetDefaultColumnStyle(2, style);
|
||||||
@ -547,14 +567,10 @@ namespace AIProofread
|
|||||||
|
|
||||||
var blackFont = CreateBaseFont(book);
|
var blackFont = CreateBaseFont(book);
|
||||||
blackFont.Color = NPOI.HSSF.Util.HSSFColor.Black.Index;
|
blackFont.Color = NPOI.HSSF.Util.HSSFColor.Black.Index;
|
||||||
|
|
||||||
var redFont = CreateBaseFont(book);
|
var redFont = CreateBaseFont(book);
|
||||||
redFont.Color = NPOI.HSSF.Util.HSSFColor.Red.Index;
|
redFont.Color = NPOI.HSSF.Util.HSSFColor.Red.Index;
|
||||||
// 字体加粗增大
|
|
||||||
var strongFont = CreateBaseFont(book);
|
|
||||||
// 字体加粗
|
|
||||||
strongFont.IsBold = true;
|
|
||||||
// 字体更大
|
|
||||||
strongFont.FontHeightInPoints = 13;
|
|
||||||
// 获取排序后的数据
|
// 获取排序后的数据
|
||||||
var list = ExportDataItem.GetExportData(Globals.ThisAddIn.ActiveDocument.marks);
|
var list = ExportDataItem.GetExportData(Globals.ThisAddIn.ActiveDocument.marks);
|
||||||
// 对 list 进行排序
|
// 对 list 进行排序
|
||||||
@ -569,6 +585,7 @@ namespace AIProofread
|
|||||||
row.CreateCell(1).SetCellValue(item.PageNumber);
|
row.CreateCell(1).SetCellValue(item.PageNumber);
|
||||||
row.CreateCell(2).SetCellValue(item.LineNumber);
|
row.CreateCell(2).SetCellValue(item.LineNumber);
|
||||||
|
|
||||||
|
#region 引用原文内容
|
||||||
string originSentence = item.OriginSentence;
|
string originSentence = item.OriginSentence;
|
||||||
if (it.Tag == "i")
|
if (it.Tag == "i")
|
||||||
{
|
{
|
||||||
@ -593,8 +610,12 @@ namespace AIProofread
|
|||||||
// 设置单元格内容自动换行
|
// 设置单元格内容自动换行
|
||||||
oriCell.CellStyle.WrapText = true;
|
oriCell.CellStyle.WrapText = true;
|
||||||
oriCell.SetCellValue(originText);
|
oriCell.SetCellValue(originText);
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// 原始内容
|
||||||
row.CreateCell(4).SetCellValue(it.Origin);
|
row.CreateCell(4).SetCellValue(it.Origin);
|
||||||
|
|
||||||
|
#region 建议
|
||||||
var suggest = it.Text;
|
var suggest = it.Text;
|
||||||
if (it.Tag == "r")
|
if (it.Tag == "r")
|
||||||
{
|
{
|
||||||
@ -602,14 +623,6 @@ namespace AIProofread
|
|||||||
if (it.Type == "blacklist")
|
if (it.Type == "blacklist")
|
||||||
{
|
{
|
||||||
tag = "黑名单";
|
tag = "黑名单";
|
||||||
XSSFRichTextString replaceText = new XSSFRichTextString(suggest + $" {tag}");
|
|
||||||
replaceText.ApplyFont(blackFont);
|
|
||||||
if (tag != "")
|
|
||||||
{
|
|
||||||
// 对查找内容引用红色
|
|
||||||
replaceText.ApplyFont(suggest.Length + 1, suggest.Length + 1 + tag.Length, strongFont);
|
|
||||||
}
|
|
||||||
row.CreateCell(5).SetCellValue(replaceText);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -617,29 +630,47 @@ namespace AIProofread
|
|||||||
// 易错词不标识
|
// 易错词不标识
|
||||||
if (it.Type == "confusion" || it.Type == "model" || it.Type == "other")
|
if (it.Type == "confusion" || it.Type == "model" || it.Type == "other")
|
||||||
{
|
{
|
||||||
row.CreateCell(5).SetCellValue(suggest);
|
//row.CreateCell(5).SetCellValue(suggest);
|
||||||
}
|
}
|
||||||
else if (it.Type == "first_choice")
|
else if (it.Type == "first_choice")
|
||||||
{
|
{
|
||||||
row.CreateCell(5).SetCellValue(suggest + " 【提示】首选");
|
|
||||||
|
tag = "【提示】首选";
|
||||||
|
//row.CreateCell(5).SetCellValue(suggest + " 【提示】首选");
|
||||||
}
|
}
|
||||||
else if (it.Type == "now_called")
|
else if (it.Type == "now_called")
|
||||||
{
|
{
|
||||||
row.CreateCell(5).SetCellValue(suggest + " 【提示】现称");
|
tag = "【提示】现称";
|
||||||
|
//row.CreateCell(5).SetCellValue(suggest + " 【提示】现称");
|
||||||
}
|
}
|
||||||
else if (it.Type == "quoting_legal")
|
else if (it.Type == "quoting_legal")
|
||||||
{
|
{
|
||||||
row.CreateCell(5).SetCellValue(suggest + " 【提示】法规");
|
tag = "【提示】法规";
|
||||||
|
//row.CreateCell(5).SetCellValue(suggest + " 【提示】法规");
|
||||||
}
|
}
|
||||||
else if (it.Type == "incorrect_expression")
|
else if (it.Type == "incorrect_expression")
|
||||||
{
|
{
|
||||||
row.CreateCell(5).SetCellValue(suggest + " 【提示】表述有误");
|
tag = "【提示】表述有误";
|
||||||
|
//row.CreateCell(5).SetCellValue(suggest + " 【提示】表述有误");
|
||||||
}
|
}
|
||||||
else
|
else if(!string.IsNullOrEmpty(it.Addition))
|
||||||
{
|
{
|
||||||
row.CreateCell(5).SetCellValue(suggest + (string.IsNullOrEmpty(it.Addition) ? "" : $" 【提示】{it.Addition}"));
|
//row.CreateCell(5).SetCellValue(suggest + (string.IsNullOrEmpty(it.Addition) ? "" : $" 【提示】{it.Addition}"));
|
||||||
|
tag = $"【提示】{it.Addition}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (string.IsNullOrEmpty(tag))
|
||||||
|
{
|
||||||
|
row.CreateCell(5).SetCellValue(suggest);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
XSSFRichTextString replaceText = new XSSFRichTextString(suggest + $" {tag}");
|
||||||
|
replaceText.ApplyFont(blackFont);
|
||||||
|
// 对查找内容引用红色
|
||||||
|
replaceText.ApplyFont(suggest.Length + 1, suggest.Length + 1 + tag.Length, simHeiFont);
|
||||||
|
row.CreateCell(5).SetCellValue(replaceText);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -672,7 +703,7 @@ namespace AIProofread
|
|||||||
if (tag.Length > 0)
|
if (tag.Length > 0)
|
||||||
{
|
{
|
||||||
// 对查找内容引用红色
|
// 对查找内容引用红色
|
||||||
suggestText.ApplyFont(startIndex, it.Tag == "i" ? startIndex + 2 : tag.Length, strongFont);
|
suggestText.ApplyFont(startIndex, it.Tag == "i" ? startIndex + 2 : tag.Length, simHeiFont);
|
||||||
row.CreateCell(5).SetCellValue(suggestText);
|
row.CreateCell(5).SetCellValue(suggestText);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -680,7 +711,11 @@ namespace AIProofread
|
|||||||
row.CreateCell(5).SetCellValue(suggest);
|
row.CreateCell(5).SetCellValue(suggest);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
row.CreateCell(6).SetCellValue(StatusText(it.IsAccept));
|
#endregion
|
||||||
|
// 处理状态
|
||||||
|
var statusValue = new XSSFRichTextString(StatusText(it.IsAccept));
|
||||||
|
statusValue.ApplyFont(simHeiFont);
|
||||||
|
row.CreateCell(6).SetCellValue(statusValue);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@ -691,7 +726,7 @@ namespace AIProofread
|
|||||||
|
|
||||||
// 保存到文件
|
// 保存到文件
|
||||||
book.Write(fs);
|
book.Write(fs);
|
||||||
Globals.ThisAddIn.ActiveDocument.ShowDialog("导出成功", null, null);
|
Globals.ThisAddIn.ShowMessage("导出成功", 3000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -705,15 +740,19 @@ namespace AIProofread
|
|||||||
|
|
||||||
return style;
|
return style;
|
||||||
}
|
}
|
||||||
private static IFont CreateBaseFont(IWorkbook workbook)
|
private static IFont CreateBaseFont(IWorkbook workbook, string name, int size)
|
||||||
{
|
{
|
||||||
// 宋体 11
|
// 宋体 11
|
||||||
var font = workbook.CreateFont();
|
var font = workbook.CreateFont();
|
||||||
font.FontName = "宋体";
|
font.FontName = name;
|
||||||
font.FontHeightInPoints = 11;
|
font.FontHeightInPoints = size;
|
||||||
|
|
||||||
return font;
|
return font;
|
||||||
}
|
}
|
||||||
|
private static IFont CreateBaseFont(IWorkbook workbook)
|
||||||
|
{
|
||||||
|
return CreateBaseFont(workbook, "宋体", 11);
|
||||||
|
}
|
||||||
|
|
||||||
private static string StatusText(int status)
|
private static string StatusText(int status)
|
||||||
{
|
{
|
||||||
|
@ -1 +1 @@
|
|||||||
8f0bfa7787b64c7e81e5cec3f2098ad425c0efe864d9c3506d226b26674a4392
|
54a319e61bbb40f00beb0f42abcb8716c81b74e48883b7a20bcbaff71f4ef2ff
|
||||||
|
@ -211,3 +211,4 @@ C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.
|
|||||||
C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofr.8811D769.Up2Date
|
C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofr.8811D769.Up2Date
|
||||||
C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.dll
|
C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.dll
|
||||||
C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.pdb
|
C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.pdb
|
||||||
|
C:\Users\yaclt\source\repos\repos\AIProofread\AIProofread\obj\Debug\AIProofread.Controls.MessageTips.resources
|
||||||
|