|
@@ -175,7 +175,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
|
|
|
set
|
|
|
{
|
|
|
SetProperty(ref _rotationValue, value);
|
|
|
- WatermarkInfo.Rotation = ((float)RotationValue / 180) * 3.1415926f;
|
|
|
+ WatermarkInfo.Rotation = RotationValue;
|
|
|
eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
|
|
|
{
|
|
|
Unicode = Unicode,
|
|
@@ -191,7 +191,7 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
|
|
|
set
|
|
|
{
|
|
|
SetProperty(ref _opacityValue, value);
|
|
|
- WatermarkInfo.Opacity = (byte)(((float)OpacityValue / 100) * 225);
|
|
|
+ WatermarkInfo.Opacity = (byte)OpacityValue;
|
|
|
eventAggregator.GetEvent<SetWatermarkEvent>().Publish(new WatermarkInfoUnicode
|
|
|
{
|
|
|
Unicode = Unicode,
|
|
@@ -696,8 +696,8 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
|
|
|
{
|
|
|
|
|
|
WatermarkInfo.Text = TextValue;
|
|
|
- WatermarkInfo.Rotation = (float)(((float)RotationValue / 180) * Math.PI);
|
|
|
- WatermarkInfo.Opacity = (byte)(((float)OpacityValue / 100) * 225);
|
|
|
+ WatermarkInfo.Rotation = RotationValue;
|
|
|
+ WatermarkInfo.Opacity = (byte)OpacityValue;
|
|
|
WatermarkInfo.VertOffset = float.Parse(VertOffsetValue);
|
|
|
WatermarkInfo.HorizOffset = float.Parse(HorizOffsetValue);
|
|
|
WatermarkInfo.VerticalSpacing = float.Parse(VerticalSpacingValue);
|
|
@@ -726,130 +726,131 @@ namespace PDF_Office.ViewModels.EditTools.Watermark
|
|
|
FontNameSelectedIndex = FontNameList.IndexOf(WatermarkInfo.FontName);
|
|
|
FontSizeSelectedIndex = FontSizeList.IndexOf(((int)(WatermarkInfo.TextSize / 1.33f)).ToString() + "pt");
|
|
|
IsFrontSelectedIndex = Convert.ToInt32(!WatermarkInfo.IsFront);
|
|
|
- RotationText = ((int)((WatermarkInfo.Rotation/ Math.PI) *180)).ToString();
|
|
|
- OpacityText = ((((float)WatermarkInfo.Opacity)/225)*100).ToString() + " %";
|
|
|
+ RotationText = WatermarkInfo.Rotation.ToString();
|
|
|
+ OpacityText = WatermarkInfo.Opacity.ToString() + " %";
|
|
|
RelativeScaleText = WatermarkInfo.TextSize.ToString() + " %";
|
|
|
+ IsFullValue = WatermarkInfo.Isfull;
|
|
|
InitLocationButtonMatrix();
|
|
|
|
|
|
}
|
|
|
- public void CreateWatermark(CPDFDocument document, WatermarkInfo watermarkInfo)
|
|
|
+ public void CreateWatermark(CPDFDocument document, WatermarkInfo watermarkInfo)
|
|
|
+ {
|
|
|
+ if (watermarkInfo != null)
|
|
|
{
|
|
|
- if (watermarkInfo != null)
|
|
|
+ document.DeleteWatermarks();
|
|
|
+ CPDFWatermark watermark;
|
|
|
+ if (watermarkInfo.WatermarkType == C_Watermark_Type.WATERMARK_TYPE_TEXT)
|
|
|
+ {
|
|
|
+ watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_TEXT);
|
|
|
+ watermark.SetText(watermarkInfo.Text);
|
|
|
+ watermark.SetFontName(watermarkInfo.FontName);
|
|
|
+ watermark.SetFontSize(watermarkInfo.TextSize);
|
|
|
+ watermark.SetTextRGBColor(watermarkInfo.TextColor);
|
|
|
+ }
|
|
|
+ else
|
|
|
{
|
|
|
- document.DeleteWatermarks();
|
|
|
- CPDFWatermark watermark;
|
|
|
- if (watermarkInfo.WatermarkType == C_Watermark_Type.WATERMARK_TYPE_TEXT)
|
|
|
+ watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_IMG);
|
|
|
+ if (watermarkInfo.ImageArray != null)
|
|
|
{
|
|
|
- watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_TEXT);
|
|
|
- watermark.SetText(watermarkInfo.Text);
|
|
|
- watermark.SetFontName(watermarkInfo.FontName);
|
|
|
- watermark.SetFontSize(watermarkInfo.TextSize);
|
|
|
- watermark.SetTextRGBColor(watermarkInfo.TextColor);
|
|
|
+ watermark.SetImage(watermarkInfo.ImageArray, watermarkInfo.ImageWidth, watermarkInfo.ImageHeight);
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_IMG);
|
|
|
- if (watermarkInfo.ImageArray != null)
|
|
|
- {
|
|
|
- watermark.SetImage(watermarkInfo.ImageArray, watermarkInfo.ImageWidth, watermarkInfo.ImageHeight);
|
|
|
- }
|
|
|
- watermark.SetScale(0.1f);
|
|
|
- }
|
|
|
- watermark.SetRotation(watermarkInfo.Rotation);
|
|
|
- watermark.SetOpacity(watermarkInfo.Opacity);
|
|
|
- watermark.SetFront(watermarkInfo.IsFront);
|
|
|
- watermark.SetVertalign(watermarkInfo.WatermarkVertalign);
|
|
|
- watermark.SetHorizalign(watermarkInfo.WatermarkHorizalign);
|
|
|
- watermark.SetFullScreen(watermarkInfo.Isfull);
|
|
|
- watermark.SetVertOffset(watermarkInfo.VertOffset);
|
|
|
- watermark.SetHorizOffset(watermarkInfo.HorizOffset);
|
|
|
- watermark.SetHorizontalSpacing(watermarkInfo.HorizontalSpacing);
|
|
|
- watermark.SetVerticalSpacing(watermarkInfo.VerticalSpacing);
|
|
|
- watermark.SetPages("0");
|
|
|
- Trace.WriteLine("IsCreateWatermark: " + watermark.CreateWatermark());
|
|
|
- Trace.WriteLine("IsUpdateWatermark: " + watermark.UpdateWatermark());
|
|
|
+ watermark.SetScale(0.1f);
|
|
|
}
|
|
|
+ watermark.SetRotation((float)((watermarkInfo.Rotation / 180) * Math.PI));
|
|
|
+ watermark.SetOpacity((byte)(((float)watermarkInfo.Opacity / 100) * 225));
|
|
|
+ watermark.SetFront(watermarkInfo.IsFront);
|
|
|
+ watermark.SetVertalign(watermarkInfo.WatermarkVertalign);
|
|
|
+ watermark.SetHorizalign(watermarkInfo.WatermarkHorizalign);
|
|
|
+ watermark.SetFullScreen(watermarkInfo.Isfull);
|
|
|
+ watermark.SetVertOffset(watermarkInfo.VertOffset);
|
|
|
+ watermark.SetHorizOffset(watermarkInfo.HorizOffset);
|
|
|
+ watermark.SetHorizontalSpacing(watermarkInfo.HorizontalSpacing);
|
|
|
+ watermark.SetVerticalSpacing(watermarkInfo.VerticalSpacing);
|
|
|
+ watermark.SetPages("0");
|
|
|
+ Trace.WriteLine("IsCreateWatermark: " + watermark.CreateWatermark());
|
|
|
+ Trace.WriteLine("IsUpdateWatermark: " + watermark.UpdateWatermark());
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- public void ConfirmEditWatermarkTemplateItem(EnumTextOrFileUnicode enumTextOrFileunicode)
|
|
|
+ public void ConfirmEditWatermarkTemplateItem(EnumTextOrFileUnicode enumTextOrFileunicode)
|
|
|
+ {
|
|
|
+ EnumTextOrFile enumTextOrFile = enumTextOrFileunicode.Status;
|
|
|
+ if (enumTextOrFile == EnumTextOrFile.StatusText)
|
|
|
{
|
|
|
- EnumTextOrFile enumTextOrFile = enumTextOrFileunicode.Status;
|
|
|
- if (enumTextOrFile == EnumTextOrFile.StatusText)
|
|
|
+ var watermarkItem = new WatermarkItem();
|
|
|
+ ConvertInfoToItem(ref watermarkItem, WatermarkInfo);
|
|
|
+ try
|
|
|
{
|
|
|
- var watermarkItem = new WatermarkItem();
|
|
|
- ConvertInfoToItem(ref watermarkItem, WatermarkInfo);
|
|
|
- try
|
|
|
+ //创建缓存文件夹
|
|
|
+ string folderPath = Path.Combine(App.CurrentPath, "Watermark");
|
|
|
+ //有可能因为其他原因存在同名文件,导致创建文件夹失败,需要先删除同名文件
|
|
|
+ //保险措施(猜测)
|
|
|
+ if (File.Exists(folderPath))
|
|
|
{
|
|
|
- //创建缓存文件夹
|
|
|
- string folderPath = Path.Combine(App.CurrentPath, "Watermark");
|
|
|
- //有可能因为其他原因存在同名文件,导致创建文件夹失败,需要先删除同名文件
|
|
|
- //保险措施(猜测)
|
|
|
- if (File.Exists(folderPath))
|
|
|
- {
|
|
|
- File.Delete(folderPath);
|
|
|
- }
|
|
|
-
|
|
|
- DirectoryInfo tempfolder = new DirectoryInfo(folderPath);
|
|
|
- if (!tempfolder.Exists)
|
|
|
- {
|
|
|
- tempfolder.Create();
|
|
|
- }
|
|
|
-
|
|
|
- //预览图缓存
|
|
|
- string saveName = Guid.NewGuid().ToString();
|
|
|
- string savePath = Path.Combine(folderPath, saveName);
|
|
|
- System.Windows.Size pageSize = new System.Windows.Size { Width = 128, Height = 160 };
|
|
|
- CPDFDocument tempDocument = CPDFDocument.CreateDocument();
|
|
|
- if (tempDocument != null)
|
|
|
- {
|
|
|
- tempDocument.InsertPage(0, pageSize.Width, pageSize.Height, null);
|
|
|
- CreateWatermark(tempDocument, WatermarkInfo);
|
|
|
+ File.Delete(folderPath);
|
|
|
+ }
|
|
|
|
|
|
- //获取透明背景的图片
|
|
|
- var bitmap = ToolMethod.RenderPageBitmapNoWait(tempDocument, (int)pageSize.Width, (int)pageSize.Height, 0, false, false, 0x00FFFFFF);
|
|
|
- using (FileStream stream = new FileStream(savePath, FileMode.Create))
|
|
|
- {
|
|
|
- bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
|
|
|
- }
|
|
|
+ DirectoryInfo tempfolder = new DirectoryInfo(folderPath);
|
|
|
+ if (!tempfolder.Exists)
|
|
|
+ {
|
|
|
+ tempfolder.Create();
|
|
|
+ }
|
|
|
|
|
|
- watermarkItem.previewImagePath = savePath;
|
|
|
- tempDocument.Release();
|
|
|
+ //预览图缓存
|
|
|
+ string saveName = Guid.NewGuid().ToString();
|
|
|
+ string savePath = Path.Combine(folderPath, saveName);
|
|
|
+ System.Windows.Size pageSize = new System.Windows.Size { Width = 128, Height = 160 };
|
|
|
+ CPDFDocument tempDocument = CPDFDocument.CreateDocument();
|
|
|
+ if (tempDocument != null)
|
|
|
+ {
|
|
|
+ tempDocument.InsertPage(0, pageSize.Width, pageSize.Height, null);
|
|
|
+ CreateWatermark(tempDocument, WatermarkInfo);
|
|
|
|
|
|
- Settings.Default.WatermarkTemplateList[TemplateWatermarkItem.listIndex] = watermarkItem;
|
|
|
- Settings.Default.Save();
|
|
|
+ //获取透明背景的图片
|
|
|
+ var bitmap = ToolMethod.RenderPageBitmapNoWait(tempDocument, (int)pageSize.Width, (int)pageSize.Height, 0, false, false, 0x00FFFFFF);
|
|
|
+ using (FileStream stream = new FileStream(savePath, FileMode.Create))
|
|
|
+ {
|
|
|
+ bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
|
|
|
}
|
|
|
- }
|
|
|
- catch
|
|
|
- {
|
|
|
|
|
|
+ watermarkItem.previewImagePath = savePath;
|
|
|
+ tempDocument.Release();
|
|
|
+
|
|
|
+ Settings.Default.WatermarkTemplateList[TemplateWatermarkItem.listIndex] = watermarkItem;
|
|
|
+ Settings.Default.Save();
|
|
|
}
|
|
|
- this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
|
|
|
- {
|
|
|
- Unicode = Unicode,
|
|
|
- Status = EnumTemplateListOrCreate.StatusTemplate
|
|
|
- });
|
|
|
+ }
|
|
|
+ catch
|
|
|
+ {
|
|
|
|
|
|
}
|
|
|
- }
|
|
|
+ this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(new EnumTemplateListOrCreateUnicode
|
|
|
+ {
|
|
|
+ Unicode = Unicode,
|
|
|
+ Status = EnumTemplateListOrCreate.StatusTemplate
|
|
|
+ });
|
|
|
|
|
|
- public bool IsNavigationTarget(NavigationContext navigationContext)
|
|
|
- {
|
|
|
- return true;
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- public void OnNavigatedFrom(NavigationContext navigationContext)
|
|
|
- {
|
|
|
- }
|
|
|
+ public bool IsNavigationTarget(NavigationContext navigationContext)
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
|
|
|
- public void OnNavigatedTo(NavigationContext navigationContext)
|
|
|
- {
|
|
|
- navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
|
|
|
- EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref WatermarkInfo.PageRange, PageRangeText);
|
|
|
- if (navigationContext.Parameters.TryGetValue<WatermarkItem>("WatermarkItem", out TemplateWatermarkItem))
|
|
|
- {
|
|
|
- InitComponentBySelectedInfo();
|
|
|
- }
|
|
|
+ public void OnNavigatedFrom(NavigationContext navigationContext)
|
|
|
+ {
|
|
|
+ }
|
|
|
|
|
|
+ public void OnNavigatedTo(NavigationContext navigationContext)
|
|
|
+ {
|
|
|
+ navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
|
|
|
+ EditToolsHelper.GetPageRange(PageRangeSelectIndex, PDFViewer.Document, ref WatermarkInfo.PageRange, PageRangeText);
|
|
|
+ if (navigationContext.Parameters.TryGetValue<WatermarkItem>("WatermarkItem", out TemplateWatermarkItem))
|
|
|
+ {
|
|
|
+ InitComponentBySelectedInfo();
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
+}
|