450289068 发表于 2013-11-19 13:40:00

关于打印纸张大小

请问,在word中可以设置纸张大小
1.TxTextControl中是否可以设置各种纸型,如A4、B5
在哪里设置,主要看什么方法的api来了解方法。
2.Print中PrinterSettings.Copies 是否是设置打印份数。
3.如果不用界面承载TxTextControl 而直接使用服务器来将文档打印出来,用ServerTextControl吗?
还是……能给个思路吗?

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; 可以设置打印份数
    PrintDialog myPrintDialog = new PrintDialog();
    PrintDocument myPrintDocument = new PrintDocument();
    myPrintDialog.Document = myPrintDocument;
    myPrintDialog.AllowSomePages = false;
    myPrintDialog.AllowPrintToFile = false;
    myPrintDialog.PrinterSettings.FromPage = 1;
    myPrintDialog.PrinterSettings.ToPage = textControl1.Pages;
    myPrintDialog.PrinterSettings.Copies = 3;
    if (myPrintDialog.ShowDialog() == DialogResult.OK)
    {
      textControl1.Print(myPrintDocument);
    }

3.如果不用界面承载TxTextControl 而直接使用服务器来将文档打印出来,用ServerTextControl吗?
不太理解力这里的服务器是指的什么意思,你的应用程序是WPF的吧,这里应该没有B/S架构中的Server和Client的概念,所以,我没能理解服务端打印的意思

450289068 发表于 2013-11-19 16:20:00

多谢版主。辛苦了
我的第三个问题是这样的
我有两个按钮
一个打印预览 ,我通过TX在一个MyXaml窗体中展示,并加载数据后显示。并提供打印功能。
另一个按钮是打印,就是当点击后,不出现窗体或者页面显示加载后的模版,直接调用打印功能。??? 也就是这个怎么来处理。

ZenosZeng 发表于 2013-11-19 19:55:00

直接打印可以参考C:\Users\用户名\Documents\TX Text Control 19.0.NET for WPF\Samples\WPF\CSharp\Printing 目录中找到实现方法,代码如下:
            PageRange prRange = new PageRange(1,1);
            textControl1.Print("My print job", prRange, 1, Collation.Uncollated);

450289068 发表于 2013-11-20 09:28:00

我简单的描述下,我的意思是不通过展示模版页,而直接调用TX控件加载我提供的数据集后,直接打印出来。
我的需要是必须有一个加载数据的过程来替换本身设置模版上的MergeField。或者来插入图片。
这个过程全部有Tx对象后台完成而不出现预览,直接打印

ZenosZeng 发表于 2013-11-20 18:45:00

主要代码如下,借助ServerTextControl 和MailMerge实现后台合并,然后在不预览的情况下直接打印:
    private DataSet dsAddresses;
    private MailMerge mailMerge1;

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

      ServerTextControl stc = new ServerTextControl();
      mailMerge1 = new MailMerge();
      mailMerge1.TextComponent = stc;

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

      mailMerge1.Merge(dsAddresses.Tables, true);
      mailMerge1.Print("Test", "Snagit 11", 1, true);            
    }


450289068 发表于 2013-11-21 09:25:00

多谢版主提供思路和demo 合作愉快
请求关闭

450289068 发表于 2013-11-21 09:30:00

我看了你给的demo。这个只合并文本格式的 ,,能有个合并rtf格式的 还有图片的吗?
我具体看看api不知道是否支持

ZenosZeng 发表于 2013-11-21 10:26:00

合并图片意思是在文档中能够动态显示数据源中的图片

但是“合并rtf”是指的什么意思呢,我不是很理解
页: [1] 2 3 4
查看完整版本: 关于打印纸张大小