WPF 打印

1、利用shell命令,调用进程打印

string pdfPath = “testPrint.xps";

Process proc = new Process
 {
      StartInfo =
       {
          CreateNoWindow = false,
          WindowStyle = ProcessWindowStyle.Hidden,
          UseShellExecute = true,
          FileName = pdfPath,
          Verb = "print"  //Verb(谓词),它可以通过FileName属性的扩展名(不管FileName存不存在)并查询注册表返回相应文件类型的Shell菜单

命 令,常见有“print”打印,“open”打开,“edit”编辑,“runas”管理员身份运行

}
   };
    proc.Start();
    //proc.WaitForExit();
    proc.Close();

注:此方法适合打印已存在的文件。

2、利用PrintDialog打印xaml页面

FixedPage printPage = (FixedPage)Application.LoadComponent(new Uri(@"../Print.xaml", UriKind.Relative));

PageContent pageContent = new PageContent();
 FixedDocument fixedDoc = new FixedDocument();
 fixedDoc.DocumentPaginator.PageSize = new Size(96 * 8.5, 96 * 11);
 ((IAddChild)pageContent).AddChild(printPage);
 fixedDoc.Pages.Add(pageContent);

dialog.PrintDocument(fixedDoc.DocumentPaginator, "打印报告");

如果需要预览就要用到DocumentViewer控件,设置Document即可。

3、利用PrintDialog打印界面控件

private void Button_Click(object sender, RoutedEventArgs e)

{

PrintDialog dialog = new PrintDialog();

if (dialog.ShowDialog() == true)

{

dialog.PrintVisual(grid, "PrintTest");

}

}

时间: 2024-12-14 18:46:27

WPF 打印的相关文章

WPF打印票据

最近工作的内容是有关于WPF的,整体开发没有什么难度,主要是在打印上因为没有任何经验,犯了一些难,不过还好,解决起来也不是很费劲. WPF打印票据或者是打印普通纸张区别不大,只是说打印票据要把需要打的内容摆放好位置,搞定缩放比例,就可以放入票据直接打印了. 那么关键点就是3个: 1.使用WPF提供的什么类.什么方法来执行打印 2.如何摆放位置 3.如何搞定缩放比例 1.使用WPF提供的什么类.什么方法来执行打印 这个问题很容易解决,搜索下WPF打印或WPF Print,就能找到示例代码. 那么我

WPF打印原理,自定义打印

一.基础知识 1.System.Printing命名空间 我们可以先看一下System.Printing命名空间,东西其实很多,功能也非常强大,可以说能够控制打印的每一个细节,曾经对PrintDialog失望的我看到了一丝曙光. 2.PrintDialog 可以看到PrintDialog除了构造函数有三个方法和一堆属性,PrintDocument接受一个分页器(DocumentPaginator,稍后介绍),PrintVisual可以打印Visual,也就是WPF中的大部分继承自Visual类的

WPF打印控件内容

当我们想打印控件内容时,如一个Grid中的内容,可以用WPF中PrintDialog类的PrintVisual()方法来实现 界面如下: XAML代码如下 1 <Grid> 2 <Grid.ColumnDefinitions> 3 <ColumnDefinition/> 4 <ColumnDefinition Width="300"/> 5 </Grid.ColumnDefinitions> 6 <Grid Grid.C

[WPF打印]WPF 文档元素(Run TextBlock Paragraph)的文字对齐方式

最近开发WPF程序,需要打印,用到了FlowDocument(这相当于有了打印模版,而且可以随时修改,真的是挺方便的).可是在输出表格形数据(这种情况恐怕是大多数~)时遇到了点儿麻烦. 由于TableCell里面不能直接使用Run或TextBlock,要添加Paragraph,这时候问题就来了,在Paragraph上面设置的TextAlignment属性,只有在文字内容直接写在Paragraph中时有效, 对于包含的TextBlock或者Run,即使你直接设置了他们的对齐方式也没有效果,内容一律

WPF打印源码记录

using GalaSoft.MvvmLight.Command; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Data; using System.Drawing.Printing; using System.IO; using System.Linq; using System.Reflecti

WPF 使用Console.Write打印信息到控制台窗口中

WPF中使用Console.Write函数来打印信息是没有意义的,因为并没有给其输出字符的窗口.对于桌面程序来说,这是十分合理的,然而有时为了方便调试,在程序编写过程中打印出信息给程序员看还是必要的,利用Windows的API,在DEBUG的时候打开一个控制台窗口以供信息打印显示. 创建一个管理类 public static class ConsoleManager { private const string Kernel32_DllName = "kernel32.dll"; [D

基于C#在WPF中使用斑马打印机进行打印【转】

原文链接:http://ju.outofmemory.cn/entry/132476 最近在项目中接手了一个比较有挑战性的模块——用斑马打印机将需要打印的内容打印出来.苦苦折腾了两天,总算有所收获,就发到网上来骗骗分数-_-|| 项目中使用的打印机型号为GX430t的打印机,接手的时候,自己对于打印机这块儿是眼前一抹黑,啥都不知道.没办法一步步来. 首先尝试使用WPF中的PrintDialog里面的PrintVisual和PrintDocument方法,打印机是一点反应都没有,最后得到的结论是:

WPF win7+vs2010开发的打印功能,怎么在XP系统上无法打印

在wpf 中打印功能很强大,但最近是在win7上可以但是布置到xp上就不可以了,查了好多资料终于知道怎么回事了原来xp里没有.net framework3.5 安装一个就OK了要先安装4.0. WPF win7+vs2010开发的打印功能,怎么在XP系统上无法打印

基于C#在WPF中使用斑马打印机进行打印

最近在项目中接手了一个比较有挑战性的模块——用斑马打印机将需要打印的内容打印出来.苦苦折腾了两天,总算有所收获,就发到网上来骗骗分数-_-|| 项目中使用的打印机型号为GX430t的打印机,接手的时候,自己对于打印机这块儿是眼前一抹黑,啥都不知道.没办法一步步来. 首先尝试使用WPF中的PrintDialog里面的PrintVisual和PrintDocument方法,打印机是一点反应都没有,最后得到的结论是:斑马打印机不支持MS的XPS文档格式,所以使用WPF来排版后进行驱动打印就不要想了,不