FastReport Studio 3-------------------------------------------------------- TABLE OF CONTENTS1. Introduction 2. Capabilities 3. Related documents 4. Developers’ contact information--------------------------------------------------------1. INTRODUCTIONFastReport Studio is an powerful, compact and flexible environment for giving your application the ability to generate reports quickly and efficiently. FastReport Studio provides all the tools you need to develop reports. It includes report engine, report designer, preview, dialog window designer, and four macro interpreters - Basic (VB) style, C++ style, JS style and Pascal style. The package contains the FastReport COM-server, standalone designer and source code examples for Microsoft Visual C++, Microsoft Visual C# .NET, Microsoft Visual Basic .NET, Microsoft ASP.NET, Microsoft FoxPro.Set of the product pack:• COM server; • Designer; • Configuration utility; • Scheduler service; • Demo reports; • Demo database; • Documentation pack; • Sources of the demo examples for following development environments: 1. Microsoft Visual C++; 2. Microsoft Visual C# .NET; 3. Microsoft Visual Basic .NET; 4. Microsoft Visual FoxPro; 5. Microsoft Access; 6. Microsoft Excel.FastReport Studio constantly develops and regularly finds new features. -------------------------------------------------------- 2. CAPABILITIESCommon features • Powerful, compact and flexible environment for creating reports; • Compatible with various development environments, which supports COM model (Microsoft Visual C++, Microsoft CSharp.NET, Microsoft Visual Fox Pro, Microsoft Access, Microsoft Visual Basic, Borland Delphi, and so on); • Includes set of resources for 27 languages.Data sources • Microsoft ADO engine; • Data supplied by application; • Data generated by built-in script.Supported report types and data processing • Free-form; • Simple list; • Multilevel groups; • Multilevel master-detail; • Multicolumn; • Cross-tabs; • Charts; • Labels; • Nested reports (sub-reports); • Special dot-matrix reports to print on dot-matrix printers; • Interactive (dialogs, hyperlinks, etc); • All of above in any combination.Preview, print, and export • Friendly WYSIWYG interface; • Multi-page, continuous, side-by-side previews; • Outline support; • Search text in preview window; • Edit report in preview window; • Print on any local and network printers, including dot-matrix printers; • Export in PDF, RTF, Microsoft Excel, XML, HTML, JPEG, BMP, TIFF, plain text, and CSV formats; • Sending the report by e-mail in any supported format. Report design • Built-in report designer with customizable interface; • In-place editing, zooming, rulers, guides and undo/redo; • Three types of grid: centimeters, inches, pixels; • Script editor with syntax highlight; • Script debugger; • Wizards for base type reports;Advanced features • Rich set of add-in objects: text, image, barcode, shape, line, chart, rich text, OLE object, • gradient, checkbox; • Full-featured Text object (paragraphs, text alignment, char spacing, line spacing, text • rotation, Unicode, HTML tags); • Various fill types and shadow; • Build-in dialog designer allows you to create dialogs with standard set of wincontrols: • label, edit, memo, button, checkbox, radiobutton, listbox, combobox, dateedit, etc; • Built-in script languages: PascalScript, C++Script, BasicScript and JScript; • Access to base classes, report objects, controls and forms from a script; • Storing reports in XML or compressed XML formats; • Possible to perform FastReport engine from the command line; • Scheduler service (you can schedule your report and receive it by e-mail); • Advanced configuration utility. --------------------------------------------------------3. DEVELOPERS’ CONTACT INFORMATIONFast Reports Inc. e-mail: <[email protected]> web site: <http://www.fast-report.com>
打印api???lz是不是以前搞java刚学.net? 参考PrintDocumentl类
PrintDocument怎样获取打印页数以及打印失败后的报错信息
可能晚了点。 调用PrintDocument方法的Print方法后,每打印一页都回触发PrintPage事件,这个事件的参数是PrintPageEventArgs,该参数的HasMorePages设置为false可以结束打印,设置为true将继续触发PrintPage事件。 下边是msdn中的例子:下面的代码示例将文档的页面方向设置为横向,并打印该文档。在此示例中使用 System.Drawing、System.Drawing.Printing 和 System.IO 命名空间。Visual Basic 复制代码 Public Class PrintingExample Inherits System.Windows.Forms.Form Private components As System.ComponentModel.Container Private printButton As System.Windows.Forms.Button Private printFont As Font Private streamToPrint As StreamReader
Public Sub New() ' The Windows Forms Designer requires the following call. InitializeComponent() End Sub
' The Click event is raised when the user clicks the Print button. Private Sub printButton_Click(sender As Object, e As EventArgs) Try streamToPrint = New StreamReader("C:\My Documents\MyFile.txt") Try printFont = New Font("Arial", 10) Dim pd As New PrintDocument() AddHandler pd.PrintPage, AddressOf Me.pd_PrintPage pd.Print() Finally streamToPrint.Close() End Try Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
' The PrintPage event is raised for each page to be printed. Private Sub pd_PrintPage(sender As Object, ev As PrintPageEventArgs) Dim linesPerPage As Single = 0 Dim yPos As Single = 0 Dim count As Integer = 0 Dim leftMargin As Single = ev.MarginBounds.Left Dim topMargin As Single = ev.MarginBounds.Top Dim line As String = Nothing
' Calculate the number of lines per page. linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)
' Print each line of the file. While count < linesPerPage line = streamToPrint.ReadLine() If line Is Nothing Then Exit While End If yPos = topMargin + count * printFont.GetHeight(ev.Graphics) ev.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, yPos, New StringFormat()) count += 1 End While
' If more lines exist, print another page. If Not (line Is Nothing) Then ev.HasMorePages = True Else ev.HasMorePages = False End If End Sub
' The Windows Forms Designer requires the following procedure. Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Me.printButton = New System.Windows.Forms.Button()
Me.ClientSize = New System.Drawing.Size(504, 381) Me.Text = "Print Example"
printButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft printButton.Location = New System.Drawing.Point(32, 110) printButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat printButton.TabIndex = 0 printButton.Text = "Print the file." printButton.Size = New System.Drawing.Size(136, 40) AddHandler printButton.Click, AddressOf printButton_Click
Me.Controls.Add(printButton) End Sub ' This is the main entry point for the application. Public Shared Sub Main() Application.Run(New PrintingExample()) End SubEnd Class
C# 复制代码 public class PrintingExample : System.Windows.Forms.Form { private System.ComponentModel.Container components; private System.Windows.Forms.Button printButton; private Font printFont; private StreamReader streamToPrint; public PrintingExample() : base() { // The Windows Forms Designer requires the following call. InitializeComponent(); } // The Click event is raised when the user clicks the Print button. private void printButton_Click(object sender, EventArgs e) { try { streamToPrint = new StreamReader ("C:\\My Documents\\MyFile.txt"); try { printFont = new Font("Arial", 10); PrintDocument pd = new PrintDocument(); pd.PrintPage += new PrintPageEventHandler (this.pd_PrintPage); pd.Print(); } finally { streamToPrint.Close(); } } catch(Exception ex) { MessageBox.Show(ex.Message); } } // The PrintPage event is raised for each page to be printed. private void pd_PrintPage(object sender, PrintPageEventArgs ev) { float linesPerPage = 0; float yPos = 0; int count = 0; float leftMargin = ev.MarginBounds.Left; float topMargin = ev.MarginBounds.Top; string line = null; // Calculate the number of lines per page. linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics); // Print each line of the file. while(count < linesPerPage && ((line=streamToPrint.ReadLine()) != null)) { yPos = topMargin + (count * printFont.GetHeight(ev.Graphics)); ev.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, yPos, new StringFormat()); count++; } // If more lines exist, print another page. if(line != null) ev.HasMorePages = true; else ev.HasMorePages = false; } // The Windows Forms Designer requires the following procedure. private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.printButton = new System.Windows.Forms.Button(); this.ClientSize = new System.Drawing.Size(504, 381); this.Text = "Print Example"; printButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; printButton.Location = new System.Drawing.Point(32, 110); printButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; printButton.TabIndex = 0; printButton.Text = "Print the file."; printButton.Size = new System.Drawing.Size(136, 40); printButton.Click += new System.EventHandler(printButton_Click); this.Controls.Add(printButton); } // This is the main entry point for the application. public static void Main(string[] args) { Application.Run(new PrintingExample()); } }
FastReport Studio 3--------------------------------------------------------
TABLE OF CONTENTS1. Introduction
2. Capabilities
3. Related documents
4. Developers’ contact information--------------------------------------------------------1. INTRODUCTIONFastReport Studio is an powerful, compact and flexible environment for giving your application the ability to generate reports quickly and efficiently. FastReport Studio provides all the tools you need to develop reports. It includes report engine, report designer, preview, dialog window designer, and four macro interpreters - Basic (VB) style, C++ style, JS style and Pascal style. The package contains the FastReport COM-server, standalone designer and source code examples for Microsoft Visual C++, Microsoft Visual C# .NET, Microsoft Visual Basic .NET, Microsoft ASP.NET, Microsoft FoxPro.Set of the product pack:• COM server;
• Designer;
• Configuration utility;
• Scheduler service;
• Demo reports;
• Demo database;
• Documentation pack;
• Sources of the demo examples for following development environments:
1. Microsoft Visual C++;
2. Microsoft Visual C# .NET;
3. Microsoft Visual Basic .NET;
4. Microsoft Visual FoxPro;
5. Microsoft Access;
6. Microsoft Excel.FastReport Studio constantly develops and regularly finds new features. --------------------------------------------------------
2. CAPABILITIESCommon features
• Powerful, compact and flexible environment for creating reports;
• Compatible with various development environments, which supports COM model (Microsoft Visual C++, Microsoft CSharp.NET, Microsoft Visual Fox Pro, Microsoft Access, Microsoft Visual Basic, Borland Delphi, and so on);
• Includes set of resources for 27 languages.Data sources
• Microsoft ADO engine;
• Data supplied by application;
• Data generated by built-in script.Supported report types and data processing
• Free-form;
• Simple list;
• Multilevel groups;
• Multilevel master-detail;
• Multicolumn;
• Cross-tabs;
• Charts;
• Labels;
• Nested reports (sub-reports);
• Special dot-matrix reports to print on dot-matrix printers;
• Interactive (dialogs, hyperlinks, etc);
• All of above in any combination.Preview, print, and export
• Friendly WYSIWYG interface;
• Multi-page, continuous, side-by-side previews;
• Outline support;
• Search text in preview window;
• Edit report in preview window;
• Print on any local and network printers, including dot-matrix printers;
• Export in PDF, RTF, Microsoft Excel, XML, HTML, JPEG, BMP, TIFF, plain text, and CSV formats;
• Sending the report by e-mail in any supported format.
Report design
• Built-in report designer with customizable interface;
• In-place editing, zooming, rulers, guides and undo/redo;
• Three types of grid: centimeters, inches, pixels;
• Script editor with syntax highlight;
• Script debugger;
• Wizards for base type reports;Advanced features
• Rich set of add-in objects: text, image, barcode, shape, line, chart, rich text, OLE object,
• gradient, checkbox;
• Full-featured Text object (paragraphs, text alignment, char spacing, line spacing, text
• rotation, Unicode, HTML tags);
• Various fill types and shadow;
• Build-in dialog designer allows you to create dialogs with standard set of wincontrols:
• label, edit, memo, button, checkbox, radiobutton, listbox, combobox, dateedit, etc;
• Built-in script languages: PascalScript, C++Script, BasicScript and JScript;
• Access to base classes, report objects, controls and forms from a script;
• Storing reports in XML or compressed XML formats;
• Possible to perform FastReport engine from the command line;
• Scheduler service (you can schedule your report and receive it by e-mail);
• Advanced configuration utility.
--------------------------------------------------------3. DEVELOPERS’ CONTACT INFORMATIONFast Reports Inc.
e-mail: <[email protected]>
web site: <http://www.fast-report.com>
参考PrintDocumentl类
调用PrintDocument方法的Print方法后,每打印一页都回触发PrintPage事件,这个事件的参数是PrintPageEventArgs,该参数的HasMorePages设置为false可以结束打印,设置为true将继续触发PrintPage事件。
下边是msdn中的例子:下面的代码示例将文档的页面方向设置为横向,并打印该文档。在此示例中使用 System.Drawing、System.Drawing.Printing 和 System.IO 命名空间。Visual Basic 复制代码
Public Class PrintingExample
Inherits System.Windows.Forms.Form
Private components As System.ComponentModel.Container
Private printButton As System.Windows.Forms.Button
Private printFont As Font
Private streamToPrint As StreamReader
Public Sub New()
' The Windows Forms Designer requires the following call.
InitializeComponent()
End Sub
' The Click event is raised when the user clicks the Print button.
Private Sub printButton_Click(sender As Object, e As EventArgs)
Try
streamToPrint = New StreamReader("C:\My Documents\MyFile.txt")
Try
printFont = New Font("Arial", 10)
Dim pd As New PrintDocument()
AddHandler pd.PrintPage, AddressOf Me.pd_PrintPage
pd.Print()
Finally
streamToPrint.Close()
End Try
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
' The PrintPage event is raised for each page to be printed.
Private Sub pd_PrintPage(sender As Object, ev As PrintPageEventArgs)
Dim linesPerPage As Single = 0
Dim yPos As Single = 0
Dim count As Integer = 0
Dim leftMargin As Single = ev.MarginBounds.Left
Dim topMargin As Single = ev.MarginBounds.Top
Dim line As String = Nothing
' Calculate the number of lines per page.
linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)
' Print each line of the file.
While count < linesPerPage
line = streamToPrint.ReadLine()
If line Is Nothing Then
Exit While
End If
yPos = topMargin + count * printFont.GetHeight(ev.Graphics)
ev.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, yPos, New StringFormat())
count += 1
End While
' If more lines exist, print another page.
If Not (line Is Nothing) Then
ev.HasMorePages = True
Else
ev.HasMorePages = False
End If
End Sub
' The Windows Forms Designer requires the following procedure.
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.printButton = New System.Windows.Forms.Button()
Me.ClientSize = New System.Drawing.Size(504, 381)
Me.Text = "Print Example"
printButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
printButton.Location = New System.Drawing.Point(32, 110)
printButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat
printButton.TabIndex = 0
printButton.Text = "Print the file."
printButton.Size = New System.Drawing.Size(136, 40)
AddHandler printButton.Click, AddressOf printButton_Click
Me.Controls.Add(printButton)
End Sub ' This is the main entry point for the application.
Public Shared Sub Main()
Application.Run(New PrintingExample())
End SubEnd Class
C# 复制代码
public class PrintingExample : System.Windows.Forms.Form
{
private System.ComponentModel.Container components;
private System.Windows.Forms.Button printButton;
private Font printFont;
private StreamReader streamToPrint; public PrintingExample() : base()
{
// The Windows Forms Designer requires the following call.
InitializeComponent();
} // The Click event is raised when the user clicks the Print button.
private void printButton_Click(object sender, EventArgs e)
{
try
{
streamToPrint = new StreamReader
("C:\\My Documents\\MyFile.txt");
try
{
printFont = new Font("Arial", 10);
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler
(this.pd_PrintPage);
pd.Print();
}
finally
{
streamToPrint.Close();
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
} // The PrintPage event is raised for each page to be printed.
private void pd_PrintPage(object sender, PrintPageEventArgs ev)
{
float linesPerPage = 0;
float yPos = 0;
int count = 0;
float leftMargin = ev.MarginBounds.Left;
float topMargin = ev.MarginBounds.Top;
string line = null; // Calculate the number of lines per page.
linesPerPage = ev.MarginBounds.Height /
printFont.GetHeight(ev.Graphics); // Print each line of the file.
while(count < linesPerPage &&
((line=streamToPrint.ReadLine()) != null))
{
yPos = topMargin + (count *
printFont.GetHeight(ev.Graphics));
ev.Graphics.DrawString(line, printFont, Brushes.Black,
leftMargin, yPos, new StringFormat());
count++;
} // If more lines exist, print another page.
if(line != null)
ev.HasMorePages = true;
else
ev.HasMorePages = false;
}
// The Windows Forms Designer requires the following procedure.
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.printButton = new System.Windows.Forms.Button(); this.ClientSize = new System.Drawing.Size(504, 381);
this.Text = "Print Example"; printButton.ImageAlign =
System.Drawing.ContentAlignment.MiddleLeft;
printButton.Location = new System.Drawing.Point(32, 110);
printButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
printButton.TabIndex = 0;
printButton.Text = "Print the file.";
printButton.Size = new System.Drawing.Size(136, 40);
printButton.Click += new System.EventHandler(printButton_Click); this.Controls.Add(printButton);
} // This is the main entry point for the application.
public static void Main(string[] args)
{
Application.Run(new PrintingExample());
}
}