×

fastreport打印设置

fastreport打印设置(Fastreport打印与打印机属性不符,该怎么解决)

admin admin 发表于2023-01-22 04:54:19 浏览45 评论0

抢沙发发表评论

本文目录

Fastreport打印与打印机属性不符,该怎么解决


我用delphi+fastreport打印一张label,打印机是:SATO CL612e
在该打印机属性中设定纸张大小是100mm*100mm,实际label也是该大小。
现有一下问题:
1.先预览label,显示打印机大小是100mm*70mm(初始添加该打印机是,默认是100*70,后属性改成100mm*100mm)
2.点击打印机属性,实际属性中显示却是100×100.
3.打印机属性点击OK 确认,关闭预览
4.再次预览时,显示的label就是100×100了(无论预览多少次都是正确的)
注:机器上就这一台打印机
请大侠帮忙,急!
------解决方案--------------------------------------------------------
在Report Options 中設置選定打印機,在 Page Options選擇你自定義的紙張大小(自定義紙張大小到Windows 打印機設置頁面的菜單“文件”“服務器屬性”“格式”頁“創建新格式”)。
------解决方案--------------------------------------------------------探讨在Report Options 中設置選定打印機,在 Page Options選擇你自定義的紙張大小(自定義紙張大小到Windows 打印機設置頁面的菜單“文件”“服務器屬性”“格式”頁“創建新格式”)。这个有可能是打印机最小设置是10cm

如何编辑和打印fastreport报表


一个内置的报表依可以显示在屏幕上,也可以通过打印机打印出来,甚至还可以导出为所支持的报表格式。所有这些都可以在预览窗口中实现:

在工具栏上,你可以找到下列按钮:

你可以使用下列快捷键控制:

Ctrl+P:打印报表
Ctrl+F :搜索文本
Arrows:滚动预览 
PageUp:上一页
PageDown:下一页
Page up/down:上/下页
Home:返回到首页
End:返回到最后一页
Esc:关闭预览窗口

后面还有很多,我写不下来,不过题主可以用用finereport,比fastreport好用超级多,也没有这么麻烦,操作简便,更适合中国式复杂报表,题主可以试试。


如何使用FastReport OCX插件实现Web打印


一般需要插件打印的都是比较传统的active打印方式,你可以在active控件设置那里查看一下。Web打印一般有Flash、PDF、Applet、activex等几种方式,这几种打印方式中最好用的是flash打印,现在一些主流报表像finereport用的都是这种方式,比控件打印要方便许多

FastReport 打印问题


我估计你的设置有问题,你可以参考一下finereport的打印设置,我用下来感觉finereport的打印这一块还是做的不错的,不管是产品,还是文档。
页面设置:页面设置中所设的横纵向、纸张大小、页边距等是报表在客户端浏览器中预览的效果,与打印效果无关,页面设置属性可参考页面设置文档;
打印首选项:打印机首选项中所设的横纵向、纸张大小决定了最终打印效果。
FineReport中只有Applet打印与PDF打印支持将页面设置传入到打印首选项中,即在打印时打印机会按照页面设置进行打印,而Flash打印不支持将页面设置传递给打印机首选项,必须手动设置纸张大小及方向。

fastreport怎么实现网口打印


fastreport直接打印的方法如下

FastReportVCL

  在FastReport VCL中,需要将打印选项的对话框设置为False,也可以用以下代码实现。

Report.LoadFromFile(’filename’);
Report.PrepareReport;
Report.PrintOptions.ShowDialog := False;
Report.Print;

FastReport .NET(WinForm)

  使用FastReport.Net在WinForm平台上进行报表开发,实现直接打印的方式和VCL相识,将PrintSettings对话框设置为False就行了,也可以使用以下代码实现。

Report report = new Report();
report.Load(...);
report.RegisterData(...);
report.PrintSettings.ShowDialog = false;
report.Print();

FastReport .NET(WebForm)

  使用FastReport ASP.Net版本开发的Web报表时,是不能直接实现直接打印报表,需要先导出为PDF后,再由Adobe Reader的打印功能间接实现。可以参考以下代码。

Report.LoadFromFile(’filename’); 

Report.PrepareReport;
Report.PrintOptions.ShowDialog := False; 

Report.Print;

FastReport .NET(WinForm)

  使用FastReport.Net在WinForm平台上进行报表开发,实现直接打印的方式和VCL相识,将PrintSettings对话框设置为False就行了,也可以使用以下代码实现。

Report report = new Report(); 

report.Load(...); 

report.RegisterData(...); 

report.PrintSettings.ShowDialog = false; 

report.Print();

FastReport .NET(WebForm)

  使用FastReport ASP.Net版本开发的Web报表时,是不能直接实现直接打印报表,需要先导出为PDF后,再由Adobe Reader的打印功能间接实现。可以参考以下代码。

protected void Button1_Click(object sender, EventArgs e)    

{    

FastReport.Utils.Config.WebMode = true;    

using (Report report = new Report())    

{    

report.Load("your_report.frx");    

report.RegisterData(...);    

report.Prepare();    

// Export report to PDF stream    

FastReport.Export.Pdf.PDFExport pdfExport = new FastReport.Export.Pdf.PDFExport();    

using (MemoryStream strm = new MemoryStream())    

{    

report.Export(pdfExport, strm);    

// Stream the PDF back to the client as an attachment    

Response.ClearContent();    

Response.ClearHeaders();    

Response.Buffer = true;    

Response.ContentType = "Application/PDF";    

Response.AddHeader("Content-Disposition", "attachment;filename=report.pdf");    

strm.Position = 0;    

strm.WriteTo(Response.OutputStream);    

Response.End();    

}    

}    

}     

比较麻烦,或者你可以试试FineReport,支持Flash打印,又快又方便,这里附上一张比较图。


易用仓库软件,报表用的fastreport,如何在一张A4纸上打印2遍呢


你的意思是想在A4纸张上打印2次这样的内容是么?好比上面的是存根。
如果你要会编程的话 可以把所有的报表上的控件复制一遍添加在报表文件里。即可。如果没有编程基础的话,那只能依靠设置打印来完成了,可以设置个字定义的纸张(是A4一半大小)然后打印时设置打印2份即可。

如何让fastreport在一页中打印两列数据


添加一个MasterData1或DetailData1,在其属性对话框中的Columns属性设为2即两列,
然后只用在报表的半个页面设置一列的数据memo1即可,预览时,就会看到两列

FastReport可以实现连续打印吗


很多人认为FastReport不能实现连续打印,以为只能通过自己写函数调用打印函数来实现连续打印,实际上,FastReport可以轻易的实现连续打印,同时,实现时又是非常简单,你甚至可以在你的程序的打印设置中简单的让客户选择是否连续打印,其它都可以保持不变。
function PelsTomm(Pels:Extended):Extended;
begin
Result:=Pels/Screen.PixelsPerInch*25.4;
end;
procedure PrintSerial(Frx:TFrxReport;SequencePage:Byte=0);
var
P:TfrxReportPage;
R,R1:Extended;
begin
{必须是二遍报表,否则无法计算总页数。下面的方法只适用于没有页脚的情况,因为如果有页脚的话FreeSpace就始终为0了。可以用报表脚来代替。因为是连续打印,也可以看作只有一页,报表脚也就相当于页脚了}
if not Frx.Engine.DoublePass then Exit;
//SequencePage指要连续打印的页面,普通报表就是0
P:=TfrxReportPage(Frx.Pages[SequencePage]);
R1:=P.TopMargin+P.BottomMargin;
while Frx.PrepareReport do
begin
if (Frx.Engine.TotalPages《=1) then Break;
R:=Pelstomm(Frx.Engine.TotalPages*Frx.Engine.PageHeight-
Frx.Engine.FreeSpace)+R1;
P:=TfrxReportPage(Frx.Pages[SequencePage]);
P.PaperHeight:=R;
end;
{必须用上面的循环代码来得到准确的空白区域,不能用通过计算总页数减去各页的页边距的方法来获得空白区域,因为如果碰到一条记录过宽的情况导致换页,就不准确了。}
R:=Pelstomm(Frx.Engine.TotalPages*Frx.Engine.PageHeight-
Frx.Engine.FreeSpace)+R1;
P:=TfrxReportPage(Frx.Pages[SequencePage]);
P.PaperHeight:=R;
end;