ReportDocument.PrintToPrinter,CrystalReportsViewer(工具栏打印按钮)的结果不同。

2020-09-20 10:07发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)首先抱歉..我的英语不好,我制作...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


首先抱歉..我的英语不好,我制作了程序CR13(WPF + C#,VS 2017社区)


? CrystalReportsViewer->"打印"按钮(工具栏)
? ReportDocument.PrintToPrinter()

? 看来左边距是不同的,并且减少了。

我认为?中有问题。

如何解决这个问题?

img-9051.jpg (145.9 kB)
11条回答
95年老男孩
2020-09-20 10:43

好,那么需要更多详细信息。

您正在使用什么打印机?

您是否已更新到支持.NET Framework的打印机驱动程序?

创建一个仅打印文本文档的新应用,不要仅使用CR进行框架打印。

赞:

使用System;
使用System.Collections.Generic;
使用System.ComponentModel;
使用System.Data;
使用System.Drawing;
使用System.Drawing.Printing;
使用 System.IO ;
使用System.Text;
使用System.Windows.Forms; < br>
命名空间DotNETPrint
{
公共局部类Form1:Form
{
私人Button printButton;
私人PrintDocument printDocument1 = new PrintDocument();
私人字符串stringToPrint;
public Form1()
{
InitializeComponent();
this.printButton =新的System.Windows.Forms.Button();
this.printButton.Location =新的System.Drawing。 点(12,51);
this.printButton.Size =新的System.Drawing.Size(75,23);
this.printButton.Text ="打印";
this.printButton.Click + = new System.EventHandler(this.printButton_Click);
this.ClientSize = new System.Drawing.Size(292,266);
this.Controls.Add(this.printButton);

//将PrintPage事件处理程序与
printDocument1.PrintPage + =
新的PrintPageEventHandler(printDocument1_PrintPage);
}

private void ReadFile()
{
字符串docName =" don.rtf "; //"begunix.txt"; //" don.rtf"; //
字符串docPath ="。\\";
printDocument1.DocumentName = docName;
使用(FileStream stream = new FileStream(docPath + docName,FileMode.Open))
使用(StreamReader reader =新的StreamReader(stream))
{
stringToPrint = reader.ReadToEnd();
}
}

私有void printDocument1_PrintPage(object sender,PrintPageEventArgs e)
{
//int charactersOnPage = 0;
//int linesPerPage = 0;

////将characterOnPage的值设置为stringToPrint的字符数
///
//e.Graphics.MeasureString(stringToPrint,this.Font,
//e.MarginBounds.Size,StringFormat.GenericTypographic,
//out characterOnPage,out linesPerPage);

////在页面范围内绘制字符串
//e.Graphics.DrawString(stringToPrint,this.Font,Brushes.Black,
//e。 MarginBounds,StringFormat.GenericTypographic);

////删除已打印的字符串部分。
//str ingToPrint = stringToPrint.Substring(charactersOnPage);

////检查是否要打印更多页面。
//e.HasMorePages =(stringToPrint.Length> 0);

//打印单词doc

System.Diagnostics.Process printProcess =新的System.Diagnostics.Process();
printProcess.StartInfo.FileName = @" D:\ CPP Net 2010 \ DotNETPrint \ bin \ Debug \ don.rtf";
printProcess.StartInfo.Verb ="打印";
printProcess.StartInfo.CreateNoWindow = true;
printProcess.Start();

} < br>
私有无效printButton_Click(对象发送者,EventArgs e)
{
ReadFile();
try
{
printDocument1.Print();
}
catch(Exception ex)
{
MessageBox.Show(" ERROR:" + ex.Message);
}
}

}
}

行得通吗?

一周热门 更多>