WPF 流打印

简介: 原文:WPF 流打印 PrintDialog printDialog = new PrintDialog(); if (printDialog.ShowDialog() == true) { System.
原文: WPF 流打印

            PrintDialog printDialog = new PrintDialog();
            if (printDialog.ShowDialog() ==  true)
            {

                System.Printing.PrintCapabilities capabilities = printDialog.PrintQueue.GetPrintCapabilities(printDialog.PrintTicket);
                // double scale = Math.Min(capabilities.PageImageableArea.ExtentWidth / myscrollvier.ActualWidth, capabilities.PageImageableArea.ExtentHeight /
                //myscrollvier.ActualHeight);
                var x1 = flowDocument.PageWidth;
                var x2 = flowDocument.PageHeight;
                flowDocument.PageHeight = capabilities.PageImageableArea.ExtentHeight;
                flowDocument.PageWidth = capabilities.PageImageableArea.ExtentWidth;

                printDialog.PrintDocument(((IDocumentPaginatorSource)flowDocument).DocumentPaginator, "Flow Document Print Job");

                flowDocument.PageHeight = x2;
                flowDocument.PageWidth = x1;


            }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            PrintDialog printDialog = new PrintDialog();
            if (printDialog.ShowDialog() ==  true)
            {

                System.Printing.PrintCapabilities capabilities = printDialog.PrintQueue.GetPrintCapabilities(printDialog.PrintTicket);
                // double scale = Math.Min(capabilities.PageImageableArea.ExtentWidth / myscrollvier.ActualWidth, capabilities.PageImageableArea.ExtentHeight /
                //myscrollvier.ActualHeight);
                var x1 = flowDocument.PageWidth;
                var x2 = flowDocument.PageHeight;
                flowDocument.PageHeight = capabilities.PageImageableArea.ExtentHeight;
                flowDocument.PageWidth = capabilities.PageImageableArea.ExtentWidth;

                printDialog.PrintDocument(((IDocumentPaginatorSource)flowDocument).DocumentPaginator, "Flow Document Print Job");

                flowDocument.PageHeight = x2;
                flowDocument.PageWidth = x1;


            }
        }

 

目录
相关文章
|
存储 开发工具 git
Pycharm git-创建本地仓库\创建分支\合并分支\回溯版本\加入git后文件颜色代表的含义
Pycharm git-创建本地仓库\创建分支\合并分支\回溯版本\加入git后文件颜色代表的含义
774 0
|
XML 开发框架 .NET
|
机器学习/深度学习 存储 算法
Python 数学应用(三)(4)
Python 数学应用(三)
280 2
|
前端开发 C# 开发者
WPF开发者必读:MVVM模式实战,轻松构建可维护的应用程序,让你的代码更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,MVVM(Model-View-ViewModel)模式通过分离关注点,提高了代码的可维护性和可扩展性。本文详细介绍了MVVM模式的三个核心组件:Model(数据模型)、View(用户界面)和ViewModel(处理数据绑定与逻辑),并通过示例代码展示了如何在WPF项目中实现MVVM模式。通过这种模式,开发者可以更高效地构建桌面应用程序。希望本文能帮助你在WPF开发中更好地应用MVVM模式。
675 1
|
Dart Android开发 iOS开发
Flutter 弃用 WillPopScope 使用 PopScope 替代方法
了解如何在 Flutter 3.16 中将弃用的 WillPopScope 替换为 PopScope,并学习如何升级您的 Flutter 应用程序。详细指南和最佳实践,帮助您顺利迁移和更新您的导航逻辑。
556 7
Flutter 弃用 WillPopScope 使用 PopScope 替代方法
|
C#
C# WPF 将第三方DLL嵌入 exe
C# WPF 将第三方DLL嵌入 exe
223 0
|
开发框架 Dart 前端开发
构建响应式Web界面:Flutter的跨界前端技术
【2月更文挑战第23天】随着移动互联网的飞速发展,响应式Web设计成为现代前端开发的重要趋势。在众多框架中,Google推出的Flutter以其高效的渲染性能、跨平台能力及丰富的组件生态,为前端开发者带来了新的选择。本文将深入探讨如何利用Flutter进行高效、美观的响应式界面构建,同时剖析其与传统前端技术的差异和优势。
|
存储 安全 Java
聊聊hashmap在1.7情况下的多线程死循环问题
在Java 1.7版本中,HashMap的扩容过程存在一个多线程环境下的死循环问题。这个问题的具体原因是由于HashMap在进行扩容时,多个线程同时进行put操作,可能会导致链表形成环形结构,从而导致get操作陷入死循环。
284 0
|
Web App开发 JavaScript 应用服务中间件
Flutter Web网站搭建教程
曾几何时,你有没有一个搭个人网站的冲动,我这个想法在我第一次开始写博客就有了,可就是没有搭起来,直到我看到flutter有了web支持,我就在想,是时候了,必须且一定要做,于是乎我就搭建了现在的网站ibaozi.cn
698 0
Flutter Web网站搭建教程
|
存储 算法 数据库
人脸识别数据集
人脸识别数据集