Browse Source

compdfkit(win) - 调整边框宽度为2 ,调整部分显示问题的文案

liuaoran 1 year ago
parent
commit
7aa1a5f4cf

+ 1 - 1
Demo/Examples/Compdfkit_Tools/Common/Convert/WindowStateToThicknessConverter.cs

@@ -18,7 +18,7 @@ namespace Compdfkit_Tools.Common
             else
             {
                 // left, right and bottom borders are still drawn by the system
-                return new Thickness(1);
+                return new Thickness(2);
             }
         }
 

+ 1 - 1
Demo/Examples/Compdfkit_Tools/DigitalSignature/AddCertificationControl/AddCustomCertificationControl.xaml

@@ -40,7 +40,7 @@
                     <TextBlock Text="*" Foreground="Red" VerticalAlignment="Center"></TextBlock>
                 </StackPanel>
                 <Grid Grid.Column="1">
-                    <TextBox Height="28" x:Name="GrantorNameTxt" VerticalContentAlignment="Center" VerticalAlignment="Center" Text="{Binding GrantorName}"/>
+                    <TextBox Height="28" x:Name="GrantorNameTxt" VerticalContentAlignment="Center" VerticalAlignment="Center" Text="{Binding GrantorName}" MaxLength="50"/>
                     <TextBlock Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Holder_Name}" VerticalAlignment="Center"  Margin="10,0,0,0" Visibility="{Binding ElementName=GrantorNameTxt, Path=Text, Converter={StaticResource TextLengthToVisibilityConverter}}" IsHitTestVisible="False"  Foreground="#BBB"></TextBlock>
                 </Grid>
                 <TextBlock Grid.Row="1" Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Unit}" VerticalAlignment="Center"></TextBlock>

+ 23 - 26
Demo/Examples/Compdfkit_Tools/PDFView/PDFSearch/PDFSearchControl/CPDFSearchControl.xaml.cs

@@ -9,7 +9,7 @@ using System.Threading.Tasks;
 using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Media;
-using Compdfkit_Tools.Helper; 
+using Compdfkit_Tools.Helper;
 
 namespace Compdfkit_Tools.PDFControl
 {
@@ -20,15 +20,15 @@ namespace Compdfkit_Tools.PDFControl
         /// </summary>
         private CPDFViewer pdfView;
         private int currentHighLightIndex { get; set; } = -1;
-        
+
         private C_Search_Options searchOption = C_Search_Options.Search_Case_Insensitive;
 
         private PDFTextSearch textSearch;
 
         private string keyWord;
-        
+
         private bool isClearResult = false;
-        
+
         private SolidColorBrush highLightBrush = new SolidColorBrush(Color.FromArgb(0x99, 0xFF, 0xF7, 0x00));
 
         private bool _isCaseSensitive = true;
@@ -52,7 +52,7 @@ namespace Compdfkit_Tools.PDFControl
                 return _isCaseSensitive;
             }
         }
-        
+
         public bool IsMatchWholeWord
         {
             set
@@ -65,10 +65,10 @@ namespace Compdfkit_Tools.PDFControl
                 {
                     searchOption &= ~C_Search_Options.Search_Match_Whole_Word;
                 }
-                pdfView?.StartFindText(keyWord,searchOption);
+                pdfView?.StartFindText(keyWord, searchOption);
             }
         }
-        
+
         public CPDFSearchControl()
         {
             InitializeComponent();
@@ -78,7 +78,7 @@ namespace Compdfkit_Tools.PDFControl
 
         public void InitWithPDFViewer(CPDFViewer newPDFView)
         {
-            if(pdfView!=newPDFView)
+            if (pdfView != newPDFView)
             {
                 ClearSearchResult();
                 pdfView = newPDFView;
@@ -88,24 +88,24 @@ namespace Compdfkit_Tools.PDFControl
         private void PDFSearch_Loaded(object sender, RoutedEventArgs e)
         {
             textSearch = new PDFTextSearch();
-            
+
             SearchInput.SearchEvent -= SearchInput_SearchEvent;
             SearchInput.ClearEvent -= SearchInput_ClearEvent;
             textSearch.SearchCompletedHandler -= TextSearch_SearchCompletedHandler;
             SearchResult.SelectionChanged -= SearchResult_SelectionChanged;
             textSearch.SearchPercentHandler -= TextSearch_SearchPercentHandler;
             textSearch.SearchCancelHandler -= TextSearch_SearchCancelHandler;
-            
+
             SearchInput.SearchEvent += SearchInput_SearchEvent;
             SearchInput.ClearEvent += SearchInput_ClearEvent;
             textSearch.SearchCompletedHandler += TextSearch_SearchCompletedHandler;
             SearchResult.SelectionChanged += SearchResult_SelectionChanged;
             textSearch.SearchPercentHandler += TextSearch_SearchPercentHandler;
             textSearch.SearchCancelHandler += TextSearch_SearchCancelHandler;
-            
+
             SearchInput.MoveResultEvent -= SearchInput_MoveResultEvent;
             SearchInput.MoveResultEvent += SearchInput_MoveResultEvent;
-            
+
             SearchTog.IsChecked = true;
         }
 
@@ -131,7 +131,7 @@ namespace Compdfkit_Tools.PDFControl
         {
             Dispatcher.Invoke(() =>
             {
-                if(!e.Items.ContainsKey(e.CurrentPage))
+                if (!e.Items.ContainsKey(e.CurrentPage))
                 {
                     return;
                 }
@@ -142,7 +142,7 @@ namespace Compdfkit_Tools.PDFControl
                     {
                         continue;
                     }
-                    
+
                     var result = new BindSearchResult()
                     {
                         PageIndex = item.PageIndex,
@@ -155,7 +155,7 @@ namespace Compdfkit_Tools.PDFControl
                     SearchResult.AddSearchResult(result);
                     ResultNum.Text = SearchResult.ResultListControl.Items.Count.ToString();
                 }
-                
+
             });
         }
 
@@ -172,7 +172,7 @@ namespace Compdfkit_Tools.PDFControl
             }
             ProgressBorder.Visibility = Visibility.Hidden;
         }
-        
+
         private void TextSearch_SearchCancelHandler(object sender, TextSearchResult e)
         {
             if (isClearResult)
@@ -212,7 +212,7 @@ namespace Compdfkit_Tools.PDFControl
             BindSearchResult result = SearchResult.GetSelectItem();
             HighLightSelectResult(result);
             ResultNum.Text = "";
-            ResultText.Text = LanguageHelper.BotaManager.GetString("Text_Result")+ (e+1) + "/" + SearchResult.ResultListControl.Items.Count;
+            ResultText.Text = LanguageHelper.BotaManager.GetString("Text_Result") + (e + 1) + "/" + SearchResult.ResultListControl.Items.Count;
         }
 
         private void TextSearch_SearchCompletedHandler(object sender, TextSearchResult e)
@@ -239,7 +239,7 @@ namespace Compdfkit_Tools.PDFControl
             {
                 return;
             }
-              
+
             if (SearchTog.IsChecked == true)
             {
                 if (pdfView.UndoManager.CanSave)
@@ -249,12 +249,12 @@ namespace Compdfkit_Tools.PDFControl
                 keyWord = e;
                 textSearch.TextSearchDocument = pdfView.Document;
                 SearchResult.ClearSearchResult();
-                
+
                 ResultNum.Text = "0";
                 ResultText.Text = LanguageHelper.BotaManager.GetString("Tip_Result");
                 ProgressBar.ProgressMaxValue = pdfView.Document.PageCount;
                 ProgressBorder.Visibility = Visibility.Visible;
-                
+
                 textSearch.SearchText(keyWord, searchOption);
             }
             else if (ReplaceTog.IsChecked == true)
@@ -277,7 +277,7 @@ namespace Compdfkit_Tools.PDFControl
                     PageIndex = result.PageIndex,
                     TextRect = result.TextRect,
                     TextContent = result.TextContent,
-                    PageRotate = result.PageRotate, 
+                    PageRotate = result.PageRotate,
                 }
             };
             pdfView.SetPageSelectText(selectList, highLightBrush);
@@ -288,7 +288,7 @@ namespace Compdfkit_Tools.PDFControl
             SearchResult?.ClearSearchResult();
             ResultNum.Text = string.Empty;
             ResultText.Text = string.Empty;
-            SearchInput.SearchKeyWord=string.Empty;
+            SearchInput.SearchKeyWord = string.Empty;
         }
 
         private void SearchCancel_Click(object sender, RoutedEventArgs e)
@@ -328,10 +328,7 @@ namespace Compdfkit_Tools.PDFControl
         {
             keyWord = SearchInput.SearchKeyWord;
             pdfView.StartFindText(keyWord, searchOption);
-            for (int index = 0; index < pdfView.Document.PageCount; index++)
-            {
-                pdfView.ReplacePageAllText(SearchInput.ReplaceWord, index);
-            }
+            pdfView.ReplaceAllText(SearchInput.ReplaceWord);
             pdfView.Document.WriteToLoadedPath();
         }
     }

+ 1 - 1
Demo/Examples/Compdfkit_Tools/PageEdit/PDFPageExtract/CPDFPageExtractUI.xaml

@@ -45,7 +45,7 @@
                     </StackPanel>
                 </StackPanel>
             </Border>
-            <TextBlock Text="{Binding Converter={StaticResource DocEditorResourceConverter},ConverterParameter=Subtitle_Pages}" FontFamily="Microsoft YaHei" Margin="40,-1,0,0" Background="White" Width="70" Height="16" VerticalAlignment="Top" HorizontalAlignment="Left" FontWeight="Bold"></TextBlock>
+            <TextBlock Text="{Binding Converter={StaticResource DocEditorResourceConverter},ConverterParameter=Subtitle_Pages}" FontFamily="Microsoft YaHei" Margin="40,-1,0,0" Padding="5,0,5,0" Background="White" Height="16" VerticalAlignment="Top" HorizontalAlignment="Left" FontWeight="Bold"></TextBlock>
         </Grid>
         <Grid Grid.Row="2">
             <StackPanel Margin="42,10,0,0">

+ 2 - 0
Demo/Examples/Compdfkit_Tools/PageEdit/PDFPageExtract/CPDFPageExtractWindow.xaml.cs

@@ -1,7 +1,9 @@
 using Compdfkit_Tools.Helper;
 using Compdfkit_Tools.PDFControlUI;
+using Compdfkit_Tools.Properties;
 using System;
 using System.Collections.Generic;
+using System.Reflection;
 using System.Windows;
 using MessageBox = System.Windows.MessageBox;
 

+ 3 - 2
Demo/Examples/Compdfkit_Tools/Strings/DocEditor.Designer.cs

@@ -1,6 +1,7 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
 //     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
 //     the code is regenerated.
@@ -18,7 +19,7 @@ namespace Compdfkit_Tools.Strings {
     // class via a tool like ResGen or Visual Studio.
     // To add or remove a member, edit your .ResX file then rerun ResGen
     // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
     internal class DocEditor {
@@ -132,7 +133,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Custom Black Page.
+        ///   Looks up a localized string similar to Custom Blank Page.
         /// </summary>
         internal static string Option_Custom {
             get {

+ 204 - 105
Demo/Examples/Compdfkit_Tools/Strings/DocEditor.resx

@@ -1,108 +1,207 @@
 <?xml version="1.0" encoding="utf-8"?>
-
 <root>
-    <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-        <xsd:element name="root" msdata:IsDataSet="true">
-            
-        </xsd:element>
-    </xsd:schema>
-    <resheader name="resmimetype">
-        <value>text/microsoft-resx</value>
-    </resheader>
-    <resheader name="version">
-        <value>1.3</value>
-    </resheader>
-    <resheader name="reader">
-        <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-    </resheader>
-    <resheader name="writer">
-        <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-    </resheader>
-    <data name="Title_Insert" xml:space="preserve">
-        <value>Insert</value>
-    </data>
-    <data name="Subtitle_Pages" xml:space="preserve">
-        <value>Page Range</value>
-    </data>
-    <data name="Option_Blank" xml:space="preserve">
-        <value>Blank Page</value>
-    </data>
-    <data name="Option_Custom" xml:space="preserve">
-        <value>Custom Black Page</value>
-    </data>
-    <data name="Option_From" xml:space="preserve">
-        <value>From PDF</value>
-    </data>
-    <data name="Button_Select" xml:space="preserve">
-        <value>Select a File</value>
-    </data>
-    <data name="Text_Range" xml:space="preserve">
-        <value>Page Range</value>
-    </data>
-    <data name="Range_All" xml:space="preserve">
-        <value>All Pages</value>
-    </data>
-    <data name="Range_Odd" xml:space="preserve">
-        <value>Odd Pages Only</value>
-    </data>
-    <data name="Range_Even" xml:space="preserve">
-        <value>Even Pages Only</value>
-    </data>
-    <data name="Range_Custom" xml:space="preserve">
-        <value>Custom Range</value>
-    </data>
-    <data name="Subtitle_Pos" xml:space="preserve">
-        <value>Insert To</value>
-    </data>
-    <data name="Option_First" xml:space="preserve">
-        <value>First Page</value>
-    </data>
-    <data name="Option_Last" xml:space="preserve">
-        <value>Last Page</value>
-    </data>
-    <data name="Option_Page" xml:space="preserve">
-        <value>Page</value>
-    </data>
-    <data name="Option_After" xml:space="preserve">
-        <value>After</value>
-    </data>
-    <data name="Option_Before" xml:space="preserve">
-        <value>Before</value>
-    </data>
-    <data name="Button_Cancel" xml:space="preserve">
-        <value>Cancel</value>
-    </data>
-    <data name="Button_Insert" xml:space="preserve">
-        <value>Insert</value>
-    </data>
-    <data name="Warn_NoFile" xml:space="preserve">
-        <value>No File Selected</value>
-    </data>
-    <data name="Warn_PageRange" xml:space="preserve">
-        <value>Invalid page range or the page number is out of range.</value>
-    </data>
-    <data name="Title_Extract" xml:space="preserve">
-        <value>Extract</value>
-    </data>
-    <data name="Holder_Custom" xml:space="preserve">
-        <value>e.g. 1,3-5,10</value>
-    </data>
-    <data name="Option_Separate" xml:space="preserve">
-        <value>Each page in a separate file</value>
-    </data>
-    <data name="Option_Delete" xml:space="preserve">
-        <value>Delete page after extraction</value>
-    </data>
-    <data name="Button_Extract" xml:space="preserve">
-        <value>Extract</value>
-    </data>
-    <data name="Tip_NoPage" xml:space="preserve">
-        <value>No pages selected. Please select one or more pages first to organize.</value>
-    </data>
-    <data name="Tip_AllPage" xml:space="preserve">
-        <value>Can not delete all pages. Please keep at least one page.</value>
-    </data>
-    <data name="Warn_Delete" xml:space="preserve">
-        <value>Are you sure to delete?</value>
-    </data>
+  <!-- 
+    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>
+  <data name="Title_Insert" xml:space="preserve">
+    <value>Insert</value>
+  </data>
+  <data name="Subtitle_Pages" xml:space="preserve">
+    <value>Page Range</value>
+  </data>
+  <data name="Option_Blank" xml:space="preserve">
+    <value>Blank Page</value>
+  </data>
+  <data name="Option_Custom" xml:space="preserve">
+    <value>Custom Blank Page</value>
+  </data>
+  <data name="Option_From" xml:space="preserve">
+    <value>From PDF</value>
+  </data>
+  <data name="Button_Select" xml:space="preserve">
+    <value>Select a File</value>
+  </data>
+  <data name="Text_Range" xml:space="preserve">
+    <value>Page Range</value>
+  </data>
+  <data name="Range_All" xml:space="preserve">
+    <value>All Pages</value>
+  </data>
+  <data name="Range_Odd" xml:space="preserve">
+    <value>Odd Pages Only</value>
+  </data>
+  <data name="Range_Even" xml:space="preserve">
+    <value>Even Pages Only</value>
+  </data>
+  <data name="Range_Custom" xml:space="preserve">
+    <value>Custom Range</value>
+  </data>
+  <data name="Subtitle_Pos" xml:space="preserve">
+    <value>Insert To</value>
+  </data>
+  <data name="Option_First" xml:space="preserve">
+    <value>First Page</value>
+  </data>
+  <data name="Option_Last" xml:space="preserve">
+    <value>Last Page</value>
+  </data>
+  <data name="Option_Page" xml:space="preserve">
+    <value>Page</value>
+  </data>
+  <data name="Option_After" xml:space="preserve">
+    <value>After</value>
+  </data>
+  <data name="Option_Before" xml:space="preserve">
+    <value>Before</value>
+  </data>
+  <data name="Button_Cancel" xml:space="preserve">
+    <value>Cancel</value>
+  </data>
+  <data name="Button_Insert" xml:space="preserve">
+    <value>Insert</value>
+  </data>
+  <data name="Warn_NoFile" xml:space="preserve">
+    <value>No File Selected</value>
+  </data>
+  <data name="Warn_PageRange" xml:space="preserve">
+    <value>Invalid page range or the page number is out of range.</value>
+  </data>
+  <data name="Title_Extract" xml:space="preserve">
+    <value>Extract</value>
+  </data>
+  <data name="Holder_Custom" xml:space="preserve">
+    <value>e.g. 1,3-5,10</value>
+  </data>
+  <data name="Option_Separate" xml:space="preserve">
+    <value>Each page in a separate file</value>
+  </data>
+  <data name="Option_Delete" xml:space="preserve">
+    <value>Delete page after extraction</value>
+  </data>
+  <data name="Button_Extract" xml:space="preserve">
+    <value>Extract</value>
+  </data>
+  <data name="Tip_NoPage" xml:space="preserve">
+    <value>No pages selected. Please select one or more pages first to organize.</value>
+  </data>
+  <data name="Tip_AllPage" xml:space="preserve">
+    <value>Can not delete all pages. Please keep at least one page.</value>
+  </data>
+  <data name="Warn_Delete" xml:space="preserve">
+    <value>Are you sure to delete?</value>
+  </data>
 </root>

BIN
Demo/Examples/packages/ComPDFKit.NetFramework.1.11.0/build/x64/ComPDFKit.dll