Print a report in java

Maybe this is not the appropriate section.. My problem is that I'm trying to realize a desktop application connected to a database, which should be able to manage data by GUIs and print report if it's necessary. For the first part everything's ok, but I've a few question about the second.. watching around I found some examples of classes that implement Printable which can be the answer of my question, but..
- is possible to create a report with a Printable class and then save it into a .pdf? and/or other formats?
Anyway, am I right in this or did I try something wrong?

You can create a PDF file using the [itext |http://www.lowagie.com/iText/] library
you can create reports using jasperreports
you can print the reports and save them as PDF,EXCEL ,HTML and more...
(jasperreports is using the [itext |http://www.lowagie.com/iText/] library )
you can edit your reports using ireport
hope that helps

Similar Messages

  • Auto print out report for java application

    <p>Hi, </p><p>Now i&#39;m using eclipse 3.2 to develop a java application and using crystal report to create report.</p><p>I would like to directly printing out the report from the java application.</p><p>what the installer or plugin i need?</p><p>What the setting i need to set? </p><p>Can you give me the sample coding to directly print out the report from java application by passing parameter?</p><p>Thanks,</p><p>Hui Bee</p>

    There is a Consulting Solution called BOInterface that Business Objects Global Services sells and that helps you to achieve what you describe very easily.
    A description is <a href="http://www.mnsoft.org/bointerface0.0.html">here</a>.
    Particularly, see the <a href="http://www.mnsoft.org/boxinterfacedocs/com/bo/boxinterface/boreport/scheduler/BOReportSchedulerPrinter.html">BOReportSchedulerPrinter</a>. BOInterface comes with a complete example on scheduling to printer; that example can even itself be scheduled.
    Contact me via direct email for more information if this is interesting for you.
    HTH,
    M
    Matthias Nott -  Business Objects
    Service Line Leader Products EMEA
    [email protected]

  • Avoid Printer selection Dialogue box when printing Crystal report in JAVA

    Hi i am calling crystal report in my servlet using Report Client Document SDK, now i want to print the report directly to the default printer set without selecting the printer from the select printer dialogue box. In other words want to avoid the select printer dialogue box from appearing . Can any body suggest me how do i do this .
    Any suggestions appreciated.

    In javascripting the code is
    function Print()
    if (document.all)
    WebBrowser1.ExecWB(6, -1) //use 6, 1 to prompt the print dialog or 6, 6 to omit it;
    WebBrowser1.outerHTML = "";
    <object ID="WebBrowser1" WIDTH="0" HEIGHT="0"
    CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
    But the above code does not work in windows XP SP2.... and i cannot restrict my clients OS.
    where as C#,ASP.NET  provides the functionality to print directly to printer as
    The ReportDocument class provides PrintToPrinter method that may be used to print a CR direct to the printer. If no printer is selected, the default printer will be used to send the printing pages to.
    The PrintToPrinter method takes four parameters.
    nCopies : Indicates the number of copies to print.
    collated : Indicates whether to collate the pages.
    startPageN : Indicates the first page to print.
    endPageN : Indicates the last page to print.
    The following steps will guide you to achieve the same:
    Add crystal report (.cr) file to your ASP.NET application.
    Add a report instance on the page level.
    Dim report As MyReport = New MyReport
    Populate reports data on Page_Init 
      ' Get data in a DataSet or DataTable
            Dim ds As DataSet = GetData()
            ' Fill report with the data
         report.SetDataSource(ds)
    Print Report
    report.PrintToPrinter(1, False, 0, 0)
    If you wish to print certain page range, change last two parameters From to To page number.
    If you want to set page margins, you need to create a PageMargin object and set PrintOptions of the ReportDocument.
    The following code sets page margins and printer name:
    Dim margins As PageMargins =  Report.PrintOptions.PageMargins
       margins.bottomMargin = 200
       margins.leftMargin = 200
       margins.rightMargin = 50
       margins.topMargin = 100
       Report.PrintOptions.ApplyPageMargins(margins)
       ' Select the printer name
       Report.PrintOptions.PrinterName = printerName
    Thn Why not a java SDK for Crystal report can provide such a functionality...
    Edited by: rtabassum on Mar 25, 2010 6:34 AM
    Edited by: rtabassum on Mar 25, 2010 6:36 AM
    Edited by: rtabassum on Mar 25, 2010 6:42 AM

  • Printing Access report from Java JButton

    hi would anyone be able to help me i need to print a MS access report from a JButton on a Java interface i have connected to the database using JDBC-ODBC and can retrieve data from the table and store it in text fields on java GUI however i have problems when it comes to printing the reports.
    Help I Need Somebody. :)

    Not possible using Java.
    I would guess that it is possible to do this using C/C++ and windows API calls. And once you figured that out then you could use JNI to call that code and that would allow you to use java.
    I can think of one other odd solution....
    1. Acquite 'AutoIt' - search for it on google
    2. Create an AutoIt script that runs Access, opens the database and runs the report.
    3. Use Runtime.exec() in Java to run AutoIt passing in the script from 2.

  • Printing report in java application

    We have a java application with crystal report implementation. In this we have a option for printing the crystal report. While invoking the printing api we have the following error insteadof printing the report.
    "The maximum report processing jobs limit configured by your system administrator has been reached."
    Please help me for this issue.

    I think you need to set the following Registry Key:
    HKEY_LOCAL_MACHINE\SOFTWARE\CRYSTAL DECISIONS\10.0\REPORT APPLICATION SERVER\SERVER\PrintJobLimit

  • Printing the datas through Crystal Report from Java

    How can I Print the datas through Crystal Report from java?

    How can I Print the datas through Crystal Report from
    java?
    What the hell are "the datas"?
    Jesus, I can understand this is a shrinking planet, Global community, and all that happy horse pucky. Typos or small grammar errors are no big deal, I make them all the time. But when I have to spend more time interpretting the question than figuring out the answer, it drives me crazy.

  • Print crystal report without using the print button on toolbar

    Hi,
    I am working on Crystal report XI. I need to print the report w/o using the toolbar. So I have inserted a print icon in the report. On clicking that icon it should call a jsp page which will print the report. I am not able to call any print methods provided by JRC to do this.
    Can someone help me with this problem.
    Is there some other way to implement it ?
    Thanks
    Message was edited by:
    CR_newbie

    Print the report where? On what printer? The server's printer?
    Java code runs on the server. You can't affect the client's computer from JSP.
    You can write javascript code which can call window.print() but that is working through the browser to display the print dialog box (as if the user selected file:print)

  • Print a report from Application Express direct to a CUPS Printer

    Hi all, I'm new to this technology, is it possible to print a report from Application Express directly to a CUPS Printer? Can someone tell me in laymans terms how to do it? I find the terminology and documentation less than helpful.

    Jeremy,
    BI Publisher handles submitting reports directly to a CUPS printer. However, the APEX integration doesn't currently integrate with that portion of BI Publisher.
    Here's an options:
    Use the Java API of BI Publisher to build a custom Java program that would do this for you. Delivering to CUPS is part of the Java API.
    Bryan

  • Print Message Report from Mobile

    Hello...
    We need modify standard mobile infrastructure java code...
    We need print some report from Mobile Front-end.
    Is possible to print all MESSAGE data that we can see from front-end of mobile infrastructure 2.5 ???
    thank you very much
    Stefano

    I haven't really done much enhancements on MAM 2.5, but Im sure sami will let you know where to add the code, or you can review the MAM enhancement guide on the CD.
    In regards to printing the PIOS API is pretty simple. If you are using a laptop to print to a normal printer then you can just use the Win32 Drivers..(installed via driver addon from web sap console.)If you are using the handheld you will need to find the appropriate drivers.
    Here is some code I used in one of my applications:
                   <i>Connector conn = Connector.getInstance();
                   DriverInfo[] driverInfo = conn.listDrivers(ConnectionType.PRINTER);
                   PrinterParameters params = new PrinterParameters(driverInfo[0]);
                   params.setPrinterMode(PrinterParameters.GRAPHIC_MODE);
                   GraphicPrinter gp = (GraphicPrinter) conn.open(params);
                   File myImage = new File("c:
    smalllogo.bmp");
                   if (myImage.exists()) {
                        float x = 0;
                        float y = 50;
                        try {
                             String[] sFonts =
                                  gp.getFontConfigurationManager().listFontNames();
                             PrinterFont pf = gp.getFont(sFonts[0]);
                             gp.drawText(
                                  pf,
                                  25,
                                  25,
                                  "TO For Delivery # = "
                                       + dbAccess.getItemFieldValue(arrayItems[0], "VBELN"),
                                  GraphicPrinter.NO_ROTATION);
                             for (i = 0; i < arrayItems.length; i++) {
                                  gp.drawText(
                                       pf,
                                       25,
                                       y,
                                       "Delivery Item # = "
                                            + dbAccess.getItemFieldValue(
                                                 arrayItems<i>,
                                                 "POSNR"),
                                       GraphicPrinter.NO_ROTATION);
                                  y = y + 10;
                                  gp.drawText(
                                       pf,
                                       25,
                                       y,
                                       "Material # = "
                                            + dbAccess.getItemFieldValue(
                                                 arrayItems<i>,
                                                 "MATNR"),
                                       GraphicPrinter.NO_ROTATION);
                                  y = y + 10;
                                  gp.drawText(
                                       pf,
                                       25,
                                       y,
                                       "Quantity to Pick = "
                                            + dbAccess.getItemFieldValue(
                                                 arrayItems<i>,
                                                 "LFIMG"),
                                       GraphicPrinter.NO_ROTATION);
                                  y = y + 25;
                   gp.doPrint(1);
                   gp.close();
              } catch (Throwable tFile) {
                   tFile.printStackTrace();
              }<i>
    This should give you an idea, you should also read through the MDK documentation for the printer API (PIOS). Its quite easy to pick up and as long as you have the driver and connector installed it prints right away.(You could also use the Peripheral emulator in
    NWDS to test the code first)
    Hope this helps,
    Wael..
    Dont forget the rewards
    Message was edited by: wael aoudi

  • Print a report directly to the printer

    I need to print a report directly to the printer in Oracle Forms and Report 11g without a preview in the browser

    Hello,
    <p>You can use this Java Bean</p>
    Francois

  • Need Help with Print a Report

    Hi,
    I am building a database application in Java and now i need to print some reports ....
    I need to get the data from the database .. do some calculations , and then print in on paper.
    I checked online and got some tools like JasperReports, jfreereports, ReportCat, etc. so I was wondering if somebody can suggest whats the best.
    In my report I will have to print more than one table on one page.
    for example:
    if I have 4 Invoices. then i will have 4 tables .. one for each invoice.. and each table will contain
    the elements for that Invoice.If all can't fit on one page then it needs to go next page.
    I would like to do all this stuff in Java without using any reporting tool ... but I am not really sure how this can be
    done .. can someone give me an idea ... as per how this can be done .. will really appriciate all the help.
    Thanks in advance,
    sandsouza

    Hi,
    Can somebody please help me with this.
    Thanks in advance
    sandsouza

  • How to print a report on crystal report server using webservice call

    Hi,
    I'm looking for web service api calls that help print a report on the crystal report server. Can someone post a snippet of how this is done.
    Thanks,

    Below is a snippet that uses the BusinessObjects Enterprise XI Release 2 version of the BIPlatform Web Services Java Consumer API:
    Sincerely,
    Ted Ueda
    /* Printer name */
    String printerName = "\\\\van-s-prt01\\VAN-P-BEAVERCREEK";
    /* URL to Enterprise Web Services */
    String servicesURL = "http://localhost:8080/dswsbobje/services";
    Session ceSession = null;
    Connection ceConnection = new Connection(new URL(servicesURL + "/session"));
    EnterpriseCredential ceCredential = new EnterpriseCredential();
    ceCredential.setDomain(cmsname);
    ceCredential.setAuthType(authType);
    ceCredential.setLogin(username);
    ceCredential.setPassword(password);
    try {
         ceSession = new Session(ceConnection);
         ceSession.login(ceCredential);
         ceConnection.setURL(new URL(servicesURL + "/biplatform"));
         BIPlatform bip = new BIPlatform(ceConnection, ceSession.getConnectionState());
         GetOptions getOpts =new GetOptions();
         getOpts.setIncludeSecurity(Boolean.FALSE);
         ResponseHolder rh = bip.get(reportPath, getOpts);
         InfoObjects infoObjects = rh.getInfoObjects();
         CrystalReport report = (CrystalReport) infoObjects.getInfoObject(0);
         ReportProcessingInfo processing = report.getPluginProcessingInterface();
        CrystalReportPrinterOptions printerOptions = processing.getReportPrinterOptions();
        printerOptions.setEnabled(Boolean.TRUE);
        printerOptions.setPrinterName(printerName);
         report.setSchedulingInfo(new SchedulingInfo());
         report.getSchedulingInfo().setRightNow(Boolean.TRUE);
         bip.schedule(infoObjects);
    } finally {
         if(ceSession != null)
              ceSession.logout();

  • Web printing crystal report hangs on report.PrintOptions.PrinterName

    Hello,
    I have a report web page that displays a crystal report.  I have added a modal popup to allow them to select their printers.  When I go to print the report is hangs on the line of rpt.PrintOptions.PrinterName = li.Text.  The printer names are added to the list box using a Java applet.
    Here is the Sub it is running.
        Public Sub PrintReports()
            rpt = CType(Session("rpt"), ReportDocument)
            For Each li As ListItem In Me.lbPrinters.Items
                If li.Selected AndAlso li.Text <> "" Then
                    rpt.PrintOptions.PrinterName = li.Text
                    rpt.PrintOptions.PrinterDuplex = CType(Me.cboDuplex.SelectedItem.Value, CrystalDecisions.Shared.PrinterDuplex)
                    rpt.PrintToPrinter(CInt(Me.txtNumOfCopies.Text), True, CInt(Me.txtPageStartRange.Text), CInt(Me.txtPageRangeEnd.Text))
                End If
            Next
            Me.mpePrint.Hide()
        End Sub
    Any help would be greatly appreciated.
    Thanks,
    Patrick

    Sounds like you're trying to implement server side printing in your app. Which is fine, except the CR ActiveX print is client side printing. Just in case you're interested, the way to enable activeX print is to go to the property of the CR viewer and find "PrintMode". It will more than likely be defaulted to PDF. Change that to ActiveX.
    Now, back to the issue. This may still be a matter of permissions - essentially what Adam was after. Probably the easiest way to determine that is to use the [Process Monitor|http://technet.microsoft.com/en-ca/sysinternals/bb896645.aspx] utility. Once you have the log, search it for "Access Denied" messages.
    Ludek

  • Creating a sample report using JAVA SDK

    Hi,
    I am trying to create a sample report using JAVA SDK.
    I slelect 4 "free cells" and pass 4 different strings to it.
    I even slelect the font colour and size. When i run the class and try to view the report in Infoview, I only seeblank blocks without any data. Now if I edit the report from infoview, and save the changes, I am able to see the data.
    My issue is, Why am I not able to see the data when I run the java code.
    Please find teh code below.
    package com;
    import java.awt.Color;
    import java.io.FileOutputStream;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import com.businessobjects.rebean.wi.BinaryView;
    import com.businessobjects.rebean.wi.DataProvider;
    import com.businessobjects.rebean.wi.DataProviders;
    import com.businessobjects.rebean.wi.DataSource;
    import com.businessobjects.rebean.wi.DataSourceObject;
    import com.businessobjects.rebean.wi.DocumentInstance;
    import com.businessobjects.rebean.wi.DocumentLocaleType;
    import com.businessobjects.rebean.wi.FontImpl;
    import com.businessobjects.rebean.wi.FreeCell;
    import com.businessobjects.rebean.wi.HTMLView;
    import com.businessobjects.rebean.wi.OutputFormatType;
    import com.businessobjects.rebean.wi.PageHeaderFooter;
    import com.businessobjects.rebean.wi.Query;
    import com.businessobjects.rebean.wi.Recordset;
    import com.businessobjects.rebean.wi.Report;
    import com.businessobjects.rebean.wi.ReportBody;
    import com.businessobjects.rebean.wi.ReportCell;
    import com.businessobjects.rebean.wi.ReportContainer;
    import com.businessobjects.rebean.wi.ReportElement;
    import com.businessobjects.rebean.wi.ReportEngine;
    import com.crystaldecisions.sdk.framework.CrystalEnterprise;
    import com.crystaldecisions.sdk.framework.IEnterpriseSession;
    import com.crystaldecisions.sdk.framework.ISessionMgr;
    import com.crystaldecisions.sdk.occa.infostore.IInfoObject;
    import com.crystaldecisions.sdk.occa.infostore.IInfoObjects;
    import com.crystaldecisions.sdk.occa.infostore.IInfoStore;
    import com.crystaldecisions.sdk.plugin.CeKind;
    public class Aug7th {
          * @param args
         public static void main(String[] args) {
              // TODO Auto-generated method stub
              String CMS = "pundl8136:6400";
              String userID = "srivas";
              String password = "morcom123";
              String auth = "secEnterprise";
              List<String> entire =new ArrayList<String>();
              List<String> country =new ArrayList<String>();
              List<String> resort =new ArrayList<String>();
              IEnterpriseSession enterpriseSession;
              try
                   ISessionMgr mySessionMgr = CrystalEnterprise.getSessionMgr();
                   enterpriseSession = mySessionMgr.logon(userID, password, CMS,auth);
                   if (enterpriseSession != null)
                   {//Create and store useful objects for the session.
                        IInfoStore iStore = (IInfoStore)enterpriseSession.getService("InfoStore");
                        ReportEngine reportEngine = (ReportEngine)enterpriseSession.getService("WebiReportEngine");
                        IInfoObject infoView = null;
                        String str = "SELECT SI_ID, SI_NAME, SI_PARENTID FROM CI_INFOOBJECTS WHERE (SI_KIND = '"+CeKind.WEBI+"' OR SI_KIND='FullClient') " +
                        "AND SI_INSTANCE = 'false' AND SI_NAME='Structure Test_001_Java' ORDER BY SI_NAME ASC ";
                        //String str = "SELECT SI_ID, SI_NAME, SI_PARENTID FROM CI_INFOOBJECTS ORDER BY SI_NAME ASC ";
                        IInfoObjects objInfoObjectsWIDs = (IInfoObjects) iStore.query(str);
                        System.out.println(objInfoObjectsWIDs.size());
                        IInfoObject objInfoObjectWID = (IInfoObject) objInfoObjectsWIDs.get(0);
                        DocumentInstance doc = reportEngine.openDocument(objInfoObjectWID.getID());
                        DataProviders dps = doc.getDataProviders();
    //                     Retrieve the 1st data provider
                        DataProvider dp = dps.getItem(0);
    //                     Retrieve the universe objects
                        DataSource ds = dp.getDataSource ();
                        Query q = dp.getQuery();
                        Recordset rs = dp.getResult(0);
    //                     0: assume query has one flow
                        rs.first();
    //                     Print the column types. They can be Integer, String,
    //                     or Date.
                        for (int i = 0; i < rs.getColumnCount(); i++) {
                        Class c = rs.getColumnType(i);
                        StringBuffer sbt = new StringBuffer();
                        if ( c.equals(Integer.class) )
                        sbt.append("Integer");
                        if ( c.equals(String.class) )
                        sbt.append("String");
                        if ( c.equals(Date.class) )
                        sbt.append("Date");
                        sbt.append(";");
                        System.out.println(sbt.toString());
                        System.out.println(rs.getColumnCount());
                        while (!rs.isLast()) {
    //                          column names
                             StringBuffer sbn = new StringBuffer();
                             StringBuffer sbd = new StringBuffer();
                             for (int j = 0; j < rs.getColumnCount(); j++) {
                             sbn.append( rs.getColumnName(j).toString() );
                             sbn.append(";");
                             System.out.println("sbn "+sbn.toString());
    //                          data
                             for (int k= 0; k< rs.getColumnCount(); k++) {
                             sbd.append( rs.getCellObject(k).toString() );
                             sbd.append(";");
                             entire.add(rs.getCellObject(k).toString());
                             System.out.println("sbd "+sbd.toString());
                             rs.next();
                        System.out.println(entire.size());
                        for(int i=0;i<entire.size();i++){
                             country.add(entire.get(i));
                             i++;
                             System.out.println("entireList "+entire.get(i));
                             resort.add(entire.get(i));
                        DataSourceObject city = ds.getClasses().getChildByName("Country");
                        DataSourceObject resorts = ds.getClasses().getChildAt(1);
                        dp.runQuery();
                        ReportContainer report = doc.createReport("Resort");
                        PageHeaderFooter header = report.getPageHeader();
                        FreeCell headerCell = header.createFreeCell("Resort Report");
                        PageHeaderFooter footer = report.getPageFooter();
                        FreeCell footerCell = footer.createFreeCell("Report Ends");
                        ReportBody body =  report.createReportBody();
                        for(int k=0;k<resort.size();k++){
                        FreeCell res=body.createFreeCell(resort.get(k));
                        res.getAttachTo();
                        res.setHeight(15d);
                        res.setWidth(30d);
                        Color c = new Color(255,255,255);
                        Color c1 = new Color(255,0,0);
                        FontImpl fnt = (FontImpl)res.getFont();
                        fnt.getDecoration().setTextColor(c1);
                        res.setFont(fnt);
                        //res.deleteAttachment();
                        //res.setAttachTo(body,VAnchorType.BOTTOM,HAnchorType.NONE);
                        doc.applyFormat();
                        doc.refresh();
                        final String l_docToken = doc.getStorageToken();
                        final DocumentInstance l_docToSave = reportEngine.getDocumentFromStorageToken(l_docToken);
                        doc.saveAs("mor31",835,null,null);
                        doc.closeDocument();
                        str = "SELECT SI_ID, SI_NAME, SI_PARENTID FROM CI_INFOOBJECTS WHERE (SI_KIND = '"+CeKind.WEBI+"' OR SI_KIND='FullClient') " +
                        "AND SI_INSTANCE = 'false' AND SI_NAME='mor31' ORDER BY SI_NAME ASC ";
                        //String str = "SELECT SI_ID, SI_NAME, SI_PARENTID FROM CI_INFOOBJECTS ORDER BY SI_NAME ASC ";
                        objInfoObjectsWIDs = (IInfoObjects) iStore.query(str);
                        System.out.println(objInfoObjectsWIDs.size());
                        objInfoObjectWID = (IInfoObject) objInfoObjectsWIDs.get(0);
                        DocumentInstance doc1 = reportEngine.openDocument(objInfoObjectWID.getID());
                        String token = doc1.getStorageToken();
                        DocumentInstance doc2 = reportEngine.getDocumentFromStorageToken(token);
                        doc2.saveAs("123123", 835, null, null);
                   //     doc.refresh();
                        //doc.save();
                   enterpriseSession.logoff();
              catch(Exception e)
                   e.printStackTrace();

    duplicate post:
    Sample report using JAVA SDK

  • How to print a report directly on to a printer on the client machine

    Hi,
    Could anyone let me know how to print a report directly on to the clients default printer in oracle forms 10g with OAS?.
    Regards,
    Prasad.

    Hello,
    <p>You can use this Java Bean</p>
    Francois

Maybe you are looking for

  • Formula's at Universe level

    Hi All, I want to create objects at universe level for the following : Ver:- BOXIR2, Database is Oracle.      Monthly averages for the last 12 months u2013 Balances for last 12 months are shown in the report. These are previous 12 months, starting f

  • F110 - How to group two payments for a single costumer

    Hello experts, I'm having an issue here. The user has 14 invoices, 11 of them are DR document type, 3 are DM doc. type. All of the 14 invoices have payment method 4. When we create the proposal for this costumer, two payments are created, one for all

  • How do i know that my Apple TV is a 2nd generation or 3rd generation?

    how do i know that my Apple TV is a 2nd generation or 3rd generation?

  • ORA-03113: end-of-file  in startup

    Hi, on 11g R2 on Win 2008 I try to create a DB but I receive end of file error : C:\Users\oracle>sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Fri Mar 2 10:07:45 2012 Copyright (c) 1982, 2011, Oracle.  All rights reserved. Connected

  • No ipad shown in airplay

    When I select airplay,no ipad option shows,only keyboard ,Apple tv, a and mirroring?