using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.IO; using System.Linq; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using ComPDFKit.NativeMethod; using ComPDFKit_Conversion.Converter; using PDF_Office.CustomControl; using PDF_Office.CustomControl.SystemControl; using PDF_Office.ViewModels; using PDF_Office.Views; using PDF_Office.Views.BOTA; using PDF_Office.Views.Dialog; using PDF_Office.Views.HomePanel; using Prism.DryIoc; using Prism.Ioc; using Prism.Regions; using PDF_Office.Model; using PDF_Office.Views.PageEdit; using PDF_Office.Properties; using PDFSettings.Settings; using PDF_Office.Views.Tools; using PDF_Office.Views.Dialog.ToolsDialogs.SaftyDialogs; using PDF_Office.Views.Dialog.ToolsDialogs.CompressDialogs; using PDF_Office.Views.Dialog.PageEditDialogs; using PDF_Office.Helper; using PDF_Office.Views.Dialog.HomePageToolsDialogs; using PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePagePrinter; using PDF_Office.Views.PropertyPanel; using PDF_Office.Views.Dialog.BOTA; using PDF_Office.Views.PropertyPanel.AnnotPanel; using PDF_Office.Views.FillAndSign; using PDF_Office.Views.FillAndSign.PropertyPanel; using PDF_Office.Views.PropertyPanel.ViewModular; using PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing; using PDF_Office.Views.Dialog.ConverterDialogs; using PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing.HomePageConverter; using PDF_Office.Views.EditTools.Watermark; using PDF_Office.Views.EditTools.Background; using PDF_Office.Views.EditTools.Bates; using PDF_Office.Views.EditTools.HeaderFooter; using PDF_Office.Views.EditTools.Redaction; using PDF_Office.Views.Form; using PDF_Office.Views.PropertyPanel.PDFEdit; using PDF_Office.Views.Dialog.ToolsDialogs; using PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing.HomePageHeaderFooter; using PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing.HomePageBates; using PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing.HomePageWatermark; using PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing.HomePageBackground; using ComDocumentAIKit; using PDF_Office.Views.PropertyPanel.Scan; using PDF_Office.Views.Dialog.Redaction; using PDF_Office.Views.Scan; namespace PDF_Office { /// <summary> /// App.xaml 的交互逻辑 /// </summary> public partial class App : PrismApplication { public static string CurrentPath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "PDF Office"); public static MainWindowViewModel mainWindowViewModel; /// <summary> /// 当前软件已打开的文件路径列表 /// </summary> public static List<string> OpenedFileList = new List<string>(); public static CacheFilePath CachePath; /// <summary> /// OCR数据模型所在目录 /// </summary> public static string modelFolderPath = null; public static bool IsFirstOpen = true; public static bool IsBookMode = false; public App() { #if !DEBUG //接入Appcenter后台数据检测 string appkey = "b099dccc-1ca5-4ea1-a2fa-afd4a6e1f8bb" AppCenter.Start(appkey, typeof(Analytics), typeof(Crashes)); var countryCode = RegionInfo.CurrentRegion.TwoLetterISORegionName;//上传国家信息 AppCenter.SetCountryCode(countryCode); #endif } private void InitSettings() { if (Settings.Default.RecentOpenFiles == null) Settings.Default.RecentOpenFiles = new RecentOpenFiles(); if (Settings.Default.RedactionsSettings == null) Settings.Default.RedactionsSettings = new PDFSettings.RedactionSettings(); if (Settings.Default.AppProperties == null) Settings.Default.AppProperties = new PDFSettings.APPSettingProperties(); if (Settings.Default.AllPDFToolsList == null) Settings.Default.AllPDFToolsList = new PDFSettings.AllPDFToolsList(); if (Settings.Default.QuickPDFToolsList == null) Settings.Default.QuickPDFToolsList = new PDFSettings.QuickPDFToolsList(); } protected override void OnStartup(StartupEventArgs e) { LicenseVerify(); InitSettings(); CachePath = CacheFilePath.Instance; //清除临时文件 CacheFilePath.Instance.ClearDeleteFiles(); try { DirectoryInfo info = new DirectoryInfo(CurrentPath); //避免因存在同名文件,导致无法创建文件夹 if (File.Exists(CurrentPath)) { File.Delete(CurrentPath); } if (!info.Exists) { info.Create(); } } catch (Exception ex) { } base.OnStartup(e); } /// <summary> /// 创建启动窗口 /// </summary> /// <returns></returns> protected override Window CreateShell() { return Container.Resolve<MainWindow>(); } protected override void RegisterTypes(IContainerRegistry containerRegistry) { #region 注册内容组件 containerRegistry.RegisterForNavigation<HomeContent>(); containerRegistry.RegisterForNavigation<ViewContent>(); containerRegistry.RegisterForNavigation<ScanViwer>(); containerRegistry.RegisterForNavigation<MainContent>(); containerRegistry.RegisterForNavigation<HomeCloudContent>("Cloud"); containerRegistry.RegisterForNavigation<HomeToolsContent>("Tools"); containerRegistry.RegisterForNavigation<HomeGuidContent>("Guid"); containerRegistry.RegisterForNavigation<BOTAContent>(); containerRegistry.RegisterForNavigation<PropertyPanelContent>(); containerRegistry.RegisterForNavigation<PageEditContent>(); containerRegistry.RegisterForNavigation<BottomToolContent>(); containerRegistry.RegisterForNavigation<ToolsBarContent>(); containerRegistry.RegisterForNavigation<TextEditToolContent>(); containerRegistry.RegisterForNavigation<AnnotToolContent>(); containerRegistry.RegisterForNavigation<BookmarkContent>(); containerRegistry.RegisterForNavigation<SearchContent>(); containerRegistry.RegisterForNavigation<OutLineControl>(); containerRegistry.RegisterForNavigation<ViewModularContent>(); containerRegistry.RegisterForNavigation<SplitScreenContent>(); containerRegistry.RegisterForNavigation<ThemesContent>(); containerRegistry.RegisterForNavigation<ReadModeContent>(); containerRegistry.RegisterForNavigation<AnnotationContent>(); containerRegistry.RegisterForNavigation<ReadViewContent>(); containerRegistry.RegisterForNavigation<PageContent>(); containerRegistry.RegisterForNavigation<HomePagePrinterDocumentContent>(); containerRegistry.RegisterForNavigation<HomePagePrinterModSizeContent>(); containerRegistry.RegisterForNavigation<HomePagePrinterModPosterContent>(); containerRegistry.RegisterForNavigation<HomePagePrinterModMultipleContent>(); containerRegistry.RegisterForNavigation<HomePagePrinterModBookletContent>(); containerRegistry.RegisterForNavigation<HomePageCompressDialog>(); containerRegistry.RegisterForNavigation<HomePageSetPasswordDialog>(); containerRegistry.RegisterForNavigation<HomePageRemoveDialog>(); containerRegistry.RegisterForNavigation<HomePageHeaderFooterDialog>(); containerRegistry.RegisterForNavigation<HomePageHeaderFooterTemplateListContent>(); containerRegistry.RegisterForNavigation<HomePageHeaderFooterCreateContent>(); containerRegistry.RegisterForNavigation<HomePageBatesDialog>(); containerRegistry.RegisterForNavigation<HomePageBatesTemplateListContent>(); containerRegistry.RegisterForNavigation<HomePageBatesCreateContent>(); containerRegistry.RegisterForNavigation<HomePageBackgroundDialog>(); containerRegistry.RegisterForNavigation<HomePageBackgroundTemplateListBaseContent>(); containerRegistry.RegisterForNavigation<HomePageBackgroundTemplateListColorContent>(); containerRegistry.RegisterForNavigation<HomePageBackgroundTemplateListFileContent>(); containerRegistry.RegisterForNavigation<HomePageBackgroundCreateBaseContent>(); containerRegistry.RegisterForNavigation<HomePageBackgroundCreateColorContent>(); containerRegistry.RegisterForNavigation<HomePageBackgroundCreateFileContent>(); containerRegistry.RegisterForNavigation<HomePageWatermarkDialog>(); containerRegistry.RegisterForNavigation<HomePageWatermarkTemplateListBaseContent>(); containerRegistry.RegisterForNavigation<HomePageWatermarkTemplateListTextContent>(); containerRegistry.RegisterForNavigation<HomePageWatermarkTemplateListFileContent>(); containerRegistry.RegisterForNavigation<HomePageWatermarkCreateBaseContent>(); containerRegistry.RegisterForNavigation<HomePageWatermarkCreateTextContent>(); containerRegistry.RegisterForNavigation<HomePageWatermarkCreateFileContent>(); containerRegistry.RegisterForNavigation<ConverterBarContent>(); containerRegistry.RegisterForNavigation<ScanContent>(); containerRegistry.RegisterForNavigation<HomePageConverterDialog>(); containerRegistry.RegisterForNavigation<HomePageConverterCSV>(); containerRegistry.RegisterForNavigation<HomePageConverterImg>(); containerRegistry.RegisterForNavigation<HomePageConverterWord>(); containerRegistry.RegisterForNavigation<HomePageConverterExcel>(); containerRegistry.RegisterForNavigation<WatermarkContent>(); containerRegistry.RegisterForNavigation<BackgroundContent>(); containerRegistry.RegisterForNavigation<BackgroundTemplateListBaseContent>(); containerRegistry.RegisterForNavigation<BackgroundTemplateListColorContent>(); containerRegistry.RegisterForNavigation<BackgroundTemplateListFileContent>(); containerRegistry.RegisterForNavigation<BackgroundCreateBaseContent>(); containerRegistry.RegisterForNavigation<BackgroundCreateColorContent>(); containerRegistry.RegisterForNavigation<BackgroundCreateFileContent>(); containerRegistry.RegisterForNavigation<BackgroundDocumentContent>(); containerRegistry.RegisterForNavigation<WatermarkTemplateListBaseContent>(); containerRegistry.RegisterForNavigation<WatermarkTemplateListTextContent>(); containerRegistry.RegisterForNavigation<WatermarkTemplateListFileContent>(); containerRegistry.RegisterForNavigation<WatermarkCreateBaseContent>(); containerRegistry.RegisterForNavigation<WatermarkCreateTextContent>(); containerRegistry.RegisterForNavigation<WatermarkCreateFileContent>(); containerRegistry.RegisterForNavigation<WatermarkDocumentContent>(); containerRegistry.RegisterForNavigation<HomePagePrinterModMultipleContent>(); containerRegistry.RegisterForNavigation<FreehandAnnotProperty>(); containerRegistry.RegisterForNavigation<FreetextAnnotProperty>(); containerRegistry.RegisterForNavigation<StickyNoteProperty>(); containerRegistry.RegisterForNavigation<ImageAnnotProperty>(); containerRegistry.RegisterForNavigation<LinkAnnotProperty>(); containerRegistry.RegisterForNavigation<SharpsAnnotProperty>(); containerRegistry.RegisterForNavigation<StampAnnotProperty>(); containerRegistry.RegisterForNavigation<SignatureAnnotProperty>(); containerRegistry.RegisterForNavigation<TextAnnotProperty>(); containerRegistry.RegisterForNavigation<ImageEditProperty>(); containerRegistry.RegisterForNavigation<TextEditProperty>(); containerRegistry.RegisterForNavigation<ImageEditProperty>(); containerRegistry.RegisterForNavigation<ImageTextEditProperty>(); containerRegistry.RegisterForNavigation<ScanPropertyPanel>(); containerRegistry.RegisterForNavigation<BatesContent>(); containerRegistry.RegisterForNavigation<BatesTemplateListContent>(); containerRegistry.RegisterForNavigation<BatesCreateContent>(); containerRegistry.RegisterForNavigation<BatesDocumentContent>(); containerRegistry.RegisterForNavigation<HeaderFooterContent>(); containerRegistry.RegisterForNavigation<HeaderFooterTemplateListContent>(); containerRegistry.RegisterForNavigation<HeaderFooterCreateContent>(); containerRegistry.RegisterForNavigation<HeaderFooterDocumentContent>(); containerRegistry.RegisterForNavigation<RedactionContent>(); //填写与签名 containerRegistry.RegisterForNavigation<FillAndSignContent>(); containerRegistry.RegisterForNavigation<DateFillProperty>(); containerRegistry.RegisterForNavigation<ShapFillProperty>(); containerRegistry.RegisterForNavigation<TextFillProperty>(); //Form表单 containerRegistry.RegisterForNavigation<EmptyFormProperty>(); containerRegistry.RegisterForNavigation<FormsToolContent>(); containerRegistry.RegisterForNavigation<TextFieldProperty>(); containerRegistry.RegisterForNavigation<ButtonProperty>(); containerRegistry.RegisterForNavigation<CheckBoxProperty>(); containerRegistry.RegisterForNavigation<ListBoxProperty>(); containerRegistry.RegisterForNavigation<ComboxProperty>(); containerRegistry.RegisterForNavigation<RadioButtonProperty>(); containerRegistry.RegisterForNavigation<SignProperty>(); #endregion 注册内容组件 #region 注册弹窗 containerRegistry.RegisterDialog<VerifyPassWordDialog>(DialogNames.VerifyPassWordDialog); containerRegistry.RegisterDialog<FullScreenWindow>(DialogNames.FullScreenDialog); containerRegistry.RegisterDialog<CompressDialog>(DialogNames.CompressDialog); containerRegistry.RegisterDialog<MergeDialog>(DialogNames.MergeDialog); containerRegistry.RegisterDialog<SetPasswordDialog>(DialogNames.SetPasswordDialog); containerRegistry.RegisterDialog<CheckPasswordDialog>(DialogNames.CheckPasswordDialog); containerRegistry.RegisterDialog<DeleteSafetySettingsDialog>(DialogNames.DeleteSafetySettingsDialog); containerRegistry.RegisterDialog<CompressProgressBarDialog, PDF_Office.ViewModels.Dialog.ToolsDialogs.CompressDialogs.CompresProgressBarDialogViewModel>(DialogNames.CompressProgressBarDialog); containerRegistry.RegisterDialog<InsertDialog>(DialogNames.InsertDialog); containerRegistry.RegisterDialog<SplitDialog>(DialogNames.SplitDialog); containerRegistry.RegisterDialog<ExtractDialog>(DialogNames.ExtractDialog); containerRegistry.RegisterDialog<HomePageExtractDialog>(DialogNames.HomePageExtractDialog); containerRegistry.RegisterDialog<HomePageInsertDialog>(DialogNames.HomePageInsertDialog); containerRegistry.RegisterDialog<HomePageSplitDialog>(DialogNames.HomePageSplitDialog); containerRegistry.RegisterDialog<HomePagePrinterDialog>(DialogNames.HomePagePrinterDialog); containerRegistry.RegisterDialog<HomePagePrinterPaperSettingsDialog>(DialogNames.HomePagePrinterPaperSettingsDialog); containerRegistry.RegisterDialog<HomePagePictureToPDFDialog>(DialogNames.HomePagePictureToPDFDialog); containerRegistry.RegisterDialog<HomePageBatchProcessingDialog>(DialogNames.HomePageBatchProcessingDialog); containerRegistry.RegisterDialog<DynamicPropertyDialog>(DialogNames.DynamicPropertyDialog); containerRegistry.RegisterDialog<CustomCreateDialog>(DialogNames.CustomCreateDialog); containerRegistry.RegisterDialog<SignatureCreateDialog>(DialogNames.SignatureCreateDialog); containerRegistry.RegisterDialog<ConverterCSVDialog>(DialogNames.ConverterCSVDialog); containerRegistry.RegisterDialog<ConverterPPTDialog>(DialogNames.ConverterPPTDialog); containerRegistry.RegisterDialog<ConverterTextDialog>(DialogNames.ConverterTextDialog); containerRegistry.RegisterDialog<ConverterWordDialog>(DialogNames.ConverterWordDialog); containerRegistry.RegisterDialog<ConverterHTMLDialog>(DialogNames.ConverterHTMLDialog); containerRegistry.RegisterDialog<ConverterImgDialog>(DialogNames.ConverterImgDialog); containerRegistry.RegisterDialog<ConverterRTFDialog>(DialogNames.ConverterRTFDialog); containerRegistry.RegisterDialog<ConverterExcelDialog>(DialogNames.ConverterExcelDialog); containerRegistry.RegisterDialog<ConverterProgressBarDialog>(DialogNames.ConverterProgressBarDialog); containerRegistry.RegisterDialog<ScreenAnnotationDialog>(DialogNames.ScreenAnnotationDialog); containerRegistry.RegisterDialog<AddBookmarkDialog>(DialogNames.AddBookmarkDialog); containerRegistry.RegisterDialog<EditPresetColorsDialog>(DialogNames.EditPresetColorsDialog); containerRegistry.RegisterDialog<CreateFromHtmlDialog>(DialogNames.CreateFromHtmlDialog); //标记密文弹窗 containerRegistry.RegisterDialog<MarkSettingDialog>(DialogNames.MarkSettingDialog); containerRegistry.RegisterDialog<PageMarkDialog>(DialogNames.PageMarkDialog); containerRegistry.RegisterDialog<RepeatMarkDialog>(DialogNames.RepeatMarkDialog); #endregion 注册弹窗 } protected override void ConfigureRegionAdapterMappings(RegionAdapterMappings regionAdapterMappings) { var region = new SingleActiveRegion() { Name = RegionNames.MainRegion }; region.Behaviors.Add(DragablzWindowBehavior.BehaviorKey, new DragablzWindowBehavior()); Container.Resolve<IRegionManager>().Regions.Add(region); base.ConfigureRegionAdapterMappings(regionAdapterMappings); } /// <summary> /// 验证SDK和转档库密钥 /// </summary> /// <returns></returns> private static bool LicenseVerify() { bool result = false; try { result = CPDFSDKVerifier.LoadNativeLibrary(); if (!result) return false; } catch { } SDKLisenceHelper sdkhelper = new SDKLisenceHelper(); string devKey = ""; string devSecret = ""; #if DEBUG devKey = "ehrnKqkWc1XSEAWyPUt6+95GzCoLEyoKrCbsUuJkCqGmxmP5ozX4bS0R6crHItQVNTFvC5mBZ1M7QjJ6Ekdu4Daj7PM+EDLTBKbFJinK4Ri9E5E2X+a9vF5zSj0TkIscQPVnwj9ikxAFOWGIyybMwQQzwc8a4j1cGOqGXQRDMMY="; devSecret = "mG0c3O3Mzeu5dkZJW3gpqq9uA7o7EGQveSC38Q8TK4gQurxTxGuBlGAhs0P1mD3X3bHT+AHfcLiymaqE4DY7kTFHoPs9I3tl5ErS+BHdzHRhrp9sGpqfp0B228KI+IMTu4aGVjtYuk+Uxs/kosIBw1367/WkJ00tM7U7tttD6ccHhEu996bvBgqf8Sw8OekQKQq13VBewK5AckaDux4W7SGRhCUNWC4MItkr36JnXMD2tiFQYzMG8C66HYmRGSLh"; devKey = sdkhelper.DevKey; devSecret = sdkhelper.DevSecret; #endif string userKey = sdkhelper.UserKey; string userSecret = sdkhelper.UserSecret; try { LicenseErrorCode verifyResult = CPDFSDKVerifier.LicenseVerify(devKey, devSecret); if (verifyResult != LicenseErrorCode.LICENSE_ERR_SUCCESS) return false; } catch { } string ConverterDevKey = sdkhelper.ConverterDevKey; string ConverterDevSecret = sdkhelper.ConverterDevSecret; string ConverterUserkey = sdkhelper.ConverterUserkey; string ConverterUserSecret = sdkhelper.ConverterUserSecret; try { //加载OCR库 if (!DocumentAIKitLicenseVerify()) { } /*LicenseError licenseerror = CPDFConverter.SDKLicenseVerify(ConverterDevKey, ConverterDevSecret, ConverterUserkey, ConverterUserSecret); string resPath = Path.GetDirectoryName(typeof(MainWindow).Assembly.Location) + "\\"; if (licenseerror != LicenseError.ERR_SUCCESS) { return false; } CPDFConverter.Init(resPath);*/ string resPath = Path.GetDirectoryName(typeof(MainWindow).Assembly.Location) + "\\"; LicenseError licenseerror = CPDFConverter.LicenseVerify(ConverterDevKey, ConverterDevSecret); if (licenseerror != LicenseError.ERR_SUCCESS) { //MessageBox.Show("ComPDFKit Conversion SDK Load Failed!"); return false; } CPDFConverter.Init(resPath); } catch { } return result; } /// <summary> /// 加载,验证DocumentAIKitLicense /// </summary> /// <returns></returns> private static bool DocumentAIKitLicenseVerify() { Task.Factory.StartNew(() => { string exePath = Path.GetDirectoryName(typeof(MainWindow).Assembly.Location); exePath = Path.Combine(exePath, "x64"); string libFolderPath = Path.Combine(exePath, "DocumentAILib"); modelFolderPath = Path.Combine(exePath, "models"); if (CDocumentAIKit.LoadNativeLibrary(libFolderPath) == false) return; CErrorCode error = CDocumentAIKit.LicenseVerify("1F8B081800599C640000616C7068610034413635373236463644363535393631364536370001F0010FFE233ADDA59FE0D165ED3FDA803F00290784A61082A670D78962619644B1FB167A00E22AD95DF24FEFEE5012FF42348727B60D54D37E9511A5605F2EA45E64D731CCBD0C1B4CC1CDFFD251C1A91F5B631720867F2F6100189A6F37048B23FB73D1CA10C2B94DC3F51333E142402F73A6952E98392796168A2AE76A760C175A1F03D09EF9A69C1EFA8440DF9C5C6011DB60CD563564B9AEDD3C423A657C71990CE801703CC1750742BA00F8F1EF55FCD57F5B336F06520469D6274F54C579FDDBB29499894F5298D4CDFFB5008238BE8626A86FBD5E1895FABE4FDB249DA11AA6E589770059E49B3DCD507683F75D15CF05DD46091464EF07888764BF4ED0848423378F2CB8B9176EE463B1F2B1D8BD776113BAEF4C9A78EE7BC12EF192DABD2FBAB2E252A09B38A85BFCD76B4AFBEFF5A4E9FFE499A77B76E97B9C01CC7485688CD696FD1145D47AD969074FD300783583B70460617A0EC2D7579D0EC5AC33DB3F32E0CC920AC25B6D8F177D2F73FF2645D8B495FD41E80F37807E0FFD7B4D77012469C8367C0CBF29C8A3E505AA53E62661FFC59771E77C3C274B51E2C066E87C796BA6AC2D2567D25560A7E9DFE3433F92D146B7FFCF5F51312260B7A0FB5F8EA9A2991EB66467D73F6E9740F82B1791A2F54C6E73EC564EAC8145FDA9978398714E155220EB72BA3ADCB7E4169C1DC907ABAF1FF0010000"); if (error != CErrorCode.E_DA_SUCCESS) return; }); return true; } protected override void OnExit(ExitEventArgs e) { Environment.Exit(1); base.OnExit(e); } } }