|
@@ -1,15 +1,23 @@
|
|
using System;
|
|
using System;
|
|
using System.ComponentModel;
|
|
using System.ComponentModel;
|
|
|
|
+using System.Diagnostics;
|
|
|
|
+using System.Drawing;
|
|
|
|
+using System.IO;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Windows;
|
|
using System.Windows;
|
|
-using System.Windows.Controls;
|
|
|
|
using System.Windows.Input;
|
|
using System.Windows.Input;
|
|
|
|
+using System.Windows.Media.Imaging;
|
|
using Compdfkit_Tools.Annotation.PDFAnnotationPanel.PDFAnnotationUI;
|
|
using Compdfkit_Tools.Annotation.PDFAnnotationPanel.PDFAnnotationUI;
|
|
using Compdfkit_Tools.Common;
|
|
using Compdfkit_Tools.Common;
|
|
using Compdfkit_Tools.Helper;
|
|
using Compdfkit_Tools.Helper;
|
|
using Compdfkit_Tools.PDFControl;
|
|
using Compdfkit_Tools.PDFControl;
|
|
|
|
+using ComPDFKit.PDFPage;
|
|
|
|
+using ComPDFKit.PDFPage.Edit;
|
|
using ComPDFKitViewer;
|
|
using ComPDFKitViewer;
|
|
using ComPDFKit.Tool;
|
|
using ComPDFKit.Tool;
|
|
|
|
+using ContextMenu = System.Windows.Controls.ContextMenu;
|
|
|
|
+using MenuItem = System.Windows.Controls.MenuItem;
|
|
|
|
+using UserControl = System.Windows.Controls.UserControl;
|
|
|
|
|
|
namespace Compdfkit_Tools.PDFView
|
|
namespace Compdfkit_Tools.PDFView
|
|
{
|
|
{
|
|
@@ -122,6 +130,9 @@ namespace Compdfkit_Tools.PDFView
|
|
case MouseHitTestType.Text:
|
|
case MouseHitTestType.Text:
|
|
CreateSelectTextContextMenu(sender, ref ContextMenu);
|
|
CreateSelectTextContextMenu(sender, ref ContextMenu);
|
|
break;
|
|
break;
|
|
|
|
+ case MouseHitTestType.ImageSelect:
|
|
|
|
+ CreateSelectImageContextMenu(sender, ref ContextMenu);
|
|
|
|
+ break;
|
|
default:
|
|
default:
|
|
PdfViewControl.CreateViewerMenu(sender, ref ContextMenu);
|
|
PdfViewControl.CreateViewerMenu(sender, ref ContextMenu);
|
|
break;
|
|
break;
|
|
@@ -129,6 +140,23 @@ namespace Compdfkit_Tools.PDFView
|
|
PdfViewControl.SetRightMenu(ContextMenu);
|
|
PdfViewControl.SetRightMenu(ContextMenu);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private void CreateSelectImageContextMenu(object sender, ref ContextMenu menu)
|
|
|
|
+ {
|
|
|
|
+ if (menu == null)
|
|
|
|
+ {
|
|
|
|
+ menu = new ContextMenu();
|
|
|
|
+ }
|
|
|
|
+ MenuItem copyImage = new MenuItem();
|
|
|
|
+ copyImage.Header = "Copy Image";
|
|
|
|
+ copyImage.Click += CopyImage_Click;
|
|
|
|
+ menu.Items.Add(copyImage);
|
|
|
|
+
|
|
|
|
+ MenuItem extractImage = new MenuItem();
|
|
|
|
+ extractImage.Header = "Extract Image";
|
|
|
|
+ extractImage.Click += ExtractImage_Click;
|
|
|
|
+ menu.Items.Add(extractImage);
|
|
|
|
+ }
|
|
|
|
+
|
|
private void CreateSelectTextContextMenu(object sender, ref ContextMenu menu)
|
|
private void CreateSelectTextContextMenu(object sender, ref ContextMenu menu)
|
|
{
|
|
{
|
|
menu.Items.Add(new MenuItem() { Header = LanguageHelper.CommonManager.GetString("Menu_Copy"), Command = ApplicationCommands.Copy, CommandTarget = (UIElement)sender });
|
|
menu.Items.Add(new MenuItem() { Header = LanguageHelper.CommonManager.GetString("Menu_Copy"), Command = ApplicationCommands.Copy, CommandTarget = (UIElement)sender });
|
|
@@ -240,14 +268,54 @@ namespace Compdfkit_Tools.PDFView
|
|
|
|
|
|
#region Context Menu
|
|
#region Context Menu
|
|
|
|
|
|
- private void ExtraImage_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
|
+ private void ExtractImage_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
{
|
|
- //CommandHelper.ExtraImage_Click(PdfViewControl.PDFView.GetSelectedImages());
|
|
|
|
|
|
+ System.Windows.Forms.FolderBrowserDialog folderDialog = new System.Windows.Forms.FolderBrowserDialog();
|
|
|
|
+ if (folderDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
|
|
|
+ {
|
|
|
|
+ var image = PdfViewControl.FocusPDFViewTool.GetSelectImage();
|
|
|
|
+ if(image == null)
|
|
|
|
+ {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ CPDFPage page = PdfViewControl.PDFToolManager.GetDocument().PageAtIndex(image.PageIndex);
|
|
|
|
+ string savePath = Path.Combine(folderDialog.SelectedPath, Guid.NewGuid() + ".jpg");
|
|
|
|
+ string tempPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid() + ".jpg");
|
|
|
|
+ page.GetImgSelection().GetImgBitmap(image.ImageIndex, tempPath);
|
|
|
|
+
|
|
|
|
+ Bitmap bitmap = new Bitmap(tempPath);
|
|
|
|
+ bitmap.Save(savePath, System.Drawing.Imaging.ImageFormat.Jpeg);
|
|
|
|
+ Process.Start("explorer", "/select,\"" + savePath + "\"");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
private void CopyImage_Click(object sender, RoutedEventArgs e)
|
|
private void CopyImage_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
{
|
|
- //CommandHelper.CopyImage_Click(PdfViewControl.PDFView.GetSelectedImages());
|
|
|
|
|
|
+ var image = PdfViewControl.FocusPDFViewTool.GetSelectImage();
|
|
|
|
+ if(image == null)
|
|
|
|
+ {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ CPDFPage page = PdfViewControl.PDFToolManager.GetDocument().PageAtIndex(image.PageIndex);
|
|
|
|
+ string tempPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid() + ".jpg");
|
|
|
|
+ page.GetImgSelection().GetImgBitmap(image.ImageIndex, tempPath);
|
|
|
|
+
|
|
|
|
+ Bitmap bitmap = new Bitmap(tempPath);
|
|
|
|
+ BitmapImage imageData;
|
|
|
|
+ using (MemoryStream ms = new MemoryStream())
|
|
|
|
+ {
|
|
|
|
+ bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
|
|
|
|
+ imageData = new BitmapImage();
|
|
|
|
+ imageData.BeginInit();
|
|
|
|
+ imageData.StreamSource = ms;
|
|
|
|
+
|
|
|
|
+ imageData.CacheOption = BitmapCacheOption.OnLoad;
|
|
|
|
+ imageData.EndInit();
|
|
|
|
+ imageData.Freeze();
|
|
|
|
+ Clipboard.SetImage(imageData);
|
|
|
|
+ bitmap.Dispose();
|
|
|
|
+ File.Delete(tempPath);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
//private void PDFView_AnnotCommandHandler(object sender, AnnotCommandArgs e)
|
|
//private void PDFView_AnnotCommandHandler(object sender, AnnotCommandArgs e)
|