在VB6中,如果要自定义纸张很方便:
  Rpt.PaperSize = crPaperUser
  Rpt.SetUserPaperSize lZZG, lZZK

但在C#中却不行了,没有发现 SetUserPaperSize。现在同事的问题是预览时很正常显示中一刀,但点击自带的工具栏打印时,就是 Letter 纸。

本想用 Reflector 跟踪出是否有哪个地方可以利用的,没有结果。
再找网络上的说法,终于在
http://www.cnblogs.com/zeroone/p/3306172.html
中看到关键一行
rptDoc.PrintToPrinter(1, true, 0, 0);

它有一行:PrinterSettings printerSettings = document.PrinterSettings;
而系统自带的工具栏打印时,则是
    PrinterSettings settings = new PrinterSettings();

CrystalDecisions.Windows.Forms.CrystalReportViewer
public virtual void PrintReport()
{
    this.pageView.PrintReport();
}

CrystalDecisions.Windows.Forms.PageView
public virtual void PrintReport()
{
    ReportDocumentBase activeDocument = this.GetActiveDocument();
    if (activeDocument != null)
    {
        activeDocument.Print();
    }
}

CrystalDecisions.Windows.Forms.ReportDocumentBase
public void Print()
{
}
想代替,但里面的代码引用了较多私有方法(如:GetLastPageNumber)

如果能重写 PrinterSettings 将是无比兴奋。
但是,没有成功

namespace CrystalDecisions.Windows.Forms
{
    class PrinterSettings : System.Drawing.Printing.PrinterSettings
    {
        public PrinterSettings()
            : base()
        {
// 它是只读的,另一个对应变量又是私有的
            this.DefaultPageSettings = new PageSettings(this);
        }
    }

class PageSettings:System.Drawing.Printing.PageSettings
    {
        public PageSettings(System.Drawing.Printing.PrinterSettings printerSettings):base(printerSettings)
        {
            base.PaperSize = new System.Drawing.Printing.PaperSize("Temp", 100, 100);
        }
    }
}

C#下水晶报表打印自定义纸张的更多相关文章

  1. JS调用水晶报表打印翻页按钮事件

    默认的水晶报表打印按钮.翻页按钮太小,并且样式不好调整,考虑自己做一个按钮,然后调用水晶报表的按钮事件. 在实际操作中发现可以在.net按钮的服务器端事件中调用翻页方法: CrystalReportV ...

  2. vb 水晶报表打印

    vb里面的水晶报表打印控件:CrystalReportViewer 用到的dll文件: 水晶报表打印其实很简单,只要创建报表对象,再对其传递数据就可以打印出来.当然所传递的数据要与水晶报表设计里面的数 ...

  3. Java调用PDFBox打印自定义纸张PDF

    打印对象 一份设置为A3纸张, 页面边距为(10, 10, 10, 10)mm的PDF文件. PageFormat 默认PDFPrintable无法设置页面大小. PDFPrintable print ...

  4. 关于vs2010下水晶报表的使用入门

    关于vs2010下使用水晶报表了解情况记录如下: 1.首先vs2010不再自带水晶报表控件了,需要下载安装vs2010配套的水晶报表控件:CRforVS_13_0.这个控件安装很简单,基本上都选择默认 ...

  5. ASP.NET Dev ASPxGridView控件使用 ASP.NET水晶报表打印

    1.ASPxGridView控件使用 2.ASP.NET水晶报表客户端打印 3.javascript打印 4.ASPxGridView根据Textbox查询 5. ASPxGridView 列宽 1. ...

  6. C#调用windows api控制打印机 状态获取 打印 自定义纸张 完整版

    using System; using System.Text; using System.Runtime.InteropServices; using System.Security; using ...

  7. 水晶报表WEB方式下不打印的问题

    水晶报表版本是10.2.3600.0,是vs2005自带的.功能原来正常,服务器重做后不能打印,但是导出功能正常. 研究的大概情况: 1.水晶报表的web相关代码位于\aspnet_client\sy ...

  8. VS2015环境下Crystal Reports(水晶报表)的安装使用

    1.首先下载Crystal Reports13对于Visual Studio 2015支持的2个文件. CRforVS_13_0_17 CRforVS_redist_install_64bit_13_ ...

  9. C# WinForm开发系列 - Crystal Report水晶报表

    转自:ttp://www.cnblogs.com/peterzb/archive/2009/07/11/1521325.html 水晶报表(Crystal Report)是业内最专业.功能最强的报表系 ...

随机推荐

  1. SQLSERVER复制的要点

    SQLSERVER复制的要点 在论坛里经常有人问:SQLSERVER复制出问题了!!SQLSERVER复制不运行了!!SQLSERVER复制遇到阻塞了!! 然后最后来一句:“怎麽办?????????? ...

  2. QT自定义精美换肤界面

    陆陆续续用QT开发过很多项目,也用QT写过不少私活项目,也写过N个工具,一直梦寐以求能像VC一样可以很方便的有个自定义的界面,QSS的强大让我看到了很好的希望,辗转百度谷歌无数次,一直搜索QT相关的换 ...

  3. C++ 类

    <C++ Primer 4th>读书笔记 在 C++ 中,用类来定义自己的抽象数据类型(abstract data types).通过定义类型来对应所要解决的问题中的各种概念.最简单地说, ...

  4. Oracle 查询用户和删除用户

    ------------------------------- 一.查询用户命令: select username from dba_users; 示例: 二.删除用户命名: drop user 用户 ...

  5. 【转】The difference between categorical(Nominal ), ordinal and interval variables

    What is the difference between categorical, ordinal and interval variables? In talking about variabl ...

  6. duilib进阶教程 -- 总结 (17)

    整个教程的代码下载:http://download.csdn.net/detail/qq316293804/6502207 (由于duilib进阶教程主要介绍界面,所以这个教程只给出界面相关的代码,完 ...

  7. Yii2中系统定义的常用路径别名,如果获取web的url

    下面这些别名都是在Yii2里面系统定义的,可以直接拿来就用 '@yii' => '@yii/swiftmailer' => string 'C:\wamp\www\advanced\ven ...

  8. 对TCP说三道四

    夜朦胧,人方静,无聊的人打开了无聊的电脑看到了一张无聊的图,想着想着就睡着了,梦到了人a和人b的一次聊天.        有一天,a有事情想跟b商量就问b"有时间么,想和你聊一下天" ...

  9. Android视觉规范-间距规范与文字规范单位换算(dip、sp与px)

    http://blog.csdn.net/shimiso/article/details/29826073 1.dip与px Android工程师在写页面时,margin值的单位是dip,而视觉设计师 ...

  10. Clojure上手

    Clojure,这是什么鬼?一门基于JVM(现在也有基于.NET CLR的了:Clojure CLR) 的函数式编程语言.在JVM平台运行的时候,会被编译为JVM的字节码进行运算..为什么要学它?其设 ...