找回密码
 立即注册

QQ登录

只需一步,快速开始

450289068

论坛元老

18

主题

148

帖子

4122

积分

论坛元老

积分
4122

活字格认证

450289068
论坛元老   /  发表于:2013-11-19 13:40  /   查看:17777  /  回复:38
请问,在word中可以设置纸张大小
1.TxTextControl中是否可以设置各种纸型,如A4、B5
在哪里设置,主要看什么方法的api来了解方法。
2.Print中PrinterSettings.Copies 是否是设置打印份数。
3.如果不用界面承载TxTextControl 而直接使用服务器来将文档打印出来,用ServerTextControl吗?
还是……  能给个思路吗?

38 个回复

倒序浏览
450289068
论坛元老   /  发表于:2013-11-19 15:01:00
沙发
ServerTextControl如何使用 看字面意思理解是在服务端直接利用tx的对象创建并可以导入模版和数据后直接打印。
可是调试时出现:
The following control could not be licensed:TxTextControl.ServerTextControl
我的是wpf 19 版本的 。
怎么使用这个ServerTextControl 。
谢谢
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-11-19 16:03:00
板凳
回复 1楼450289068的帖子

1.TxTextControl中是否可以设置各种纸型,如A4、B5
TX中没有提供直接设置纸张类型的方法,只能通过PageSize属性设置其Height和Width属性

2.Print中PrinterSettings.Copies 是否是设置打印份数。
是的,myPrintDialog.PrinterSettings.Copies = 3; 可以设置打印份数
  1.     PrintDialog myPrintDialog = new PrintDialog();
  2.     PrintDocument myPrintDocument = new PrintDocument();
  3.     myPrintDialog.Document = myPrintDocument;
  4.     myPrintDialog.AllowSomePages = false;
  5.     myPrintDialog.AllowPrintToFile = false;
  6.     myPrintDialog.PrinterSettings.FromPage = 1;
  7.     myPrintDialog.PrinterSettings.ToPage = textControl1.Pages;
  8.     myPrintDialog.PrinterSettings.Copies = 3;
  9.     if (myPrintDialog.ShowDialog() == DialogResult.OK)
  10.     {
  11.         textControl1.Print(myPrintDocument);
  12.     }
复制代码


3.如果不用界面承载TxTextControl 而直接使用服务器来将文档打印出来,用ServerTextControl吗?
不太理解力这里的服务器是指的什么意思,你的应用程序是WPF的吧,这里应该没有B/S架构中的Server和Client的概念,所以,我没能理解服务端打印的意思
回复 使用道具 举报
450289068
论坛元老   /  发表于:2013-11-19 16:20:00
地板
多谢版主。辛苦了
我的第三个问题是这样的
我有两个按钮
一个打印预览 ,我通过TX在一个MyXaml窗体中展示,并加载数据后显示。并提供打印功能。
另一个按钮是打印,就是当点击后,不出现窗体或者页面显示加载后的模版,直接调用打印功能。??? 也就是这个怎么来处理。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-11-19 19:55:00
5#
直接打印可以参考C:\Users\用户名\Documents\TX Text Control 19.0.NET for WPF\Samples\WPF\CSharp\Printing 目录中找到实现方法,代码如下:
  1.             PageRange prRange = new PageRange(1,1);
  2.             textControl1.Print("My print job", prRange, 1, Collation.Uncollated);
复制代码
回复 使用道具 举报
450289068
论坛元老   /  发表于:2013-11-20 09:28:00
6#
我简单的描述下,我的意思是不通过展示模版页,而直接调用TX控件加载我提供的数据集后,直接打印出来。
我的需要是必须有一个加载数据的过程来替换本身设置模版上的MergeField。或者来插入图片。
这个过程全部有Tx对象后台完成而不出现预览,直接打印
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-11-20 18:45:00
7#
主要代码如下,借助ServerTextControl 和MailMerge实现后台合并,然后在不预览的情况下直接打印:
  1.     private DataSet dsAddresses;
  2.     private MailMerge mailMerge1;

  3.     private void button1_Click(object sender, RoutedEventArgs e)
  4.     {
  5.         dsAddresses = new DataSet();
  6.         dsAddresses.ReadXml(AppDomain.CurrentDomain.BaseDirectory + "\\data.xml");

  7.         ServerTextControl stc = new ServerTextControl();
  8.         mailMerge1 = new MailMerge();
  9.         mailMerge1.TextComponent = stc;

  10.         mailMerge1.LoadTemplate(AppDomain.CurrentDomain.BaseDirectory + "\\Template.tx", FileFormat.InternalUnicodeFormat);

  11.         mailMerge1.Merge(dsAddresses.Tables[0], true);
  12.         mailMerge1.Print("Test", "Snagit 11", 1, true);            
  13.     }
复制代码



11046_Page_WPF.zip (10.52 KB, 下载次数: 273)
回复 使用道具 举报
450289068
论坛元老   /  发表于:2013-11-21 09:25:00
8#
多谢版主提供思路和demo 合作愉快
请求关闭
回复 使用道具 举报
450289068
论坛元老   /  发表于:2013-11-21 09:30:00
9#
我看了你给的demo。这个只合并文本格式的 ,,能有个合并rtf格式的 还有图片的吗?
我具体看看api  不知道是否支持
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-11-21 10:26:00
10#
合并图片意思是在文档中能够动态显示数据源中的图片

但是“合并rtf”是指的什么意思呢,我不是很理解
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部