void RenderPreview(int i) { SPanel.Children.Clear(); Canvas can = CanvasSaveLoad.LoadSpecificCanvas(data, i); CanvasSaveLoad.ToPresentationMode(can); CanvasSaveLoad.SimulateCanvas(can); can.UpdateLayout(); Size size = new Size(); can.Measure(size); can.Arrange(new Rect(size)); ImageSource bs = ImageWorker.ByteDataToImage(CanvasWriter.SaveCanvasToImgSimulateFullPng(can)); Border pageP = new Border(); pageP.Background = new ImageBrush(bs); pageP.BorderBrush = new SolidColorBrush(Color.FromRgb(44, 62, 80)); pageP.BorderThickness = new Thickness(3); pageP.Width = data.CanvasW; pageP.Height = data.CanvasH; pageP.Margin = new Thickness(10, 10, 10, 15); SPanel.Children.Add(pageP); L_Page.Content = (i + 1) + "/" + data.pages.Count; }
private void PrintAddPage(int i, FixedDocument document, Size sizeContent, Size margins) { Canvas can = CanvasSaveLoad.LoadSpecificCanvas(data, i); CanvasSaveLoad.ToPresentationMode(can); CanvasSaveLoad.SimulateCanvas(can); can.UpdateLayout(); Size size = new Size(); can.Measure(size); can.Arrange(new Rect(size)); ImageSource bs = ImageWorker.ByteDataToImage(CanvasWriter.SaveCanvasToImgSimulateFullPng(can)); Image image = new Image(); if (SB_Fit.IsChecked()) { image.Width = sizeContent.Width; image.Height = sizeContent.Height; } else { image.Width = data.CanvasW; image.Height = data.CanvasH; } image.Stretch = Stretch.Uniform; image.Source = bs; FixedPage page = new FixedPage(); page.Width = document.DocumentPaginator.PageSize.Width; page.Height = document.DocumentPaginator.PageSize.Width; if (SB_Fit.IsChecked()) { page.Margin = new Thickness(margins.Width, margins.Height, 0, 0); } page.Children.Clear(); page.Children.Add(image); PageContent pageContent = new PageContent(); ((IAddChild)pageContent).AddChild(page); document.Pages.Add(pageContent); }
private void LoadCanvas() { Canvas can = CanvasSaveLoad.LoadSpecificCanvas(data, curloaded); CanvasSaveLoad.ToPresentationMode(can); CanvasSaveLoad.SimulateCanvas(can); can.UpdateLayout(); Size size = new Size(); can.Measure(size); can.Arrange(new Rect(size)); ImageSource bs = ImageWorker.ByteDataToImage(CanvasWriter.SaveCanvasToImgSimulateFullPng(can)); IMBorder.Background = new ImageBrush(bs); IMBorder.BorderBrush = new SolidColorBrush(Color.FromRgb(0, 0, 0)); IMBorder.BorderThickness = new Thickness(1); IMBorder.Width = data.CanvasW; IMBorder.Height = data.CanvasH; TextBox_Page.Text = "" + (curloaded + 1); L_Pages.Content = "/" + data.pages.Count; }
private void ExportCanvasToPDF() { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.FileName = Strings.ResStrings.File + ".pdf"; saveFileDialog.Filter = Strings.FormatStrings.PDF + "| *.pdf|" + Strings.ResStrings.AllFiles + "| *.*"; if (saveFileDialog.ShowDialog() == true) { PdfDocument pdf = new PdfDocument(); for (int i = 0; i < data.pages.Count; i++) { Canvas can = CanvasSaveLoad.LoadSpecificCanvas(data, i); CanvasSaveLoad.ToPresentationMode(can); CanvasSaveLoad.SimulateCanvas(can); can.UpdateLayout(); Size size = new Size(); can.Measure(size); can.Arrange(new Rect(size)); BitmapSource bs; if (RB_BQuality.IsChecked == true) { bs = (BitmapSource)ImageWorker.ByteDataToImage(CanvasWriter.SaveCanvasToImgSimulateFullPng(can)); } else { int quality = 90; int.TryParse(TB_Quality.Text, out quality); bs = (BitmapSource)ImageWorker.ByteDataToImage(CanvasWriter.SaveCanvasToImgSimulateFullJpg(can, quality)); } var ximg = XImage.FromBitmapSource(bs); ximg.Interpolate = false; PdfPage pdfPage = pdf.AddPage(); pdfPage.Width = XUnit.FromPresentation(data.CanvasW); pdfPage.Height = XUnit.FromPresentation(data.CanvasH); XGraphics xgr = XGraphics.FromPdfPage(pdfPage); xgr.DrawImage( ximg, 0, 0, pdfPage.Width, pdfPage.Height); } pdf.Info.Creator = Strings.ResStrings.AppName; pdf.Info.CreationDate = DateTime.Now; pdf.Info.Subject = TB_Subject.Text; pdf.Info.Author = TB_Author.Text; pdf.Info.Title = TB_Title.Text; pdf.Info.Keywords = TB_Keywords.Text; pdf.Save(saveFileDialog.FileName); IsExported = true; Close(); } }