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); }
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); }); }
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); }
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(); }
/// <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); }); }
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); } }
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); }
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); }
/// <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); }
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); }
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; }
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); }); }
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); } }
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); }
/// <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); }); }
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); }
/// <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); }
/// <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); }); }
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; }
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"); }
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 }; }