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

2020-09-20 10:07发布

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

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


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


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

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

我认为?中有问题。

如何解决这个问题?

img-9051.jpg (145.9 kB)

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

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


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


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

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

我认为?中有问题。

如何解决这个问题?

img-9051.jpg (145.9 kB)
付费偷看设置
发送
11条回答
粗暴的香蕉
1楼 · 2020-09-20 11:05.采纳回答

SP 23将对WPF查看器进行更多更新。 看看是否能解决问题。

haha101010
2楼-- · 2020-09-20 10:57

感谢您的回答。

SKY徐
3楼-- · 2020-09-20 11:08

我将VS的Tag更改为CR。

安装最新的SP 20 MSI并再次测试,请注意,尚不支持VS 2017,因此请安装32位和64位MSI:

https: //wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads

ZJXianG
4楼-- · 2020-09-20 10:52

谢谢。
但问题没有解决。

95年老男孩
5楼-- · 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);
}
}

}
}

行得通吗?

haha101010
6楼-- · 2020-09-20 10:47

好。 我尝试测试此来源。
但是我不知道它是否正确。...
我使用" TEST PRINT"文本制作don.rtf文件。
此图像输出在printDocument1_PrintPage()中不带有"//" >否则,将打印两页。第一页为'TEST PRINT'。第二页为空白。
谢谢。

img-9083.jpg

闻人可可
7楼-- · 2020-09-20 10:42

使用RTF文件而不是文本文件 因此,将其格式化并查看页边距是否正确。

Don

一周热门 更多>