123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- using ComPDFKitViewer.PdfViewer;
- using PDF_Office.EventAggregators;
- using PDF_Office.Model.EditTools.Background;
- using PDF_Office.Model;
- using Prism.Commands;
- using Prism.Events;
- using Prism.Mvvm;
- using Prism.Regions;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using PDF_Office.Model.EditTools.Watermark;
- using ComPDFKit.PDFDocument;
- using ComPDFKit.PDFPage;
- using System.Windows.Media.Imaging;
- using System.Windows.Media;
- using System.Threading.Tasks;
- using ComPDFKit.PDFWatermark;
- using PDF_Office.Helper;
- using PDF_Office.Model.Dialog.HomePageToolsDialogs.HomePagePrinter;
- using System.Drawing;
- using System.Windows;
- namespace PDF_Office.ViewModels.EditTools.Watermark
- {
- public class WatermarkDocumentContentViewModel : BindableBase,INavigationAware
- {
- public IEventAggregator eventAggregator;
- public CPDFViewer PDFViewer;
- public CPDFDocument document;
- private CPDFWatermark watermark;
- private ImageSource _imageSource = null;
- public ImageSource ImageSource
- {
- get { return _imageSource; }
- set
- {
- SetProperty(ref _imageSource, value);
- }
- }
- public WatermarkDocumentContentViewModel(IEventAggregator eventAggregator)
- {
- this.eventAggregator = eventAggregator;
- eventAggregator.GetEvent<SetWatermarkEvent>().Subscribe(SetWatermark);
- }
- public void SetWatermark(WatermarkInfo watermarkInfo)
- {
- CreateWatermark(watermarkInfo);
- <<<<<<< Updated upstream
- document.PdfToImage("1", "C:\\Users\\kdanmobile\\Desktop");
- document.WriteToFilePath("C:\\Users\\kdanmobile\\Desktop\\sb22222.pdf");
- =======
- document.PdfToImage("0-1", "D:\\");
- document.WriteToFilePath("D:\\sb22222.pdf");
- >>>>>>> Stashed changes
- AwaitRenderBitmap(document);
- }
- public void CreateWatermark(WatermarkInfo watermarkInfo)
- {
- if (watermarkInfo.WatermarkType == C_Watermark_Type.WATERMARK_TYPE_TEXT)
- {
- watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_TEXT);
- watermark.SetText(watermarkInfo.Text);
- if (watermarkInfo.TextSize == null)
- {
- watermarkInfo.TextSize = "6";
- }
- watermark.SetFontName(watermarkInfo.FontName);
- watermark.SetScale(float.Parse(watermarkInfo.TextSize));
- watermark.SetTextRGBColor(watermarkInfo.TextColor);
- }
- else
- {
- watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_IMG);
- 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(true);
- watermark.SetVertOffset(watermarkInfo.VertOffset);
- watermark.SetHorizOffset(watermarkInfo.HorizOffset);
- watermark.SetHorizontalSpacing(watermarkInfo.HorizontalSpacing);
- watermark.SetVerticalSpacing(watermarkInfo.VerticalSpacing);
- watermark.SetPages("0");
- watermark.CreateWatermark();
- watermark.UpdateWatermark();
-
- }
- public BitmapSource ToBitmapSource(System.Drawing.Bitmap image)
- {
- IntPtr ptr = image.GetHbitmap();//obtain the Hbitmap
- BitmapSource bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap
- (
- ptr,
- IntPtr.Zero,
- Int32Rect.Empty,
- System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()
- );
- ;
- return bs;
- }
- public async Task RenderBitmap(CPDFDocument doc)
- {
-
- CPDFPage page = doc.PageAtIndex(0,true);
- byte[] bmp_data = new byte[(int)page.PageSize.Width * (int)page.PageSize.Height * 4];
- Bitmap bitmap = await ToolMethod.RenderPageBitmap(document, (int)(page.PageSize.Width * 1 * 1.4), (int)(page.PageSize.Height * 1 * 1.4), 0, true, true);
- ImageSource = ToBitmapSource(bitmap);
- <<<<<<< Updated upstream
- doc.ReleasePages();
- =======
- MessageBox.Show(ImageSource.ToString());
- >>>>>>> Stashed changes
- }
- public async void AwaitRenderBitmap(CPDFDocument doc)
- {
- await RenderBitmap(doc);
- }
- public bool IsNavigationTarget(NavigationContext navigationContext)
- {
- return true;
- }
- public void OnNavigatedFrom(NavigationContext navigationContext)
- {
- }
- public void OnNavigatedTo(NavigationContext navigationContext)
- {
- navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
- document = PDFViewer.Document;
- AwaitRenderBitmap(PDFViewer.Document);
- }
- }
- }
|