Esempio n. 1
0
        private void PrintDic_Paginate(object sender, PaginateEventArgs e)
        {
            PrintTaskOptions opt = task.Options;
            // 根据页面的方向来调整打印内容的旋转方向
            //switch (opt.Orientation)
            //{
            //    case PrintOrientation.Default:
            //        rottrf.Angle = 0d;
            //        break;
            //    case PrintOrientation.Portrait:
            //        rottrf.Angle = 0d;
            //        break;
            //    case PrintOrientation.Landscape:
            //        rottrf.Angle = 90d;
            //        break;
            //}
            // 设置预览页面的总页数
            PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(e.PrintTaskOptions);
            string pageContent = (printDetailedOptions.Options["PageContent"].Value as string).ToLowerInvariant();

            // Set the text & image display flag
            imageText = (DisplayContent)((Convert.ToInt32(pageContent.Contains("pictures")) << 1) | Convert.ToInt32(pageContent.Contains("text")));


            printDoc.SetPreviewPageCount(1, PreviewPageCountType.Final);
        }
Esempio n. 2
0
        private void PrintDic_Paginate(object sender, PaginateEventArgs e)
        {
            PrintTaskOptions       opt = task.Options;
            PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(e.PrintTaskOptions);

            printDoc.SetPreviewPageCount(1, PreviewPageCountType.Final);
        }
        /// <summary>
        /// This is the event handler for PrintManager.PrintTaskRequested.
        /// In order to ensure a good user experience, the system requires that the app handle the PrintTaskRequested event within the time specified by PrintTaskRequestedEventArgs.Request.Deadline.
        /// Therefore, we use this handler to only create the print task.
        /// The print settings customization can be done when the print document source is requested.
        /// </summary>
        /// <param name="sender">PrintManager</param>
        /// <param name="e">PrintTaskRequestedEventArgs</param>
        protected override void PrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs e)
        {
            PrintTask printTask = null;

            printTask = e.Request.CreatePrintTask("C# Printing SDK Sample", sourceRequestedArgs =>
            {
                PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(printTask.Options);
                IList <string> displayedOptions             = printDetailedOptions.DisplayedOptions;

                // Choose the printer options to be shown.
                // The order in which the options are appended determines the order in which they appear in the UI
                displayedOptions.Clear();

                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Copies);
                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Orientation);
                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.ColorMode);

                // Create a new list option
                PrintCustomItemListOptionDetails pageFormat = printDetailedOptions.CreateItemListOption("PageRange", "Page Range");
                pageFormat.AddItem("PrintAll", "Print all");
                pageFormat.AddItem("PrintSelection", "Print Selection");
                pageFormat.AddItem("PrintRange", "Print Range");

                // Add the custom option to the option list
                displayedOptions.Add("PageRange");

                // Create new edit option
                PrintCustomTextOptionDetails pageRangeEdit = printDetailedOptions.CreateTextOption("PageRangeEdit", "Range");

                // Register the handler for the option change event
                printDetailedOptions.OptionChanged += printDetailedOptions_OptionChanged;

                // Register the handler for the PrintTask.Completed event.
                // Print Task event handler is invoked when the print job is completed.
                printTask.Completed += async(s, args) =>
                {
                    pageRangeEditVisible = false;
                    selectionMode        = false;
                    pageList.Clear();

                    // Notify the user when the print operation fails.
                    if (args.Completion == PrintTaskCompletion.Failed)
                    {
                        await scenarioPage.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                        {
                            LogHelper.Log(LogLevel.Error, "Failed to print.");
                        });
                    }

                    await scenarioPage.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                    {
                        // Restore first page to its default layout.
                        // Undo any changes made by a text selection.
                        ShowContent(null);
                    });
                };

                sourceRequestedArgs.SetSource(printDocumentSource);
            });
        }
Esempio n. 4
0
        private void PrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs e)
        {
            PrintTask printTask = null;

            printTask = e.Request.CreatePrintTask(this.title, sourceRequested =>
            {
                sourceRequested.SetSource(this.printDocumentSource);
            });

            var printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(printTask.Options);
            var displayedOptions     = printDetailedOptions.DisplayedOptions;

            var alignOption = printDetailedOptions.CreateItemListOption("LayoutOption", "Layout Option");

            alignOption.AddItem("Center", "Center");
            alignOption.AddItem("AlignLeftOrTop", "Align to the Left or to the Top");
            alignOption.AddItem("AlignRightOrBottom", "Align to the right or to the bottom");

            this.printLayout = PrintPanel.LayoutOption.Centered;
            displayedOptions.Clear();

            displayedOptions.Add(StandardPrintTaskOptions.Copies);
            displayedOptions.Add("LayoutOption");
            displayedOptions.Add(StandardPrintTaskOptions.MediaSize);
            displayedOptions.Add(StandardPrintTaskOptions.Orientation);
            displayedOptions.Add(StandardPrintTaskOptions.ColorMode);
            displayedOptions.Add(StandardPrintTaskOptions.PrintQuality);

            printDetailedOptions.OptionChanged += this.PrintDetailedOptions_OptionChanged;
        }
        private void PrintDocument_Print(CanvasPrintDocument sender, CanvasPrintEventArgs args)
        {
            var detailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(args.PrintTaskOptions);
            var pageRange       = detailedOptions.Options["PageRange"].Value.ToString();

            int pageCountToPrint;

            if (pageRange == "PrintFirstPage")
            {
                pageCountToPrint = 1;
            }
            else
            {
                pageCountToPrint = pageCount;
            }

            for (uint i = 1; i <= pageCountToPrint; ++i)
            {
                using (var ds = args.CreateDrawingSession())
                {
                    var imageableRect = args.PrintTaskOptions.GetPageDescription(i).ImageableRect;

                    DrawPage(sender, ds, i, imageableRect);
                }
            }
        }
        protected virtual void PrintTaskRequested(PrintManager sender,
                                                  PrintTaskRequestedEventArgs e)
        {
            Task = e.Request.CreatePrintTask(PrintTitle, async sourceRequested =>
            {
                PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(Task.Options);

                printDetailedOptions.DisplayedOptions.Clear();
                printDetailedOptions.DisplayedOptions.Add(StandardPrintTaskOptions.Copies);

                Task.Options.Orientation = PrintOrientation.Portrait;

                Task.Completed += async(s, args) =>
                {
                    if (args.Completion == PrintTaskCompletion.Failed)
                    {
                        await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                        {
                            Debug.WriteLine("Failed to print.");
                        });
                    }
                };

                await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    sourceRequested.SetSource(PrintDoc?.DocumentSource);
                });
            });
        }
        async void OnPrintDocumentPrintTaskRequested(PrintManager sender,
                                                     PrintTaskRequestedEventArgs args)
        {
            PrintTaskRequestedDeferral deferral = args.Request.GetDeferral();

            // Obtain PrintTask
            PrintTask printTask = args.Request.CreatePrintTask("Finger Paint",
                                                               OnPrintTaskSourceRequested);

            // Probably set orientation to landscape
            PrintTaskOptionDetails optionDetails =
                PrintTaskOptionDetails.GetFromPrintTaskOptions(printTask.Options);

            PrintOrientationOptionDetails orientation =
                optionDetails.Options[StandardPrintTaskOptions.Orientation] as
                PrintOrientationOptionDetails;

            bool bitmapIsLandscape = false;

            await border.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                BitmapSource bitmapSource = getBitmap();
                bitmapIsLandscape         = bitmapSource.PixelWidth > bitmapSource.PixelHeight;
            });

            orientation.TrySetValue(bitmapIsLandscape ? PrintOrientation.Landscape :
                                    PrintOrientation.Portrait);

            deferral.Complete();
        }
        void OnPrintManagerPrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs args)
        {
            PrintTask printTask = args.Request.CreatePrintTask("The Tale of Tom Kitten",
                                                               OnPrintTaskSourceRequested);

            // Get PrintTaskOptionDetails for making changes to options
            PrintTaskOptionDetails optionDetails =
                PrintTaskOptionDetails.GetFromPrintTaskOptions(printTask.Options);

            // Create the custom item
            PrintCustomItemListOptionDetails pageRange =
                optionDetails.CreateItemListOption("idPrintRange", "Print range");

            pageRange.AddItem("idPrintAll", "Print all pages");
            pageRange.AddItem("idPrintCustom", "Print custom range");

            // Add it to the options
            optionDetails.DisplayedOptions.Add("idPrintRange");

            // Create a page-range edit item also, but this only
            //      comes into play when user selects "Print custom range"
            optionDetails.CreateTextOption("idCustomRangeEdit", "Custom Range");

            // Set a handler for the OptionChanged event
            optionDetails.OptionChanged += OnOptionDetailsOptionChanged;
        }
        void OnPrintDocumentPaginate(object sender, PaginateEventArgs args)
        {
            // Obtain the print range option
            PrintTaskOptionDetails optionDetails =
                PrintTaskOptionDetails.GetFromPrintTaskOptions(args.PrintTaskOptions);

            string strValue = optionDetails.Options["idPrintRange"].Value as string;

            if (strValue == "idPrintCustom")
            {
                // Parse the print range for GetPreviewPage and AddPages
                string strPageRange = optionDetails.Options["idCustomRangeEdit"].Value as string;
                customPageRange = new CustomPageRange(strPageRange, bookPages.Length);
            }
            else
            {
                // Make sure field is null if printing all pages
                customPageRange = null;
            }

            int pageCount = bookPages.Length;

            if (customPageRange != null && customPageRange.IsValid)
            {
                pageCount = customPageRange.PageMapping.Count;
            }

            printDocument.SetPreviewPageCount(pageCount, PreviewPageCountType.Final);
        }
Esempio n. 10
0
        private void Printmgr_PrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs args)
        {
            //从参数的Request属性中获取与PrintTaskRequest的任务关联
            //创建好打印内容和任务后 在调用Complete方法进行打印
            var deferral = args.Request.GetDeferral();

            // 创建打印任务
            task            = args.Request.CreatePrintTask("Print", OnPrintTaskSourceRequrested);
            task.Completed += PrintTask_Completed;

            PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(task.Options);
            IList <string>         displayedOptions     = printDetailedOptions.DisplayedOptions;
            //displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Copies);
            //displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Orientation);
            //displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.ColorMode);

            // Create a new list option
            PrintCustomItemListOptionDetails pageFormat = printDetailedOptions.CreateItemListOption("PageContent", "Pictures");

            pageFormat.AddItem("PicturesText", "Pictures and text");
            pageFormat.AddItem("PicturesOnly", "Pictures only");
            pageFormat.AddItem("TextOnly", "Text only");

            // Add the custom option to the option list
            displayedOptions.Add("PageContent");

            printDetailedOptions.OptionChanged += printDetailedOptions_OptionChanged;


            deferral.Complete();
        }
Esempio n. 11
0
        /// <summary>
        /// This is the event handler for PrintManager.PrintTaskRequested.
        /// </summary>
        /// <param name="sender">PrintManager</param>
        /// <param name="e">PrintTaskRequestedEventArgs </param>
        protected virtual void PrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs e)
        {
            PrintTask printTask = null;

            printTask = e.Request.CreatePrintTask(JobName, async sourceRequestedArgs =>
            {
                var deferral = sourceRequestedArgs.GetDeferral();

                PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(printTask.Options);
                IList <string> displayedOptions             = printTask.Options.DisplayedOptions;
                displayedOptions.Clear();
                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Copies);
                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Orientation);
                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.PrintQuality);
                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.MediaSize);
                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Collation);
                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Duplex);

                // Preset the default value of the printer option
                printTask.Options.MediaSize = PrintMediaSize.NorthAmericaLetter;

                // Create a new list option
                PrintCustomItemListOptionDetails margins = printDetailedOptions.CreateItemListOption("Margins", "Margins");
                margins.AddItem("WideMargins", "Wide", "Each margin is 20% of the paper size", null);
                margins.AddItem("ModerateMargins", "Moderate", "Each margin is 10% of the paper size", null);
                margins.AddItem("NarrowMargins", "Narrow", "Each margin is 5% of the paper size", null);
                // The default is ModerateMargins
                ApplicationContentMarginTop  = 0.1;
                ApplicationContentMarginLeft = 0.1;
                margins.TrySetValue("ModerateMargins");

                // App tells the user some more information about what the feature means.
                margins.Description = "The space between the content of your document and the edge of the paper";

                // Add the custom option to the option list
                displayedOptions.Add("Margins");

                printDetailedOptions.OptionChanged += OnPrintDetailOptionChanged;

                // Print Task event handler is invoked when the print job is completed.
                printTask.Completed += async(s, args) =>
                {
                    // Notify the user when the print operation fails.
                    if (args.Completion == PrintTaskCompletion.Failed)
                    {
                        await ApplicationPage.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                        {
                            //MainPage.Current.NotifyUser("Failed to print.", NotifyType.ErrorMessage);
                            Console.WriteLine("Failed to print.");
                        });
                    }
                    UnregisterForPrinting();
                };

                sourceRequestedArgs.SetSource(printDocumentSource);

                deferral.Complete();
            });
        }
        /// <summary>
        /// This is the event handler for PrintManager.PrintTaskRequested.
        /// In order to ensure a good user experience, the system requires that the app handle the PrintTaskRequested event within the time specified
        /// by PrintTaskRequestedEventArgs->Request->Deadline.
        /// Therefore, we use this handler to only create the print task.
        /// The print settings customization can be done when the print document source is requested.
        /// </summary>
        /// <param name="sender">The print manager for which a print task request was made.</param>
        /// <param name="e">The print taks request associated arguments.</param>
        protected override void PrintTaskRequested(Windows.Graphics.Printing.PrintManager sender, Windows.Graphics.Printing.PrintTaskRequestedEventArgs e)
        {
            PrintTask printTask = null;

            printTask = e.Request.CreatePrintTask("Printing Coloring Page", sourceRequestedArgs =>
            {
                PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(printTask.Options);

                // Choose the printer options to be shown.
                // The order in which the options are appended determines the order in which they appear in the UI
                printDetailedOptions.DisplayedOptions.Clear();
                printDetailedOptions.DisplayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.MediaSize);
                printDetailedOptions.DisplayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Copies);

                // Create a new list option.
                PrintCustomItemListOptionDetails photoSize = printDetailedOptions.CreateItemListOption("photoSize", "Photo Size");
                photoSize.AddItem("SizeFullPage", "Full Page");
                photoSize.AddItem("Size4x6", "4 x 6 in");
                photoSize.AddItem("Size5x7", "5 x 7 in");
                photoSize.AddItem("Size8x10", "8 x 10 in");

                // Add the custom option to the option list.
                printDetailedOptions.DisplayedOptions.Add("photoSize");

                PrintCustomItemListOptionDetails scaling = printDetailedOptions.CreateItemListOption("scaling", "Scaling");
                scaling.AddItem("ShrinkToFit", "Shrink To Fit");
                scaling.AddItem("Crop", "Crop");

                // Add the custom option to the option list.
                printDetailedOptions.DisplayedOptions.Add("scaling");

                // Set default orientation to landscape.
                printTask.Options.Orientation = PrintOrientation.Landscape;

                // Register for print task option changed notifications.
                printDetailedOptions.OptionChanged += PrintDetailedOptionsOptionChanged;

                // Register for print task Completed notification.
                // Print Task event handler is invoked when the print job is completed.
                printTask.Completed += async(s, args) =>
                {
                    await scenarioPage.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                    {
                        ClearPageCollection();

                        // Reset image options to default values.
                        this.photoScale = Scaling.ShrinkToFit;
                        this.photoSize  = PhotoSize.SizeFullPage;

                        // Reset the current page description
                        currentPageDescription = null;
                    });
                };

                // Set the document source.
                sourceRequestedArgs.SetSource(printDocumentSource);
            });
        }
Esempio n. 13
0
        public static void DebugPrintTaskOptionDetails(this PrintTaskOptions options)
        {
            var optionDetails = PrintTaskOptionDetails.GetFromPrintTaskOptions(options);

            foreach (var option in optionDetails.Options)
            {
                Debug.WriteLine("{0} - {1}", option.Key, option.Value.Value);
            }
        }
Esempio n. 14
0
        private void PrintDocument_Preview(CanvasPrintDocument sender, CanvasPreviewEventArgs args)
        {
            PrintTaskOptions       options = args.PrintTaskOptions;
            PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(options);
            Rect          imageableRect = GetImageableRect(options, args.PageNumber);
            GraphSize     size          = GetOptionValue <GraphSize>(printDetailedOptions);
            LabelLocation labelLocation = GetOptionValue <LabelLocation>(printDetailedOptions);

            DrawPage(args.DrawingSession, imageableRect, size, labelLocation);
        }
Esempio n. 15
0
        private void PrintDic_Paginate(object sender, PaginateEventArgs e)
        {
            PrintTaskOptions       opt = task.Options;
            PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(e.PrintTaskOptions);
            string pageContent = (printDetailedOptions.Options["PageContent"].Value as string).ToLowerInvariant();

            // Set the text & image display flag
            imageText = (DisplayContent)((Convert.ToInt32(pageContent.Contains("pictures")) << 1) | Convert.ToInt32(pageContent.Contains("text")));
            printDoc.SetPreviewPageCount(1, PreviewPageCountType.Final);
        }
Esempio n. 16
0
        /// <summary>
        /// This is the event handler for PrintDocument.Paginate. It creates print preview pages for the app.
        /// </summary>
        /// <param name="sender">PrintDocument</param>
        /// <param name="e">Paginate Event Arguments</param>
        protected override void CreatePrintPreviewPages(object sender, PaginateEventArgs e)
        {
            base.CreatePrintPreviewPages(sender, e);

            PrintTaskOptionDetails      printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(e.PrintTaskOptions);
            PrintPageRangeOptionDetails pageRangeOption      = (PrintPageRangeOptionDetails)printDetailedOptions.Options[StandardPrintTaskOptions.CustomPageRanges];

            // The number of pages may have been changed, so validate the Page Ranges again
            ValidatePageRangeOption(pageRangeOption);
        }
Esempio n. 17
0
        protected override void CreatePrintPreviewPages(object sender, PaginateEventArgs e)
        {
            // Get PageContent property
            PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(e.PrintTaskOptions);
            string pageContent = (printDetailedOptions.Options["PageContent"].Value as string).ToLowerInvariant();

            // Set the text & image display flag
            imageText = (DisplayContent)((Convert.ToInt32(pageContent.Contains("pictures")) << 1) | Convert.ToInt32(pageContent.Contains("text")));

            base.CreatePrintPreviewPages(sender, e);
        }
Esempio n. 18
0
        private void Printmgr_PrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs args)
        {
            var deferral = args.Request.GetDeferral();

            task = args.Request.CreatePrintTask("Print", OnPrintTaskSourceRequrested);
            //task.Completed += PrintTask_Completed;
            PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(task.Options);

            printDetailedOptions.OptionChanged += PrintDetailedOptions_OptionChanged;
            deferral.Complete();
        }
        protected virtual void PrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs e)
        {
            PrintTask printTask = e.Request.CreatePrintTask("BlueYonder", sourceRequested => sourceRequested.SetSource(_printDocumentSource));
            PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(printTask.Options);

            printDetailedOptions.DisplayedOptions.Clear();
            printDetailedOptions.DisplayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Copies);
            printDetailedOptions.DisplayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Orientation);
            printDetailedOptions.DisplayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.ColorMode);

            printDetailedOptions.OptionChanged += printDetailedOptions_OptionChanged;
        }
Esempio n. 20
0
 private void DataGrid_PrintTaskRequested(object sender, DataGridPrintTaskRequestedEventArgs e)
 {
     e.PrintTask = e.Request.CreatePrintTask("Printing", sourceRequested =>
     {
         PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(e.PrintTask.Options);
         IList <string> displayedOptions             = printDetailedOptions.DisplayedOptions;
         displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.CustomPageRanges);
         e.PrintTask.Options.PageRangeOptions.AllowCurrentPage      = true;
         e.PrintTask.Options.PageRangeOptions.AllowAllPages         = true;
         e.PrintTask.Options.PageRangeOptions.AllowCustomSetOfPages = true;
         sourceRequested.SetSource(e.PrintDocumentSource);
     });
 }
Esempio n. 21
0
        private void PrintDocument_Print(CanvasPrintDocument sender, CanvasPrintEventArgs args)
        {
            PrintTaskOptions       options = args.PrintTaskOptions;
            PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(options);
            Rect          imageableRect = GetImageableRect(options, pageNumber: 1);
            GraphSize     size          = GetOptionValue <GraphSize>(printDetailedOptions);
            LabelLocation labelLocation = GetOptionValue <LabelLocation>(printDetailedOptions);

            using (CanvasDrawingSession drawingSession = args.CreateDrawingSession())
            {
                DrawPage(drawingSession, imageableRect, size, labelLocation);
            }
        }
Esempio n. 22
0
        private void ConfigureCustomOptions(PrintTaskOptions printTaskOptions)
        {
            if (printTaskOptions == null)
            {
                throw new ArgumentNullException("printTaskOptions");
            }

            var detailedOptions =
                PrintTaskOptionDetails.GetFromPrintTaskOptions(printTaskOptions);

            // Create the list of options for choosing a layout
            var selectedLayoutOption = detailedOptions.CreateItemListOption(
                LayoutOptionId, "Layout");

            selectedLayoutOption.AddItem(
                PrintLayoutId.LayoutOneByOne.ToString(),
                PrintLayout.Layouts[PrintLayoutId.LayoutOneByOne].LayoutName);

            selectedLayoutOption.AddItem(
                PrintLayoutId.LayoutTwoByTwo.ToString(),
                PrintLayout.Layouts[PrintLayoutId.LayoutTwoByTwo].LayoutName);

            selectedLayoutOption.TrySetValue(DefaultPrintLayoutId.ToString());
            detailedOptions.DisplayedOptions.Add(LayoutOptionId);

            // Create the list of options for choosing whether the preview
            // should use thumbnails or full-res images
            var previewTypeOption = detailedOptions.CreateItemListOption(
                PreviewTypeOptionId, "Preview Type");

            previewTypeOption.AddItem(
                PreviewTypeOption.Thumbnails.ToString(),
                "Thumbnails");
            previewTypeOption.AddItem(
                PreviewTypeOption.FullRes.ToString(),
                "Full Res");

            previewTypeOption.TrySetValue(DefaultPreviewTypeOption.ToString());
            detailedOptions.DisplayedOptions.Add(PreviewTypeOptionId);

            // Create the option that allows users to provide a page title
            // for the printout
            var pageTitleOption = detailedOptions.CreateTextOption(
                PageTitleOptionId, "Page Title");

            pageTitleOption.TrySetValue(DefaultPageTitle);
            detailedOptions.DisplayedOptions.Add(PageTitleOptionId);

            detailedOptions.OptionChanged += HandleCustomOptionsOptionChanged;
        }
        void OnPrintManagerPrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs args)
        {
            // Create PrintTask
            PrintTask printTask = args.Request.CreatePrintTask("Monthly Planner",
                                                               OnPrintTaskSourceRequested);

            // Set orientation to landscape
            PrintTaskOptionDetails optionDetails =
                PrintTaskOptionDetails.GetFromPrintTaskOptions(printTask.Options);

            PrintOrientationOptionDetails orientation =
                optionDetails.Options[StandardPrintTaskOptions.Orientation] as
                PrintOrientationOptionDetails;

            orientation.TrySetValue(PrintOrientation.Landscape);
        }
Esempio n. 24
0
        /// <summary>
        /// This is the event handler for PrintManager.PrintTaskRequested.
        /// In order to ensure a good user experience, the system requires that the app handle the PrintTaskRequested event within the time specified by PrintTaskRequestedEventArgs.Request.Deadline.
        /// Therefore, we use this handler to only create the print task.
        /// The print settings customization can be done when the print document source is requested.
        /// </summary>
        /// <param name="sender">PrintManager</param>
        /// <param name="e">PrintTaskRequestedEventArgs</param>
        protected override void PrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs e)
        {
            PrintTask printTask = null;

            printTask = e.Request.CreatePrintTask("C# Printing SDK Sample",
                                                  sourceRequestedArgs =>
            {
                PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(printTask.Options);
                IList <string> displayedOptions             = printDetailedOptions.DisplayedOptions;

                // Choose the printer options to be shown.
                // The order in which the options are appended determines the order in which they appear in the UI
                displayedOptions.Clear();

                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Copies);
                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Orientation);
                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.ColorMode);

                // Create a new list option

                PrintCustomItemListOptionDetails pageFormat = printDetailedOptions.CreateItemListOption("PageContent", "Pictures");
                pageFormat.AddItem("PicturesText", "Pictures and text");
                pageFormat.AddItem("PicturesOnly", "Pictures only");
                pageFormat.AddItem("TextOnly", "Text only");

                // Add the custom option to the option list
                displayedOptions.Add("PageContent");

                printDetailedOptions.OptionChanged += printDetailedOptions_OptionChanged;

                // Print Task event handler is invoked when the print job is completed.
                printTask.Completed += async(s, args) =>
                {
                    // Notify the user when the print operation fails.
                    if (args.Completion == PrintTaskCompletion.Failed)
                    {
                        await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                        {
                            rootPage.NotifyUser("Failed to print.", NotifyType.ErrorMessage);
                        });
                    }
                };

                sourceRequestedArgs.SetSource(printDocumentSource);
            });
        }
Esempio n. 25
0
        public String GetPageTitle(PrintTaskOptions printTaskOptions)
        {
            if (printTaskOptions == null)
            {
                throw new ArgumentNullException("printTaskOptions");
            }

            var detailedOptions =
                PrintTaskOptionDetails.GetFromPrintTaskOptions(printTaskOptions);
            var result = DefaultPageTitle;
            IPrintOptionDetails option;

            if (detailedOptions.Options.TryGetValue(PageTitleOptionId, out option))
            {
                result = option.Value as String;
            }
            return(result);
        }
Esempio n. 26
0
        /// <summary>
        /// This is the event handler for PrintDocument.Paginate. It creates print preview pages for the app.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected virtual void CreatePrintPreviewPages(object sender, PaginateEventArgs e)
        {
            // Clear the cache of preview pages
            printPreviewPages.Clear();

            // Clear the printing root of preview pages
            PrintingRoot.Children.Clear();

            // This variable keeps track of the last RichTextBlockOverflow element that was added to a page which will be printed
            RichTextBlockOverflow lastRTBOOnPage;

            // Get the PrintTaskOptions
            PrintTaskOptions printingOptions = ((PrintTaskOptions)e.PrintTaskOptions);

            // Get the page description to deterimine how big the page is
            PrintPageDescription pageDescription = printingOptions.GetPageDescription(0);


            PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(e.PrintTaskOptions);
            //string pageContentSettings = (printDetailedOptions.Options["PageContent"].Value as string).ToLowerInvariant();
            string tagsSettings = (printDetailedOptions.Options["Tags"].Value as string).ToLowerInvariant();

            //imageText = (DisplayContent)((Convert.ToInt32(pageContentSettings.Contains("pictures")) << 1) | Convert.ToInt32(pageContentSettings.Contains("text")));
            ShowTags = tagsSettings.Contains("show");

            // We know there is at least one page to be printed. passing null as the first parameter to
            // AddOnePrintPreviewPage tells the function to add the first page.
            lastRTBOOnPage = AddOnePrintPreviewPage(null, pageDescription);

            // We know there are more pages to be added as long as the last RichTextBoxOverflow added to a print preview
            // page has extra content
            while (lastRTBOOnPage.HasOverflowContent)
            {
                lastRTBOOnPage = AddOnePrintPreviewPage(lastRTBOOnPage, pageDescription);
            }

            if (pagesCreated != null)
            {
                pagesCreated.Invoke(printPreviewPages, null);
            }

            // Report the number of preview pages created
            printDocument.SetPreviewPageCount(printPreviewPages.Count, PreviewPageCountType.Intermediate);
        }
Esempio n. 27
0
        /// <summary>
        /// This is the event handler for PrintManager.PrintTaskRequested.
        /// In order to ensure a good user experience, the system requires that the app handle the PrintTaskRequested event within the time specified by PrintTaskRequestedEventArgs.Request.Deadline.
        /// Therefore, we use this handler to only create the print task.
        /// The print settings customization can be done when the print document source is requested.
        /// </summary>
        /// <param name="sender">PrintManager</param>
        /// <param name="e">PrintTaskRequestedEventArgs</param>
        protected override void PrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs e)
        {
            PrintTask printTask = null;

            printTask = e.Request.CreatePrintTask("C# Printing SDK Sample", sourceRequestedArgs =>
            {
                PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(printTask.Options);
                IList <string> displayedOptions             = printDetailedOptions.DisplayedOptions;

                // Choose the printer options to be shown.
                // The order in which the options are appended determines the order in which they appear in the UI
                displayedOptions.Clear();

                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Copies);
                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.CustomPageRanges);
                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Orientation);
                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.MediaSize);
                displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.ColorMode);

                printTask.Options.PageRangeOptions.AllowCurrentPage      = true;
                printTask.Options.PageRangeOptions.AllowAllPages         = true;
                printTask.Options.PageRangeOptions.AllowCustomSetOfPages = true;

                // Register the handler for the option change event
                printDetailedOptions.OptionChanged += printDetailedOptions_OptionChanged;

                // Register the handler for the PrintTask.Completed event.
                // Print Task event handler is invoked when the print job is completed.
                printTask.Completed += async(s, args) =>
                {
                    // Notify the user when the print operation fails.
                    if (args.Completion == PrintTaskCompletion.Failed)
                    {
                        await scenarioPage.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                        {
                            MainPage.Current.NotifyUser("Failed to print.", NotifyType.ErrorMessage);
                        });
                    }
                };

                sourceRequestedArgs.SetSource(printDocumentSource);
            });
        }
Esempio n. 28
0
        protected virtual void PrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs e)
        {
            PrintTask printTask = e.Request.CreatePrintTask("I Love Notes", sourceRequested => sourceRequested.SetSource(printDocumentSource));
            PrintTaskOptionDetails printDetailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(printTask.Options);

            printDetailedOptions.DisplayedOptions.Clear();
            printDetailedOptions.DisplayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Copies);
            printDetailedOptions.DisplayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Orientation);
            printDetailedOptions.DisplayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.ColorMode);

            PrintCustomItemListOptionDetails tagsDisplay = printDetailedOptions.CreateItemListOption("Tags", "Tags");

            tagsDisplay.AddItem("ShowTags", "Show Tags");
            tagsDisplay.AddItem("HideTags", "Hide Tags");

            //printDetailedOptions.DisplayedOptions.Add("PageContent");
            printDetailedOptions.DisplayedOptions.Add("Tags");
            printDetailedOptions.OptionChanged += printDetailedOptions_OptionChanged;
        }
Esempio n. 29
0
        private void PrintingExample_PrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs args)
        {
            var printTask = args.Request.CreatePrintTask("Win2D Printing Example", (createPrintTaskArgs) =>
            {
                createPrintTaskArgs.SetSource(printDocument);
            });

            var detailedOptions = PrintTaskOptionDetails.GetFromPrintTaskOptions(printTask.Options);
            var pageRange       = detailedOptions.CreateItemListOption("PageRange", "Page Range");

            pageRange.AddItem("PrintAll", "Print All");
            pageRange.AddItem("PrintFirstPage", "Print Only First Page");

            var displayedOptions = printTask.Options.DisplayedOptions;

            displayedOptions.Clear();

            displayedOptions.Add(StandardPrintTaskOptions.MediaSize);
            displayedOptions.Add(StandardPrintTaskOptions.Orientation);
            displayedOptions.Add("PageRange");
        }
Esempio n. 30
0
        private void GenerateOptions(PrintTask printTask)
        {
            var optionDetails = PrintTaskOptionDetails.GetFromPrintTaskOptions(printTask.Options);

            var listOption1 = optionDetails.CreateItemListOption("listOption1", "List Option 1");

            listOption1.AddItem("Foo", "Foo");
            listOption1.AddItem("Bar", "Bar");

            var textOption1 = optionDetails.CreateTextOption("textOption1", "Text Option 1");

            optionDetails.DisplayedOptions.Add("listOption1");
            optionDetails.DisplayedOptions.Add("textOption1");

            optionDetails.Options["listOption1"].TrySetValue("Bar");
            optionDetails.Options[StandardPrintTaskOptions.Orientation].TrySetValue(PrintOrientation.Landscape);

            optionDetails.OptionChanged += (details, e) =>
            {
                // TODO Store options to use when generating document
            };
        }