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