|
@@ -9,7 +9,34 @@ using System.Threading.Tasks;
|
|
|
|
|
|
namespace PDF_Office.Helper
|
|
|
{
|
|
|
+ /// <summary>
|
|
|
+ /// 预设需求:远程控制对PDF工具进行排序
|
|
|
+ /// </summary>
|
|
|
public enum PDFToolType
|
|
|
+ {
|
|
|
+ /// <summary>
|
|
|
+ /// 普通工具
|
|
|
+ /// </summary>
|
|
|
+ Normal,
|
|
|
+ /// <summary>
|
|
|
+ /// 常用工具
|
|
|
+ /// </summary>
|
|
|
+ Common,
|
|
|
+ /// <summary>
|
|
|
+ ///付费工具
|
|
|
+ /// </summary>
|
|
|
+ Payment,
|
|
|
+ /// <summary>
|
|
|
+ /// 优势工具
|
|
|
+ /// </summary>
|
|
|
+ Advantage,
|
|
|
+ /// <summary>
|
|
|
+ /// 无需打开文档
|
|
|
+ /// </summary>
|
|
|
+ NoNeedToOpenDoc
|
|
|
+
|
|
|
+ }
|
|
|
+ public enum PDFFnType
|
|
|
{
|
|
|
Split,
|
|
|
Extract,
|
|
@@ -31,12 +58,61 @@ namespace PDF_Office.Helper
|
|
|
Background,
|
|
|
CompareDoc
|
|
|
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// PDF工具初始化类型
|
|
|
+ /// </summary>
|
|
|
+ internal class PDFToolsInit
|
|
|
+ {
|
|
|
+ public ToolItem toolItem { get; private set; }
|
|
|
+ public PDFToolsInit()
|
|
|
+ {
|
|
|
+ toolItem = new ToolItem();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 图标
|
|
|
+ /// </summary>
|
|
|
+ public void SetImagePath(string path)
|
|
|
+ {
|
|
|
+ toolItem.Image = path;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 初始化UI显示内容
|
|
|
+ /// </summary>
|
|
|
+ public void SetContent(string fnName,string fnInfo)
|
|
|
+ {
|
|
|
+ toolItem.Title = fnName;
|
|
|
+ toolItem.TitleInfo = fnInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 初始化功能
|
|
|
+ /// </summary>
|
|
|
+ public void SetFnType(PDFFnType fnType)
|
|
|
+ {
|
|
|
+ toolItem.FnType = (int)fnType;
|
|
|
+ toolItem.strFnType = Enum.GetName(typeof(PDFFnType), fnType);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
public class PDFToolsHelper
|
|
|
{
|
|
|
public List<ToolItem> AllTools = null;
|
|
|
public List<ToolItem> QuickTools = null;
|
|
|
- public PDFToolsHelper()
|
|
|
+ public List<ToolItem> MoreTools = null;
|
|
|
+ private static PDFToolsHelper pDFToolsHelper;
|
|
|
+ public static PDFToolsHelper GetInstance()
|
|
|
+ {
|
|
|
+ if (pDFToolsHelper == null)
|
|
|
+ pDFToolsHelper = new PDFToolsHelper();
|
|
|
+
|
|
|
+ return pDFToolsHelper;
|
|
|
+ }
|
|
|
+ private PDFToolsHelper()
|
|
|
{
|
|
|
InitPDFTools();
|
|
|
}
|
|
@@ -44,99 +120,220 @@ namespace PDF_Office.Helper
|
|
|
private void InitPDFTools()
|
|
|
{
|
|
|
AllTools = new List<ToolItem>();
|
|
|
+ QuickTools = new List<ToolItem>();
|
|
|
+ MoreTools = new List<ToolItem>();
|
|
|
+ //测试代码
|
|
|
+ //Settings.Default.AllPDFToolsList.Clear();
|
|
|
+ //Settings.Default.QuickPDFToolsList.Clear();
|
|
|
+ //Settings.Default.Save();
|
|
|
InitAllTools();
|
|
|
+ ContianNewTools();
|
|
|
InitQuickTools();
|
|
|
+ InitMoreTools();
|
|
|
}
|
|
|
|
|
|
private void InitAllTools()
|
|
|
- {
|
|
|
- string path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/split.png";
|
|
|
- AddToolItem(PDFToolType.Split, path, "拆分", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+ {
|
|
|
+
|
|
|
+ var split = new PDFToolsInit();
|
|
|
+ split.SetFnType(PDFFnType.Split);
|
|
|
+ split.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/split.png");
|
|
|
+ split.SetContent("拆分", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+
|
|
|
+ var extract = new PDFToolsInit();
|
|
|
+ extract.SetFnType(PDFFnType.Extract);
|
|
|
+ extract.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/extract.png");
|
|
|
+ extract.SetContent("提取", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+
|
|
|
+ var insert = new PDFToolsInit();
|
|
|
+ insert.SetFnType(PDFFnType.Insert);
|
|
|
+ insert.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/insert.png");
|
|
|
+ insert.SetContent("插入", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+
|
|
|
+ var compress = new PDFToolsInit();
|
|
|
+ compress.SetFnType(PDFFnType.Compress);
|
|
|
+ compress.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/compress.png");
|
|
|
+ compress.SetContent("压缩", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+
|
|
|
+ var merge = new PDFToolsInit();
|
|
|
+ merge.SetFnType(PDFFnType.Merge);
|
|
|
+ merge.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/merge.png");
|
|
|
+ merge.SetContent("合并", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+
|
|
|
+ var print = new PDFToolsInit();
|
|
|
+ print.SetFnType(PDFFnType.Print);
|
|
|
+ print.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/print.png");
|
|
|
+ print.SetContent("打印", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/extract.png";
|
|
|
- AddToolItem(PDFToolType.Extract, path, "提取", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+ var security = new PDFToolsInit();
|
|
|
+ security.SetFnType(PDFFnType.Security);
|
|
|
+ security.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/security.png");
|
|
|
+ security.SetContent("安全", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/insert.png";
|
|
|
- AddToolItem(PDFToolType.Insert, path, "插入", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+ var convertPDF = new PDFToolsInit();
|
|
|
+ convertPDF.SetFnType(PDFFnType.ConvertPDF);
|
|
|
+ convertPDF.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/convert.png");
|
|
|
+ convertPDF.SetContent("转档PDF", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/compress.png";
|
|
|
- AddToolItem(PDFToolType.Compress, path, "压缩", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+ var pDFToWord = new PDFToolsInit();
|
|
|
+ pDFToWord.SetFnType(PDFFnType.PDFToWord);
|
|
|
+ pDFToWord.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/pdf-to-word.png");
|
|
|
+ pDFToWord.SetContent("PDF转Word", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/merge.png";
|
|
|
- AddToolItem(PDFToolType.Merge, path, "合并", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/print.png";
|
|
|
- AddToolItem(PDFToolType.Print, path, "打印", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+ var pDFToExcel = new PDFToolsInit();
|
|
|
+ pDFToExcel.SetFnType(PDFFnType.PDFToExcel);
|
|
|
+ pDFToExcel.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/pdf-to-excel.png");
|
|
|
+ pDFToExcel.SetContent("PDF转Excel", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/security.png";
|
|
|
- AddToolItem(PDFToolType.Security, path, "安全", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/convert.png";
|
|
|
- AddToolItem(PDFToolType.ConvertPDF, path, "转档PDF", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+ var pDFToPPT = new PDFToolsInit();
|
|
|
+ pDFToPPT.SetFnType(PDFFnType.PDFToPPT);
|
|
|
+ pDFToPPT.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/pdf-to-ppt.png");
|
|
|
+ pDFToPPT.SetContent("PDF转PPT", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/pdf-to-word.png";
|
|
|
- AddToolItem(PDFToolType.PDFToWord, path, "PDF转Word", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/pdf-to-excel.png";
|
|
|
- AddToolItem(PDFToolType.PDFToExcel, path, "PDF转Excel", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+ var imageToPDF = new PDFToolsInit();
|
|
|
+ imageToPDF.SetFnType(PDFFnType.ImageToPDF);
|
|
|
+ imageToPDF.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/image.png");
|
|
|
+ imageToPDF.SetContent("图片转PDF", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/pdf-to-ppt.png";
|
|
|
- AddToolItem(PDFToolType.PDFToPPT, path, "PDF转PPT", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+ var oCR = new PDFToolsInit();
|
|
|
+ oCR.SetFnType(PDFFnType.OCR);
|
|
|
+ oCR.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/ocr.png");
|
|
|
+ oCR.SetContent("OCR", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/image.png";
|
|
|
- AddToolItem(PDFToolType.ImageToPDF, path, "图片转PDF", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+ var waterMark = new PDFToolsInit();
|
|
|
+ waterMark.SetFnType(PDFFnType.WaterMark);
|
|
|
+ waterMark.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/watermark.png");
|
|
|
+ waterMark.SetContent("水印", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/ocr.png";
|
|
|
- AddToolItem(PDFToolType.OCR, path, "OCR", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+ var headerFooter = new PDFToolsInit();
|
|
|
+ headerFooter.SetFnType(PDFFnType.HeaderFooter);
|
|
|
+ headerFooter.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/header&footer.png");
|
|
|
+ headerFooter.SetContent("页眉页脚", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/watermark.png";
|
|
|
- AddToolItem(PDFToolType.WaterMark, path, "水印", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+ var batesNumbers = new PDFToolsInit();
|
|
|
+ batesNumbers.SetFnType(PDFFnType.BatesNumbers);
|
|
|
+ batesNumbers.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/batesnumbers.png");
|
|
|
+ batesNumbers.SetContent("贝茨Bates码", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/header&footer.png";
|
|
|
- AddToolItem(PDFToolType.HeaderFooter, path, "页眉页脚", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/batesnumbers.png";
|
|
|
- AddToolItem(PDFToolType.BatesNumbers, path, "贝茨Bates码", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+ var batch = new PDFToolsInit();
|
|
|
+ batch.SetFnType(PDFFnType.Batch);
|
|
|
+ batch.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/batch.png");
|
|
|
+ batch.SetContent("批量处理", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/batch.png";
|
|
|
- AddToolItem(PDFToolType.Batch, path, "批量处理", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/background.png";
|
|
|
- AddToolItem(PDFToolType.Background, path, "背景", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+ var background = new PDFToolsInit();
|
|
|
+ background.SetFnType(PDFFnType.Background);
|
|
|
+ background.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/background.png");
|
|
|
+ background.SetContent("背景", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
- path = @"pack://application:,,,/Resources/HomeIcon/PDFTools/compress.png";
|
|
|
- AddToolItem(PDFToolType.CompareDoc, path, "文件对比", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
|
|
|
-
|
|
|
+ var compareDoc = new PDFToolsInit();
|
|
|
+ compareDoc.SetFnType(PDFFnType.CompareDoc);
|
|
|
+ compareDoc.SetImagePath(@"pack://application:,,,/Resources/HomeIcon/PDFTools/compress.png");
|
|
|
+ compareDoc.SetContent("文件对比", "Batch convert, compress, secure, watermark PDFs.");
|
|
|
+
|
|
|
+ AllTools.Add(split.toolItem);
|
|
|
+ AllTools.Add(extract.toolItem);
|
|
|
+ AllTools.Add(insert.toolItem);
|
|
|
+ AllTools.Add(compress.toolItem);
|
|
|
+ AllTools.Add(merge.toolItem);
|
|
|
+ AllTools.Add(print.toolItem);
|
|
|
+ AllTools.Add(security.toolItem);
|
|
|
+ AllTools.Add(convertPDF.toolItem);
|
|
|
+ AllTools.Add(pDFToWord.toolItem);
|
|
|
+ AllTools.Add(pDFToExcel.toolItem);
|
|
|
+ AllTools.Add(pDFToPPT.toolItem);
|
|
|
+ AllTools.Add(imageToPDF.toolItem);
|
|
|
+ AllTools.Add(oCR.toolItem);
|
|
|
+ AllTools.Add(waterMark.toolItem);
|
|
|
+ AllTools.Add(headerFooter.toolItem);
|
|
|
+ AllTools.Add(batesNumbers.toolItem);
|
|
|
+ AllTools.Add(batch.toolItem);
|
|
|
+ AllTools.Add(background.toolItem);
|
|
|
+ AllTools.Add(compareDoc.toolItem);
|
|
|
}
|
|
|
|
|
|
private void ContianNewTools()
|
|
|
{
|
|
|
- if (Settings.Default.AllPDFToolsList != null)
|
|
|
+ Settings.Default.AllPDFToolsList.Clear();
|
|
|
+ foreach (var item in AllTools)
|
|
|
{
|
|
|
- foreach(var item in AllTools)
|
|
|
- {
|
|
|
- Settings.Default.AllPDFToolsList.FirstOrDefault(tool => tool.Tag == item.Tag);
|
|
|
- }
|
|
|
+ Settings.Default.AllPDFToolsList.Add(item);
|
|
|
}
|
|
|
+ Settings.Default.Save();
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- private void AddToolItem(PDFToolType toolType, string imgPath,string title,string titleInfo,int id = 0)
|
|
|
+ /// <summary>
|
|
|
+ /// 快捷工具
|
|
|
+ /// </summary>
|
|
|
+ private void InitQuickTools()
|
|
|
{
|
|
|
- ToolItem toolItem = new ToolItem();
|
|
|
-
|
|
|
- toolItem.Id = id;
|
|
|
- toolItem.Tag = (int)toolType;
|
|
|
- toolItem.TagStr = Enum.GetName(typeof(PDFToolType), toolType);
|
|
|
- toolItem.Image = imgPath;
|
|
|
- toolItem.Title = title;
|
|
|
- toolItem.TitleInfo = titleInfo;
|
|
|
- AllTools.Add(toolItem);
|
|
|
+ var settingQuickToolslist = Settings.Default.QuickPDFToolsList;
|
|
|
+
|
|
|
+ int quickToolCount = 0;
|
|
|
+ if (settingQuickToolslist != null && settingQuickToolslist.Count > 0)
|
|
|
+ {
|
|
|
+ foreach (var item in AllTools)
|
|
|
+ {
|
|
|
+ if (quickToolCount == 8)
|
|
|
+ break;
|
|
|
+
|
|
|
+ var pdfToolItem = settingQuickToolslist.FirstOrDefault(tool => tool.strFnType == item.strFnType);
|
|
|
+ if (pdfToolItem != null)
|
|
|
+ {
|
|
|
+ quickToolCount++;
|
|
|
+ pdfToolItem.FnType = item.FnType;
|
|
|
+ QuickTools.Add(pdfToolItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (quickToolCount < 8 && AllTools.Count > 8)
|
|
|
+ {
|
|
|
+ var count = 8 - quickToolCount;
|
|
|
+ for (int i = count - 1; i < count; i++)
|
|
|
+ {
|
|
|
+ QuickTools.Add(AllTools[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (settingQuickToolslist == null)
|
|
|
+ Settings.Default.QuickPDFToolsList = new QuickPDFToolsList();
|
|
|
+
|
|
|
+ QuickTools = AllTools.Take(8).ToList<ToolItem>();
|
|
|
+
|
|
|
+ foreach(var item in QuickTools)
|
|
|
+ {
|
|
|
+ Settings.Default.QuickPDFToolsList.Add(item);
|
|
|
+ }
|
|
|
+
|
|
|
+ Settings.Default.Save();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- private void InitQuickTools()
|
|
|
+ private void InitMoreTools()
|
|
|
{
|
|
|
- QuickTools = AllTools.Take(8).ToList<ToolItem>();
|
|
|
+ List<ToolItem> more = new List<ToolItem>();
|
|
|
+ foreach (var item in AllTools)
|
|
|
+ {
|
|
|
+ var pdfToolItem = QuickTools.FirstOrDefault(tool => tool.strFnType == item.strFnType);
|
|
|
+ if (pdfToolItem == null)
|
|
|
+ {
|
|
|
+ more.Add(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ MoreTools = more;
|
|
|
}
|
|
|
}
|
|
|
|