Переглянути джерело

compdfkit(windows) - 文字编辑交互优化到与注释/表单一致,Link注释属性面板优化

liuaoran 1 рік тому
батько
коміт
402f76a6b9

+ 4 - 0
Demo/Examples/Annotations/Annotations.csproj

@@ -102,6 +102,10 @@
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>
     </EmbeddedResource>
+    <None Include="..\TestFile\PDF32000_2008.pdf">
+      <Link>PDF32000_2008.pdf</Link>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
     <None Include="packages.config" />
     <None Include="PDFA\sRGB2014.icc">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

+ 1 - 1
Demo/Examples/Compdfkit_Tools/Annotation/PDFAnnotationPanel/PDFAnnotationControl/CPDFAnnotationControl.xaml

@@ -9,7 +9,7 @@
              Unloaded="AnnotationControl_Unloaded"
              d:DesignHeight="800" d:DesignWidth="300">
     <Grid>
-            <Border x:Name="AnnotationPanelContainer" Background="#FFFFFF"></Border>
+        <Border x:Name="AnnotationPanelContainer" Background="#FAFCFF"></Border>
         <TextBlock x:Name="EmptyMessage" Text="The property panel is empty." VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
     </Grid>
 </UserControl>

+ 45 - 33
Demo/Examples/Compdfkit_Tools/Annotation/PDFAnnotationPanel/PDFAnnotationUI/CPDFLinkUI.xaml

@@ -419,37 +419,49 @@
             </Setter>
         </Style>
     </UserControl.Resources>
-    <ScrollViewer VerticalScrollBarVisibility="Auto">
-        <Grid Background="#FFFFFF">
-            <Grid.RowDefinitions>
-                <RowDefinition Height="100"/>
-                <RowDefinition Height="*"/>
-            </Grid.RowDefinitions>
-            <TabControl x:Name="HeadTabControl" Style="{DynamicResource TabControlStyle1}">
-                <TabItem Style="{DynamicResource TabItemStyle1}" Header="Hyperlink">
-                    <Grid IsEnabled="{Binding InputEnable}">
-                        <TextBox Style="{DynamicResource TextBoxStyle1}" Height="28"  x:Name="UrlText" VerticalContentAlignment="Center" TextChanged="UrlText_TextChanged" VerticalAlignment="Center" Margin="16"/>
-                        <TextBlock Text="https://www.compdf.com/" VerticalAlignment="Center"  Margin="22" Visibility="{Binding ElementName=UrlText, Path=Text, Converter={StaticResource TextLengthToVisibilityConverter}}" IsHitTestVisible="False"  Foreground="#BBB"></TextBlock>
-                    </Grid>
-                </TabItem>
-                <TabItem Style="{DynamicResource TabItemStyle1}" Header="Go To Pages">
-                    <Grid IsEnabled="{Binding InputEnable}">
-                        <TextBox Style="{DynamicResource TextBoxStyle1}" Height="28"  x:Name="PageText" VerticalContentAlignment="Center" TextChanged="PageText_TextChanged" VerticalAlignment="Center" Margin="16,0,16,0" Grid.ColumnSpan="2"/>
-                        <TextBlock Text="{Binding PagePromptText, Mode=OneWay}" VerticalAlignment="Center"  Margin="22,0,22,0" Visibility="{Binding ElementName=PageText, Path=Text, Converter={StaticResource TextLengthToVisibilityConverter}}" IsHitTestVisible="False"  Foreground="#BBB"></TextBlock>
-                    </Grid>
-                </TabItem>
-                <TabItem Style="{DynamicResource TabItemStyle1}" Header="Email">
-                    <Grid IsEnabled="{Binding InputEnable}">
-                        <Grid.ColumnDefinitions>
-                            <ColumnDefinition Width="79*"/>
-                            <ColumnDefinition Width="319*"/>
-                        </Grid.ColumnDefinitions>
-                        <TextBox Style="{DynamicResource TextBoxStyle1}" Height="28" x:Name="EmailText" VerticalContentAlignment="Center"  TextChanged="EmailText_TextChanged" VerticalAlignment="Center" Margin="16,0,16,0" Grid.ColumnSpan="2"/>
-                        <TextBlock Text="support@compdf.com" VerticalAlignment="Center"  Margin="22,0,22,0" Visibility="{Binding ElementName=EmailText, Path=Text, Converter={StaticResource TextLengthToVisibilityConverter}}" IsHitTestVisible="False"  Foreground="#BBB" Grid.ColumnSpan="2"></TextBlock>
-                    </Grid>
-                </TabItem>
-            </TabControl>
-            <Button Style="{DynamicResource ButtonStyle1}" x:Name="SaveBtn"  Background="#001A4E" Width="120" Height="32" Grid.Row="1" Foreground="#FFFFFF" Content="Save" VerticalAlignment="Top" Click="Save_Click" IsEnabled="False"/>
-        </Grid>
-    </ScrollViewer>
+
+    <Grid>
+        <Grid.RowDefinitions>
+            <RowDefinition Height="auto"></RowDefinition>
+            <RowDefinition></RowDefinition>
+        </Grid.RowDefinitions>
+        <Border BorderThickness="1" BorderBrush="#1A000000">
+            <Grid  Height="40" Background="White" >
+                <TextBlock x:Name="TitleTextBlock" Text="Link"  HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" FontFamily="Segoe UI"></TextBlock>
+            </Grid>
+        </Border>
+        <ScrollViewer VerticalScrollBarVisibility="Auto" Grid.Row="1">
+            <Grid  Background="#FFFFFF">
+                <Grid.RowDefinitions>
+                    <RowDefinition Height="100"/>
+                    <RowDefinition Height="*"/>
+                </Grid.RowDefinitions>
+                <TabControl x:Name="HeadTabControl" Style="{DynamicResource TabControlStyle1}">
+                    <TabItem Style="{DynamicResource TabItemStyle1}" Header="Hyperlink">
+                        <Grid IsEnabled="{Binding InputEnable}">
+                            <TextBox Style="{DynamicResource TextBoxStyle1}" Height="28"  x:Name="UrlText" VerticalContentAlignment="Center" TextChanged="UrlText_TextChanged" VerticalAlignment="Center" Margin="16"/>
+                            <TextBlock Text="https://www.compdf.com/" VerticalAlignment="Center"  Margin="22" Visibility="{Binding ElementName=UrlText, Path=Text, Converter={StaticResource TextLengthToVisibilityConverter}}" IsHitTestVisible="False"  Foreground="#BBB"></TextBlock>
+                        </Grid>
+                    </TabItem>
+                    <TabItem Style="{DynamicResource TabItemStyle1}" Header="Go To Pages">
+                        <Grid IsEnabled="{Binding InputEnable}">
+                            <TextBox Style="{DynamicResource TextBoxStyle1}" Height="28"  x:Name="PageText" VerticalContentAlignment="Center" TextChanged="PageText_TextChanged" VerticalAlignment="Center" Margin="16,0,16,0" Grid.ColumnSpan="2"/>
+                            <TextBlock Text="{Binding PagePromptText, Mode=OneWay}" VerticalAlignment="Center"  Margin="22,0,22,0" Visibility="{Binding ElementName=PageText, Path=Text, Converter={StaticResource TextLengthToVisibilityConverter}}" IsHitTestVisible="False"  Foreground="#BBB"></TextBlock>
+                        </Grid>
+                    </TabItem>
+                    <TabItem Style="{DynamicResource TabItemStyle1}" Header="Email">
+                        <Grid IsEnabled="{Binding InputEnable}">
+                            <Grid.ColumnDefinitions>
+                                <ColumnDefinition Width="79*"/>
+                                <ColumnDefinition Width="319*"/>
+                            </Grid.ColumnDefinitions>
+                            <TextBox Style="{DynamicResource TextBoxStyle1}" Height="28" x:Name="EmailText" VerticalContentAlignment="Center"  TextChanged="EmailText_TextChanged" VerticalAlignment="Center" Margin="16,0,16,0" Grid.ColumnSpan="2"/>
+                            <TextBlock Text="support@compdf.com" VerticalAlignment="Center"  Margin="22,0,22,0" Visibility="{Binding ElementName=EmailText, Path=Text, Converter={StaticResource TextLengthToVisibilityConverter}}" IsHitTestVisible="False"  Foreground="#BBB" Grid.ColumnSpan="2"></TextBlock>
+                        </Grid>
+                    </TabItem>
+                </TabControl>
+                <Button Style="{DynamicResource ButtonStyle1}" x:Name="SaveBtn"  Background="#001A4E" Width="120" Height="32" Grid.Row="1" Foreground="#FFFFFF" Content="Save" VerticalAlignment="Top" Click="Save_Click" IsEnabled="False"/>
+            </Grid>
+        </ScrollViewer>
+    </Grid>
 </UserControl>

+ 2 - 1
Demo/Examples/Compdfkit_Tools/Edit/PDFImageEdit/PDFImageEditControl/PDFImageEditControl.xaml

@@ -6,7 +6,8 @@
              xmlns:local="clr-namespace:Compdfkit_Tools.Edit"
              xmlns:common="clr-namespace:Compdfkit_Tools.Common"
              mc:Ignorable="d" 
-             d:DesignHeight="450" d:DesignWidth="800" MinWidth="260" Padding="10">
+             d:DesignHeight="450" d:DesignWidth="800" MinWidth="260" Padding="10"
+             Background="#FAFCFF">
     <UserControl.Resources>
         <ResourceDictionary>
             <ResourceDictionary.MergedDictionaries>

+ 3 - 3
Demo/Examples/Compdfkit_Tools/Form/FromPropertyControl.xaml

@@ -7,9 +7,9 @@
              mc:Ignorable="d" 
              Loaded="UserControl_Loaded"
              Unloaded="UserControl_Unloaded"
-             Width="260">
-    <Grid >
-        <TextBlock Name="NoResultText" Foreground="#43474D" FontSize="14" LineHeight="16" TextWrapping="Wrap" Width="190" TextAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center">Show/hide Form properties panel</TextBlock>
+             Width="260" Background="#FAFCFF">
+    <Grid>
+        <TextBlock Name="NoResultText" Foreground="#43474D" FontSize="14" LineHeight="16" TextWrapping="Wrap" Width="190" TextAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center">The property panel is empty</TextBlock>
         <Border x:Name="FromPropertyPanel"></Border>
     </Grid>
 </UserControl>

+ 7 - 3
Demo/Examples/ContentEditor/MainWindow.xaml

@@ -136,7 +136,7 @@
                 <ComboBox Name="ViewComboBox" Width="120" Height="26" Grid.Column="1" HorizontalAlignment="Center" FontSize="14" Foreground="#001A4E" SelectionChanged="ComboBox_SelectionChanged"
                          Style="{StaticResource ComboBoxStyle1}" >
                     <ComboBoxItem>Viewer</ComboBoxItem>
-                    <ComboBoxItem IsSelected="True">PDF Edit</ComboBoxItem>
+                    <ComboBoxItem IsSelected="True">Content Edit</ComboBoxItem>
                 </ComboBox>
  
                 <StackPanel Orientation="Horizontal" Grid.Column="2">
@@ -341,8 +341,12 @@
  
                     <cpdfcommon:PageNumberControl Grid.Row="1" Name="FloatPageTool" HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,0,0,20"></cpdfcommon:PageNumberControl>
                 </Grid>
- 
-                <Border Grid.Row="1" Name="PropertyContainer" Grid.Column="3" Visibility="Hidden"></Border>
+                <Grid Grid.Row="1" Grid.Column="3">
+                    <TextBlock x:Name="EmptyMessage" Text="The property panel is empty." Visibility="{Binding ElementName=PropertyContainer, Path=Visibility}" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
+
+                    <Border Name="PropertyContainer" Visibility="Hidden"></Border>
+                </Grid>
+                
             </Grid>
         </Grid>
 

+ 6 - 8
Demo/Examples/ContentEditor/MainWindow.xaml.cs

@@ -824,7 +824,7 @@ namespace ContentEditor
                     createParam.FontSize = 14;
                     createParam.FontName = "Courier New";
                     createParam.FontColor = Colors.Red;
-                    createParam.TextAlign = TextAlignType.AlignRight;
+                    createParam.TextAlign = TextAlignType.AlignLeft;
                     createParam.Transparency = 100;
                     pdfViewControl.PDFView?.SetPDFEditParam(createParam);
                     if (textEditControl == null)
@@ -951,7 +951,11 @@ namespace ContentEditor
         {
             PDFEditEvent tempEvent = lastPDFEditEvent;
             lastPDFEditEvent = e;
-            ViewSettingBtn.IsChecked = false;
+            if ((bool)ViewSettingBtn.IsChecked)
+            {
+                ViewSettingBtn.IsChecked = false;
+                RightPanelBtn.IsChecked = true;
+            }
             if (e == null)
             {
                 PropertyContainer.Child = empytPanel;
@@ -965,8 +969,6 @@ namespace ContentEditor
                         }
                         textEditControl.SetPDFTextEditData(pdfTextCreateParam);
                         PropertyContainer.Child = textEditControl;
-                        PropertyContainer.Visibility = Visibility.Visible;
-                        RightPanelBtn.IsChecked = true;
                     }
                 }
                 return;
@@ -985,8 +987,6 @@ namespace ContentEditor
                 }
                 textEditControl.SetPDFTextEditData(e);
                 PropertyContainer.Child = textEditControl;
-                PropertyContainer.Visibility = Visibility.Visible;
-                RightPanelBtn.IsChecked = true;
                 return;
             }
 
@@ -1055,8 +1055,6 @@ namespace ContentEditor
                 imageEditControl.InitWithPDFViewer(pdfViewControl.PDFView);
                 imageEditControl.SetPDFImageEditData(lastPDFEditEvent);
                 PropertyContainer.Child = imageEditControl;
-                PropertyContainer.Visibility = Visibility.Visible;
-                RightPanelBtn.IsChecked = true;
             }
         }
 

+ 5 - 2
Demo/Examples/PDFViewer/MainPage.xaml

@@ -333,8 +333,11 @@
                     </Grid.ColumnDefinitions> 
                     <Border x:Name="PDFGrid" Background="#CECECE"></Border> 
                     <cpdfcommon:PageNumberControl Grid.Row="1" Name="FloatPageTool" HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,0,0,20"></cpdfcommon:PageNumberControl>
- 
-                    <Border Grid.Column="1" Name="PropertyContainer" Visibility="Collapsed"></Border>
+                    <Grid Grid.Column="1">
+                        <TextBlock x:Name="EmptyMessage" Text="The property panel is empty." Visibility="{Binding ElementName=PropertyContainer, Path=Visibility}" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
+
+                        <Border Name="PropertyContainer" Visibility="Collapsed"></Border>
+                    </Grid>
                 </Grid>
             </Grid>
         </Grid>

+ 10 - 6
Demo/Examples/PDFViewer/MainPage.xaml.cs

@@ -1,5 +1,6 @@
 using ComPDFKit.PDFDocument;
 using ComPDFKit.PDFPage;
+using ComPDFKit.PDFPage.Edit;
 using Compdfkit_Tools.Data;
 using Compdfkit_Tools.Edit;
 using Compdfkit_Tools.Helper;
@@ -274,7 +275,7 @@ namespace PDFViewer
                 imageEditControl.SetPDFImageEditData(lastPDFEditEvent);
                 pdfEditControl = imageEditControl as UIElement;
                 PropertyContainer.Child = pdfEditControl;
-                ExpandRightPropertyPanel(pdfEditControl, Visibility.Visible);
+                //ExpandRightPropertyPanel(pdfEditControl, Visibility.Visible);
             }
         }
 
@@ -311,7 +312,7 @@ namespace PDFViewer
                     createParam.FontSize = 14;
                     createParam.FontName = "Courier New";
                     createParam.FontColor = Colors.Red;
-                    createParam.TextAlign = TextAlignType.AlignRight;
+                    createParam.TextAlign = TextAlignType.AlignLeft;
                     createParam.Transparency = 100;
                     pdfViewControl.PDFView?.SetPDFEditParam(createParam);
                     if (textEditControl == null)
@@ -1188,7 +1189,12 @@ namespace PDFViewer
         private void PDFView_PDFEditActiveHandler(object sender, ComPDFKitViewer.PDFEditEvent e)
         {
             lastPDFEditEvent = e;
-            ViewSettingBtn.IsChecked = false;
+            if ((bool)ViewSettingBtn.IsChecked)
+            {
+                ViewSettingBtn.IsChecked = false;
+                RightPanelButton.IsChecked = true;
+            }
+
             if (e == null)
             {
                 pdfEditControl = null;
@@ -1203,7 +1209,6 @@ namespace PDFViewer
                             textEditControl = new PDFTextEditControl();
                         }
                         textEditControl.SetPDFTextEditData(pdfTextCreateParam);
-                        ExpandRightPropertyPanel(textEditControl, Visibility.Visible);
                     }
                 }
                 return;
@@ -1214,7 +1219,6 @@ namespace PDFViewer
             }
             if (e.EditType == CPDFEditType.EditText)
             {
-                RightPanelButton.IsChecked = true;
                 if (textEditControl == null)
                 {
                     textEditControl = new PDFTextEditControl();
@@ -1222,7 +1226,7 @@ namespace PDFViewer
                 textEditControl.SetPDFTextEditData(e);
                 pdfEditControl = textEditControl as UIElement;
                 PropertyContainer.Child = pdfEditControl;
-                ExpandRightPropertyPanel(pdfEditControl, Visibility.Visible);
+                //ExpandRightPropertyPanel(pdfEditControl, Visibility.Visible);
                 return;
             }
 

+ 46 - 1
Demo/Examples/Samples/AnnotationTest/AnnotationTest.cs

@@ -29,7 +29,29 @@ namespace AnnotationTest
                 Directory.CreateDirectory(outputPath);
             }
 
-            CreateAnnots(document);
+            if (CreateAnnots(document))
+            {
+                Console.WriteLine("Create annots done.");
+            }
+            else
+            {
+                Console.WriteLine("Create annots failed.");
+            }
+            Console.WriteLine("--------------------");
+            CPDFDocument annotsDocument = CPDFDocument.InitWithFilePath("Annotations.pdf");
+            if (CreateAnnots(annotsDocument))
+            {
+                Console.WriteLine("Create annots done.");
+            }
+            else
+            {
+                Console.WriteLine("Create annots failed.");
+            }
+            Console.WriteLine("--------------------");
+            Console.WriteLine("Done");
+            Console.WriteLine("--------------------");
+
+            Console.ReadLine();
         }
 
         static private void CreateFreetextAnnotation(CPDFDocument document)
@@ -241,6 +263,29 @@ namespace AnnotationTest
             {
                 return false;
             }
+            Console.WriteLine("Browse the changed file in " + path); 
+            return true;
+        }
+
+        static private bool DeleteAnnotations(CPDFDocument document)
+        {
+            CPDFPage page = document.PageAtIndex(0);
+
+            List<CPDFAnnotation> annotList = page.GetAnnotations();
+            var annotNum = annotList.Count;
+            annotList[0].RemoveAnnot();
+
+            if (annotNum - annotList.Count != 1)
+            {
+                return false;
+            }
+            string path = outputPath + "\\DeleteAnnotsTest.pdf";
+            if (!document.WriteToFilePath(path))
+            {
+                return false;
+            }
+            Console.WriteLine("Browse the changed file in " + path);
+
             return true;
         }
     }

+ 4 - 0
Demo/Examples/Samples/AnnotationTest/AnnotationTest.csproj

@@ -59,6 +59,10 @@
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
   <ItemGroup>
+    <None Include="..\..\TestFile\Annotations.pdf">
+      <Link>Annotations.pdf</Link>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
     <None Include="..\..\TestFile\CommonFivePage.pdf">
       <Link>CommonFivePage.pdf</Link>
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>