Company Info |
|||
|
Siberix Report Writer is an advanced reporting solution for .Net Framework 2.0 and 3.0 designed to create industry standard PDF and XPS documents dynamically with API calls or from XML. It provides a variety of methods to format text, insert images, draw geometric figures and paths and allows to process complex layouts and flows.
This product doesn't require any third-party DLLs and supports both WinForms and ASP.NET applications. Order
Downloads
Examples
[x]
About
Siberix Technologies is a software development company based in Vancouver, Canada. Siberix Technologies is a full-service provider of custom software applications and advanced technology solutions. The company specializes in software engineering, business applications development and vertical markets solutions.
The company's technical staff are skilled software developers who have the ability to work with a wide variety of programming languages, operating systems and application programming interfaces. Contact Information
SIBERIX TECHNOLOGIES
#241 - 280 NELSON STREET VANCOUVER, BC V6B 2E2 CANADA Email: info@siberix.com
FAQ
Q. Is Siberix Report Writer royalty free?
A. Yes, Siberix Report Writer has 100% royalty free distribution rights. Pay once and use the product wherever you want including web servers or your distribution packages.
Q. What does the Corporate License mean?
A. The Corporate License includes unlimited number of company's developer seats, unlimited number of company's web servers and unlimited number of distributions as a part of your application.
Q. What does the Source Code License mean?
A. The Source Code License covers the standard Corporate License and includes full source code for the Siberix Report Writer. You may perform any modifications to the product or even compile it in one binary file with your application. Please read the software license agreement for more details.
Q. Are there any limitations in the evaluation version?
A. No, it's fully functional and represents all original features and behavior. It allows you to perform any tests in your production environment until you get the commercial version of the product.
Q. Do I need to obtain any special license from Adobe?
A. Adobe PDF is an open standard and we haven't seen anything that prevents to develop a product for the PDF document generation. Siberix Report Writer doesn't use Acrobat Reader's interfaces to produce PDF documents and is not a plug-in to the Acrobat Reader in any way. From that point of view the product is a standalone third party component. Thus, we believe that you have to follow the Acrobat Reader's license agreement in the matter of distributing the Acrobat Reader itself and the Siberix Report Writer's license agreement in the matter of distributing the product.
You may need to get a license from Adobe to bundle the Acrobat Reader with your project distribution package. However, this has nothing to do with the product's API used to generate PDF files. Q. Do I need to obtain any special license from Microsoft?
A. To the best of our knowledge, Microsoft doesn't forbid third party companies to develop a product for the XPS document generation.
However, according to the XML Paper Specification Patent License we have to provide the following notice for your information:
This product may incorporate intellectual property owned by Microsoft Corporation. The terms and conditions upon which Microsoft is licensing such intellectual property may be found at http://go.microsoft.com/fwlink/?LinkId=52369. Q. How to install or upgrade the product?
A. Siberix Report Writer doesn't require any installation. All you need to do is to copy Siberix.ReportWriter.dll into your project folder (desktop applications) or to the "bin" folder (ASPX applications) and reference it from the project. You may read regarding the "bin" folder and other deployment options in ASP.NET at the following link.
Notes 1. It's required to register the Siberix.ReportWriter.dll in the Global Assembly Cache (GAC) to work properly in the Medium Trust environment. You can use:
2. In some rare cases you may find out that the evaluation watermark is still in place or get unexpected errors while installing or upgrading the product. To eliminate them please follow to the instructions below. It is preferred to perform all the steps together:
Q. How do I get started with the product?
A. We recommend that you start with a brief review of the User's Guide and continue with a detailed analysis of supplied examples.
Q. How to stream out PDF or XPS documents in ASP.NET?
A. There are several ways to stream out PDF or XPS documents from an ASPX page. See the code samples below.
Content types: PDF - application/pdf XPS - application/vnd.ms-xpsdocument 1. Streaming into the context's response [c#] System.Web.HttpContext context = System.Web.HttpContext.Current; System.Web.HttpResponse response = context.Response; response.Clear(); response.ContentType = "application/pdf"; report.Publish(response.OutputStream, Siberix.Report.FileFormat.PDF); response.End(); [vb] Dim context As System.Web.HttpContext = System.Web.HttpContext.Current Dim response As System.Web.HttpResponse = context.Response response.Clear() response.ContentType = "application/pdf" report.Publish(response.OutputStream, Siberix.Report.FileFormat.PDF) response.End() Note: To stream out a PDF document over the https response please use the following lines: [c#] System.IO.MemoryStream ms = new System.IO.MemoryStream(); report.Publish(ms, Siberix.Report.FileFormat.PDF); byte[] buffer = ms.ToArray(); int length = buffer.Length; System.Web.HttpContext context = System.Web.HttpContext.Current; System.Web.HttpResponse response = context.Response; response.Clear(); response.ContentType = "application/pdf"; response.AddHeader("Content-Length", length.ToString()); response.AddHeader("Accept-Ranges", "bytes"); response.AddHeader("Accept-Header", length.ToString()); response.OutputStream.Write(buffer, 0, length); response.End(); [vb] Dim ms As System.IO.MemoryStream = New System.IO.MemoryStream() report.Publish(ms, Siberix.Report.FileFormat.PDF) Dim buffer As Byte() = ms.ToArray() Dim length As Integer = buffer.Length Dim context As System.Web.HttpContext = System.Web.HttpContext.Current Dim response As System.Web.HttpResponse = context.Response response.Clear() response.ContentType = "application/pdf" response.AddHeader("Content-Length", length.ToString()) response.AddHeader("Accept-Ranges", "bytes") response.AddHeader("Accept-Header", length.ToString()) response.OutputStream.Write(buffer, 0, length) response.End() 2. Streaming into the "Response" with the "inline" attribute [c#] Response.Clear(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "inline; filename=Document.pdf"); report.Publish(Response.OutputStream, Siberix.Report.FileFormat.PDF); Response.End(); [vb] Response.Clear() Response.ContentType = "application/pdf" Response.AddHeader("content-disposition", "inline; filename=Document.pdf") report.Publish(Response.OutputStream, Siberix.Report.FileFormat.PDF) Response.End() 3. Streaming into the "Response" with the "attachment" attribute [c#] Response.Clear(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment; filename=Document.pdf"); report.Publish(Response.OutputStream, Siberix.Report.FileFormat.PDF); Response.End(); [vb] Response.Clear() Response.ContentType = "application/pdf" Response.AddHeader("content-disposition", "attachment; filename=Document.pdf") report.Publish(Response.OutputStream, Siberix.Report.FileFormat.PDF) Response.End() 4. Saving to the server and redirecting to some HTML page with the link to the generated PDF document [c#] System.IO.FileStream stream = new System.IO.FileStream(Server.MapPath("Document.pdf"), System.IO.FileMode.Create, System.IO.FileAccess.Write); report.Publish(stream, Siberix.Report.FileFormat.PDF); stream.Close(); Response.Redirect("link.html"); or Response.Clear(); Response.Output.Write("<a href=\"Document.pdf\">PDF</a>"); Response.End(); [vb] Dim stream As System.IO.FileStream = New System.IO.FileStream(Server.MapPath("Document.pdf"), System.IO.FileMode.Create, System.IO.FileAccess.Write) report.Publish(stream, Siberix.Report.FileFormat.PDF) stream.Close() Response.Redirect("link.html") or Response.Clear() Response.Output.Write("<a href=""Document.pdf"">PDF</a>") Response.End() Q. What are the known limitations of the product?
A. Siberix Report Writer doesn't provide any methods to:
1. Open, modify, merge, split, fill forms or print existing PDF documents. 2. Convert Word, Excel or PowerPoint files into PDF documents. 3. Save reports in Word, Excel or PowerPoint formats. 4. Process EMF, EMF+, SVG or DXF images. Q. Does Siberix Report Writer support XSL-FO?
A. No, Siberix Report Writer doesn't support XSL-FO. There are a lot of similarities between these two standards in fields of object design and layout composition. In spite of the fact that XSL-FO is extremely powerful standard it is at the same time very complicated and hard to understand. On the other hand, Siberix Report Writer provides a very convenient way to build reports with API calls or from XML files and allows to get started with the development immediately.
Q. How to embed a PDF document within an HTML page?
A. You can use the <EMBED> tag to embed PDF files within your HTML pages:
<EMBED src="Document.pdf" width="500" height="500"></EMBED> For Netscape Navigator users also add the "href" attribute: <EMBED src="Document.pdf" href="Document.pdf" width="500" height="500"></EMBED> Q. How can I specify the name of the PDF document in ASP.NET?
A. You may use the "attachment" attribute. This will open the PDF document in a separate window:
Response.AddHeader("content-disposition", "attachment; filename=Document.pdf"); Another way is to use the last part of the URL as a name for the document: http://www.myServer.com/pdf.aspx?filename=/Document.pdf Q. Is it possible to show a PDF document starting at a particular page?
A. Yes, you may pass a page number in the "page" parameter. See the line below:
http://www.myServer.com/myFolder/myDocument.pdf#page=5 Q. How can I assign the permissions to some folder in ASP.NET?
A. Usually, it is just enough to use the "ASPNET" account. However, you may set the permissions using the following steps:
1. Select the folder 2. Select "Properties" (Right click) 3. Select "Security" tab 4. Select "Add" 5. Select "Advanced" 6. Click "Find Now" 7. Select "ASPNET" account and add it to the list 8. Set the required permissions for that account Q. Is Siberix Report Writer 100% managed?
A. Siberix Report Writer is written in 100% pure C# without any "tricks" and "hooks". There are only a few native calls to retrieve font data and one unsafe part to speedup image processing. The rest of the product is 100% managed C#.
[DllImport("user32.dll")] private static extern Int32 GetDC(Int32 hWnd); [DllImport("user32.dll")] private static extern Int32 ReleaseDC(Int32 hWnd, Int32 hDC); [DllImport("gdi32.dll")] private static extern Int32 SelectObject(Int32 hDC, Int32 hGDIObj); [DllImport("gdi32.dll")] private static extern Int32 DeleteObject(Int32 hGDIObj); [DllImport("gdi32.dll")] private static extern Int32 GetFontData(Int32 hDC, int table, int offset, [In, Out] byte[] buffer, int length); BitmapData bmd = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb); bmp.UnlockBits(bmd); Q. Is strong-named Siberix.ReportWriter.dll supposed to reside in the GAC?
A. We believe that you have to explicitly register Siberix.ReportWriter.dll (gacutil -i Siberix.ReportWriter.dll) to store it in the Global Assembly Cache (GAC).
Q. How to run the Acrobat Reader from my application?
A. You may simply run the Acrobat Reader and open some PDF document in it with the following lines:
using System.Diagnostics; Process process = new Process(); ProcessStartInfo info = new ProcessStartInfo("Document.pdf"); process.StartInfo = info; process.Start(); Q. How to disable dynamic IIS compression at a page level?
A. You may use the following command line:
cscript C:\Inetpub\AdminScripts\adsutil.vbs set W3SVC/{siteID}/Root/{subfolder}{page.asp}/DoDynamicCompression False Q. How to embed a multy-page TIFF image?
A. You may use the following lines:
[c#] System.Drawing.Image tiff = System.Drawing.Image.FromFile("../../image.tiff"); System.Drawing.Imaging.FrameDimension dimension = new System.Drawing.Imaging.FrameDimension(tiff.FrameDimensionsList[0]); int i = 0; int cnt = tiff.GetFrameCount(dimension); while (i < cnt) { tiff.SelectActiveFrame(dimension, i); Siberix.Graphics.Image img = new Siberix.Graphics.Image(tiff); img.Preferences.Converter = Siberix.Graphics.Image.Converters.BW; img.Preferences.Compressor = Siberix.Graphics.Image.Compressors.CCITT; Siberix.Report.IImage image = section.AddImage(img); image.Width = new Siberix.Report.RelativeWidth(100); i++; } [vb] Dim tiff As System.Drawing.Image = System.Drawing.Image.FromFile("../../image.tiff") Dim dimension As System.Drawing.Imaging.FrameDimension = New System.Drawing.Imaging.FrameDimension(tiff.FrameDimensionsList(0)) Dim i As Integer = 0 Dim cnt As Integer = tiff.GetFrameCount(dimension) While i < cnt tiff.SelectActiveFrame(dimension, i) Dim img As Siberix.Graphics.Image = New Siberix.Graphics.Image(tiff) img.Preferences.Converter = Siberix.Graphics.Image.Converters.BW img.Preferences.Compressor = Siberix.Graphics.Image.Compressors.CCITT Dim image As Siberix.Report.IImage = section.AddImage(img) image.Width = New Siberix.Report.RelativeWidth(100) i += 1 End While Q. How to publish every page of the report individually?
A. You may use the following lines:
[c#] Siberix.Report.Projection.IPageCollection pages = report.Generate(); int i = 1; foreach (Siberix.Report.Projection.IPage page in pages) { Siberix.PDF.Document pdfDocument = new Siberix.PDF.Document(); Siberix.PDF.IPage pdfPage = pdfDocument.AddPage(page.Width, page.Height); page.Draw(pdfPage.Graphics); pdfPage.Graphics.Flush(); pdfDocument.Generate("Document" + i.ToString() + ".pdf"); i++; } [vb] Dim pages As Siberix.Report.Projection.IPageCollection = report.Generate() Dim i As Integer = 1 For Each page As Siberix.Report.Projection.IPage In pages Dim pdfDocument As Siberix.PDF.Document = New Siberix.PDF.Document() Dim pdfPage As Siberix.PDF.IPage = pdfDocument.AddPage(page.Width, page.Height) page.Draw(pdfPage.Graphics) pdfPage.Graphics.Flush() pdfDocument.Generate("Document" + i.ToString() + ".pdf") i += 1 Next Q. How to publish a report from a command line?
A. You may use the following lines:
[c#] static void Main(string[] args) { if (args.Length == 2) { string src = args[0]; string dst = args[1]; string format = dst.Substring(dst.LastIndexOf(".") + 1, 3).ToUpper(); Siberix.Report.Report report = new Siberix.Report.Report(); report.Load(src); if (format == "PDF") report.Publish(dst, Siberix.Report.FileFormat.PDF); else report.Publish(dst, Siberix.Report.FileFormat.XPS); System.Console.Out.WriteLine(); System.Console.Out.WriteLine("Siberix Report Writer. Version 8.0"); System.Console.Out.WriteLine("Generation succeeded."); System.Console.Out.WriteLine(); } else { System.Console.Out.WriteLine(); System.Console.Out.WriteLine("Siberix Report Writer. Version 8.0"); System.Console.Out.WriteLine(); System.Console.Out.WriteLine("Example.exe input output"); System.Console.Out.WriteLine(); System.Console.Out.WriteLine(" input - specifies the name of the input XML file."); System.Console.Out.WriteLine(" output - specifies the name of the output file."); System.Console.Out.WriteLine(); } } [vb] Sub Main(ByVal args As String()) If args.Length = 2 Then Dim src As String = args(0) Dim dst As String = args(1) Dim format As String = dst.Substring(dst.LastIndexOf(".") + 1, 3).ToUpper() Dim report As Siberix.Report.Report = New Siberix.Report.Report() report.Load(src) If format = "PDF" Then report.Publish(dst, Siberix.Report.FileFormat.PDF) Else report.Publish(dst, Siberix.Report.FileFormat.XPS) End If System.Console.Out.WriteLine() System.Console.Out.WriteLine("Siberix Report Writer. Version 8.0") System.Console.Out.WriteLine("Generation succeeded.") System.Console.Out.WriteLine() Else System.Console.Out.WriteLine() System.Console.Out.WriteLine("Siberix Report Writer. Version 8.0") System.Console.Out.WriteLine() System.Console.Out.WriteLine("Example.exe input output") System.Console.Out.WriteLine() System.Console.Out.WriteLine(" input - specifies the name of the input XML file.") System.Console.Out.WriteLine(" output - specifies the name of the output file.") System.Console.Out.WriteLine() End If End Sub Support
This service is available for both pre-sale customers and current subscribers with maintenance. We try to process any requests within 24 hours. If you have questions about licensing, integration, layout composition or want to report a bug, please do not hesitate to contact us, so we could assist you with the problem.
Please submit your questions by email to info@siberix.com Academic Pricing
If you are qualified student, faculty member, staff member, or an accredited institution within the United States or Canada you are eligible for a 50% discount.
Small Business Support
If you are a small business company you are eligible for a major discount. Just contact our sales department, describe your company and your project and we'll find a way to provide you with the solution for the price you can afford.
Upgrade Policy
As a registered customer, you are entitled to obtain free upgrades during 6 months from the date of purchase. If you purchased the software more than 6 months ago, you are no longer entitled to obtain free upgrades. However, you can purchase an upgrade to the latest version at a greatly discounted price, and this will allow you to get free upgrades for another 6 months.
Return Policy
Siberix Technologies offers free evaluation versions of the products. Therefore, it is assumed that you have reviewed the software and are completely satisfied with its quality before effecting actual purchase. If you have not tried our free downloadable evaluation versions, please do so before purchasing the product. With knowledge of the above, no return request should be solicited by you on such basis. Our products are not refundable.
Copyright
You have our permission to print and use copies of the documents at this web site such as FAQ, User's guide, License agreement provided that:
Disclaimer
Siberix Technologies does not give any warranty or other assurance as to the operation, quality or functionality of this web site. Access to the site may be interrupted, restricted or delayed for any reason.
Siberix Technologies also does not give any warranty or other assurance as to the content of the material appearing on the site, its accuracy, completeness, timelessness or fitness for any particular purpose. To the full extent permissible by law, Siberix Technologies disclaims all responsibility for any damages or losses (including, without limitation, financial loss, damages for loss in business projects, loss of profits or other consequential losses) arising in contract, tort or otherwise from the use of or inability to use this web site or any material appearing on it, or from any action or decision taken as a result of using this site or any such material. Siberix Technologies disclaims all responsibility and liability (including for negligence) in relation to information on or accessible from this web site. |
|||
|
© 2003-2008 Siberix Technologies, Canada. All Rights Reserved. |