Print java api

Can anyone give me an example of how to write simple text to a printer on an NT platform.
I have tried input and outputstreams, outputstreams and now i try strings. I always get invalid flavor but when i check the supported flavors the flavor is supported.
This is the latest sourcecode
import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import java.io.*;
     Author : Kevin Simons
     Version : 1.1
public class DocumentPrinter {
     PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
     String msg="";
     Method that sets the message
     @param <code>String</code> msg
     public void setMsg(String msg) {
          this.msg = msg;
     Method that gets the message
     @return <code>String</code> msg
     public String getMsg() {
          return msg;
public PrintService getPrinter() {
          aset.add(MediaSizeName.ISO_A4);
          aset.add(new Copies(1));
          PrintService service = PrintServiceLookup.lookupDefaultPrintService();
          return service;
     public void createNCNPrintJob(PrintService service) {
     msg="";
          try {
          String text = "Testing the default printer\t\tTest";
               DocFlavor flavor = DocFlavor.STRING.TEXT_PLAIN;
               DocPrintJob job = service.createPrintJob();
               Doc NCN = new SimpleDoc(this, flavor, null);
               job.print(NCN, aset);
          catch (Exception e) {
               msg += e;                    
What I want is that I can send the text from the memory straight to the printer. Without the use of a temp file.
Thx.

I have changed the flavor to AUTOSENSE but it doesn't print. The strange this is that the paper comes out when somebody else uses that printer to print a document. Did I forget something to do?
sourcecode:
import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import java.io.*;
     Author : Kevin Simons
     Version : 1.1
public class DocumentPrinter {
     PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
     DocAttributeSet dset = new HashDocAttributeSet();
     DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
     String msg="";
     Method that sets the message
     @param <code>String</code> msg
     public void setMsg(String msg) {
          this.msg = msg;
     Method that gets the message
     @return <code>String</code> msg
     public String getMsg() {
          return msg;
public PrintService getPrinter() {
          PrintService service = PrintServiceLookup.lookupDefaultPrintService();
          return service;
     public void createNCNPrintJob(PrintService service) {
     msg="";
          try {
               dset.add(MediaSizeName.ISO_A4);
               dset.add(new Copies(1));
               FileOutputStream fos = new FileOutputStream("temp.txt");
               DataOutputStream dos = new DataOutputStream(fos);
               dos.writeBytes("Testing the default printer\t\tTest");
               FileInputStream text = new FileInputStream("temp.txt");
               DocPrintJob job = service.createPrintJob();
               Doc NCN = new SimpleDoc(text, flavor, dset);
               job.print(NCN, aset);
          catch (Exception e) {
               msg += e;                    
}

Similar Messages

  • Print different format files using java API

    Hi All,
    I need to print documents ( MS-DOC, PDF, Plain Text ) using Java API. I do not need window for configuring number of pages to be print etc etc.. Whatever the file specified should be printed.
    I checked with printerJob.print(); from java API and able to print simple text. I need to approach same for files of different formats.
    Any other API's ? How do i approach?
    Any help will be appreciated.
    Thanks,
    Praveen

    Which of the LiveCycle products are you looking at? (there is no Java API to Acrobat)

  • Any java api for Touch Chip TCKDU02 finger print reader

    Hi
    I am new to this, and i want to know any java api
    that supports Touch Chip finger print reader
    a default that came with TouchChip TCKDU02 sdk does not support
    java,
    help me
    regards
    B.Rameshwari

    that supports Touch Chip finger print reader
    a default that came with TouchChip TCKDU02 sdk does
    not support
    java,
    help me sounds like you're not going to be able to interface with it
    if it has an interface in another language, you might be able to write a wrapper interface using JNI

  • Java Print Service API in Java Stored Procedure (Linux)

    Hi
    We are running an Oracle 10g database on Linux and I am in the proces of developing a java stored procedure which should utilize the Java Print Service API.
    I have made a simple stored procedure to list all available printers and the DocFlavors they support (se the code below).
    My problem is that no printers are listed. I have made a standalone java app. with the same code and executed it directly on the OS level of the Linux box through the Sun JDK 1.4.2 and here I get two printers.
    Is there any specific configuration I need to do to make it work?
    I am wondering if I need to grant specific authorisations through dbms_java for it to work...?
    Any help is greatlyh appreciated.
    ************************************** CODE BEGIN *************************************
    import javax.print.DocFlavor;
    import javax.print.PrintService;
    import javax.print.PrintServiceLookup;
    import javax.print.attribute.HashPrintRequestAttributeSet;
    import javax.print.attribute.PrintRequestAttributeSet;
    public class TestPrintService {
    public TestPrintService() {
    public static void listPrinters() {
    // Get all available printers and their supported DocFlavors
    PrintService[] pservices =
    PrintServiceLookup.lookupPrintServices(null, null);
    System.out.println("Printer services: " + pservices.length);
    for (int i = 0; i < pservices.length; i++) {
    PrintService pservice = pservices;
    System.err.println("Printer: " + pservice);
    DocFlavor[] docFlavors = pservice.getSupportedDocFlavors();
    for (int j = 0; j < docFlavors.length; j++) {
    DocFlavor docFlavor = docFlavors[j];
    System.err.println("DocFlavor " + docFlavor.toString());
    System.err.println();
    ************************************** CODE END *************************************
    Cheers,
    Jacob Vennervald

    Found this on Oracle support:
    Cannot List Available Printers From The Database Using A Java Stored Procedure [ID 372694.1]
    Applies to:
    Oracle Server - Enterprise Edition - Version: 10.1.0.4.0
    This problem can occur on any platform.
    Symptoms
    Able to list available printers on a machine when running Java code outside the Database.
    When running the same Java code inside the Database as a Java Stored Procedure, no printers are found.
    Cause
    Due to security restrictions, this is expected results.
    The Java Docs state:
    "Services which are registered by registerService(PrintService) will not be included in lookup
    results if a security manager is installed and its CheckPrintJobAccess() method denies access."
    Also from the documentation it states:
    "A PrintServiceLookup implementor is recommended to check for the SecurityManager.checkPrintJobAccess() to deny access to untrusted code. Following this recommended policy means that untrusted code may not be able to locate any print services. Downloaded applets are the most common example of untrusted code."
    Using the checkPrintJobAccess(); call, it does produce a Security Exception when run inside the Database but not when run outside. The exception can be viewed within the log file found in the UDUMP directory.
    Solution
    Run the following code to confirm obtaining available __printers can not be done...__
    This is the code to create the Java Stored Procedure
    CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "ListPrinters" AS
    import javax.print.*;
    public class ListPrinters {
    public static String AvailablePrinters(){
    String strList;
    PrintService[] pservices =PrintServiceLookup.lookupPrintServices(null,null);
    if (pservices.length > 0 )
    strList = pservices[0].getName();
    else
    strList = "No printers found";
    return strList;
    public static String listprinters() throws Exception {
    String listofprinters;
    try {
    SecurityManager sm = System.getSecurityManager();
    if (sm != null) sm.checkPrintJobAccess();
    catch (SecurityException ex) {
    System.err.println("Sorry. Printing is not allowed.");
    listofprinters = AvailablePrinters();
    return listofprinters;
    This is the PL/SQL Wrapper
    CREATE OR REPLACE FUNCTION Get_Printer_Test RETURN VARCHAR2 IS
    LANGUAGE JAVA
    NAME 'ListPrinters.listprinters() return String';
    This executes the code
    SQL> SELECT Get_Printer_Test FROM DUAL;
    GET_PRINTER_TEST
    No printers found
    This is the output found in the trace file in the UDUMP directory
    *** SESSION ID:(144.28) 2006-07-08 09:02:25.518
    Sorry. Printing is not allowed.

  • Turn off banner within Java Print Service API

    I have web services running on JBoss 4.0.5, which is running on IBM AIX 5.
    The issue I have is anytime I try to print something through Java Print Service within web services, there is always a banner, even though banner property is set to "never" on the print queue with AIX smitty. The bad news is that property value can be overwritten by applications, or by command line options with lp or lpr commands.
    Couldn't find any way or any attribute avaiable in Print Service API to diable banner printing. Currently only default attributes are used in document printing.
    Any help would be greatly appriciated!

    fermar84 wrote:
    Thanks for answering,
    Yes i totally agree with you. There is a per device basis. However you could think (and here i am letting my imagination fly) about categorizing devices, lets say all the digital cameras. Although it would still be per-device basis, some would have common commands like turn on, or turn off. Don't you think so?
    Now lets take a simple example, can a Java program turn off the computer where its running?
    Thanks in advance,
    FernandoDo I think all digital cameras expose an "on/off" API? No, I don't. Some may, they all may, but that's in no way a Java issue.
    Can a Java program turn off a PC? No. It can call native code to do so, but then it isn't Java doing the work. All of what you're talking about is very much platform-specific, and that's where Java is generally it's weakest

  • How to retrieve the data from MDM hierarchy table using MDM Java API

    Hi,
    I had a hierarchy table in MDM. This table had some column say x. I want to retrieve the values of this x column and need to show them in a drop down using MDM Java API.
    Can anyone help me to solve this?
    Regards
    Vallabhaneni

    Hi,
    Here is your code...
    TableId Hier_TId = repository_schema.getTableId(<hierarchy table id>);
    java.util.List list = new ArrayList();
    ResultDefinition Supporting_result_dfn = null;
    FieldProperties[] Hier_Field_props =rep_schema.getTableSchema(Hier_TId).getFields();
    LookupFieldProperties lookup_field = null;
    TableSchema lookupTableSchema = null;
    FieldId[] lookupFieldIDs = null;
    for (int i = 0, j = Hier_Field_props.length; i < j; i++) {
    if (Hier_Field_props<i>.isLookup()) {     
                                  lookup_field = (LookupFieldProperties) Hier_Field_props<i>;
         lookupTableSchema =repository_schema.getTableSchema(lookup_field.getLookupTableId());
                                  lookupFieldIDs = lookupTableSchema.getFieldIds();
         Supporting_result_dfn = new ResultDefinition(lookup_field.getLookupTableId());
         Supporting_result_dfn.setSelectFields(lookupFieldIDs);
         list.add(Supporting_result_dfn);
    com.sap.mdm.search.Search hier_search =new com.sap.mdm.search.Search(Hier_TId);
    ResultDefinition Hier_Resultdfn =     new ResultDefinition(Hier_TId);
    Hier_Resultdfn.setSelectFields(rep_schema.getTableSchema(Hier_TId).getDisplayFieldIds());
    ResultDefinition[] supportingResultDefinitions =
    (ResultDefinition[])list.toArray(new ResultDefinition [ list.size() ]);
    RetrieveLimitedHierTreeCommand retrieve_Hier_tree_cmd =
    new RetrieveLimitedHierTreeCommand(conn_acc);
    retrieve_Hier_tree_cmd.setResultDefinition(Hier_Resultdfn);
    retrieve_Hier_tree_cmd.setSession(Auth_User_session_cmd.getSession());
    retrieve_Hier_tree_cmd.setSearch(hier_search);
    retrieve_Hier_tree_cmd.setSupportingResultDefinitions(supportingResultDefinitions);
    try {
         retrieve_Hier_tree_cmd.execute();
    } catch (CommandException e5) {
              // TODO Auto-generated catch block
              e5.printStackTrace();
    HierNode Hier_Node = retrieve_Hier_tree_cmd.getTree();
    print(Hier_Node,1);
    //method print()
    static private void print(HierNode node, int level) {
    if (!node.isRoot()) {
         for (int i = 0, j = level; i < j; i++) {
              System.out.print("\t");
         System.out.println(node.getDisplayValue());
    HierNode[] children = node.getChildren();
    if (children != null) {
              level++;
    for (int i = 0, j = children.length; i < j; i++) {
    print(children<i>, level);
    //end method print()
    Best regards,
    Arun prabhu S
    Edited by: Arun Prabhu Sivakumar on Jul 7, 2008 12:19 PM

  • Image upload using Java API

    Hi all,
    I am trying to upload an image into MDM repository using the Java MDM4J API. I have referred to the earlier posting in this forum for the same problem I am not able to add images into Catalog thru java API. However I am working on SP3 version of MDM software and looks like the Images table structure changed a bit and the code in the earlier posting isn't working.
    I am getting an error code <b>-5586944</b> and the message that gets printed on the console is
    <i>a2i.core.StringException: AddRecord error
         at a2i.common.CatalogData.AddRecord(Unknown Source)
         at a2i.common.CatalogData.AddRecord(Unknown Source)</i>
    Here is the code that I am using to upload the image
    String filePath = "C:\temp\Sunset.jpg";
    File file = new File(filePath);
    byte[] bytes = new byte[(int) file.length()];
    try{
         //read byte from file, and set the large data
         FileInputStream inputStream = new FileInputStream(file);
         inputStream.read(bytes);
         mdmFields.Add(new A2iField("Data ID", new Value(bytes)));
    }catch(IOException ioex){
         ioex.printStackTrace();
    int dataGroupId = 0;//Hardcoded it to 0. There is one group already in the repository
    mdmFields.Add(new A2iField("Data Group ID", new Value(dataGroupId)));
    //adding the name
    mdmFields.Add(new A2iField("Name", new Value(file.getName())));
    mdmFields.Add(new A2iField("Original Name", new Value(file.getName())));
    //adding OrigLocationId
    int origLocationId =0;
    try{
         origLocationId = catalog.AddDataLocation(filePath, 0, DataLocationType.ComputerLocation);
         System.out.println("Location id generated is " +origLocationId);
    }catch(StringException ex){
         System.out.println("Error while generating the location id");
         ex.printStackTrace();
    mdmFields.Add(new A2iField("Original Location ID", new Value(origLocationId)));
    try {
         //adding the image to the "Images" table
         int newImageId = catalog.AddRecord("Images", mdmFields, 0, 0);
    } catch (StringException e) {
         // TODO Auto-generated catch block
         System.out.println("Error while adding the image record " + e.GetErrorCode() + "  " + e.GetRCMessage(e.GetErrorCode()));
         e.printStackTrace();
    I am not able to figure out what is causing the problem. Any ideas would be greatly helpful. Thanks in advance.
    Suman.

    Hi Mausam,
    Thanks for your help. However, the problem doesn't seem to be going.
    I printed the records in the <b>Data Groups</b> table using a program to find the record ids that are already existing. My Data Groups table has 3 records. Here are the values.
    ID :1 Value :MyGroup
    ID :2 Value :Group2
    ID :3 Value :Group3
    I tried passing all the above 3 values (1,2,3) as input to the <b>Data Group ID</b> field. However, this time, I am getting a different error code this time
    Error while adding the image record -2147483647  No message for RC (0x80000001)
    a2i.core.StringException: AddRecord error
         at a2i.common.CatalogData.AddRecord(Unknown Source)
         at a2i.common.CatalogData.AddRecord(Unknown Source)
         at images.MyImageUpload.uploadImage(MyImageUpload.java:82)
    The error code <b>2147483647</b>  from the javadocs says <b>RC_BADPARAM</b>. Not able to figure out what exactly is causing the problem with Data Group ID.
    Any ideas or pointers to solve this would be greatly helpful. Thanks in advance.
    Regards
    Suman
    > Hi Suman,
    >
    > If you look at the description for the error code,
    > you get RC_CM_DATAGROUPNOTFOUND.
    >
    > Try giving some other value ( 1 worked for me ) in
    > the Data Group or try following the code given for
    > the Data Group in other forum post that you have
    > mentioned.
    >
    > Regards,
    > Mausam

  • Java API for running entire ".sql" files on a remote DB ( mySQL or Oracle)?

    Hi,
    Would anyone happen to know if there's a java API for executing entire ".sql" files (containing several different SQL commands), on a remote database server ?
    It's enough if the API works with MySQL and/or Oracle.
    Just to demonstrate what i'm looking for:
    Suppose you've created sql file "c:/test.sql" with several script lines:
    -- test.sql:
    insert into TABLE1 values(3,3);
    insert into TABLE1 values(5,5);
    create table TABLE2 (name VARCHER) ENGINE innoDB; -- MYSQL specific
    Then the java API should look something like:
    // Dummy java code:
    String driver="com.mysql.jdbc.Driver";
    String url= "jdbc:mysql://localhost:3306/myDb";
    SomeAPI.executeScriptFile( "c:/test.sql", driver, url);
    Thanks.

    No such a API, but it's easy to parse all sqls in a file, then run those command:
    For instance:
    import java.sql.*;
    import java.util.Properties;
    /* A demo show how to load some sql statements. */
    public class testSQL {
    private final static Object[] getSQLStatements(java.util.Vector v) {
    Object[] statements = new Object[v.size()];
    Object temp;
    for (int i = 0; i < v.size(); i++) {
    temp = v.elementAt(i);
    if (temp instanceof java.util.Vector)
    statements[i] = getSQLStatements( (java.util.Vector) temp);
    else
    statements[i] = temp;
    return statements;
    public final static Object[] getSQLStatements(String sqlFile) throws java.
    io.IOException {
    java.util.Vector v = new java.util.Vector(1000);
    try {
    java.io.BufferedReader br = new java.io.BufferedReader(new java.io.
    FileReader(sqlFile));
    java.util.Vector batchs = new java.util.Vector(10);
    String temp;
    while ( (temp = br.readLine()) != null) {
    temp = temp.trim();
    if (temp.length() == 0)
    continue;
    switch (temp.charAt(0)) {
    case '*':
    case '"':
    case '\'':
    // System.out.println(temp);
    break; //Ignore any line which begin with the above character
    case '#': //Used to begin a new sql statement
    if (batchs.size() > 0) {
    v.addElement(getSQLStatements(batchs));
    batchs.removeAllElements();
    break;
    case 'S':
    case 's':
    case '?':
    if (batchs.size() > 0) {
    v.addElement(getSQLStatements(batchs));
    batchs.removeAllElements();
    v.addElement(temp);
    break;
    case '!': //Use it to get a large number of simple update statements
    if (batchs.size() > 0) {
    v.addElement(getSQLStatements(batchs));
    batchs.removeAllElements();
    String part1 = temp.substring(1);
    String part2 = br.readLine();
    for (int i = -2890; i < 1388; i += 39)
    batchs.addElement(part1 + i + part2);
    for (int i = 1890; i < 2388; i += 53) {
    batchs.addElement(part1 + i + part2);
    batchs.addElement(part1 + i + part2);
    for (int i = 4320; i > 4268; i--) {
    batchs.addElement(part1 + i + part2);
    batchs.addElement(part1 + i + part2);
    for (int i = 9389; i > 7388; i -= 83)
    batchs.addElement(part1 + i + part2);
    v.addElement(getSQLStatements(batchs));
    batchs.removeAllElements();
    break;
    default:
    batchs.addElement(temp);
    break;
    if (batchs.size() > 0) {
    v.addElement(getSQLStatements(batchs));
    batchs.removeAllElements();
    br.close();
    br = null;
    catch (java.io.FileNotFoundException fnfe) {
    v.addElement(sqlFile); //sqlFile is a sql command, not a file Name
    Object[] statements = new Object[v.size()];
    for (int i = 0; i < v.size(); i++)
    statements[i] = v.elementAt(i);
    return statements;
    public static void main(String argv[]) {
    try {
    String url;
    Object[] statements;
    switch (argv.length) {
    case 0: //Use it for the simplest test
    case 1:
    url = "jdbc:dbf:/.";
    if (argv.length == 0) {
    statements = new String[1];
    statements[0] = "select * from test";
    else
    statements = argv;
    break;
    case 2:
    url = argv[0];
    statements = getSQLStatements(argv[1]);
    break;
    default:
    throw new Exception(
    "Syntax Error: java testSQL url sqlfile");
    Class.forName("com.hxtt.sql.dbf.DBFDriver").newInstance();
    //Please see Connecting to the Database section of Chapter 2. Installation in Development Document
    Properties properties = new Properties();
    Connection con = DriverManager.getConnection(url, properties);
    Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
    //Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    // stmt.setMaxRows(0);
    stmt.setFetchSize(10);
    final boolean serializeFlag = false;//A test switch to serialize/deserialize the resultSet
    ResultSet rs;
    for (int i = 0; i < statements.length; i++) {
    if (statements[i] instanceof java.lang.String) {
    String temp = (java.lang.String) statements;
    switch (temp.charAt(0)) {
    case 'S':
    case 's':
    case '?':
    System.out.println(temp);
    rs = stmt.executeQuery(temp);
    if (serializeFlag) {
    // serialize the resultSet
    try {
    java.io.FileOutputStream fileOutputStream = new
    java.io.FileOutputStream("testrs.tmp");
    java.io.ObjectOutputStream
    objectOutputStream = new java.io.
    ObjectOutputStream(fileOutputStream);
    objectOutputStream.writeObject(rs);
    objectOutputStream.flush();
    objectOutputStream.close();
    fileOutputStream.close();
    catch (Exception e) {
    System.out.println(e);
    e.printStackTrace();
    System.exit(1);
    rs.close(); //Let the CONCUR_UPDATABLE resultSet release its open files at once.
    rs = null;
    // deserialize the resultSet
    try {
    java.io.FileInputStream fileInputStream = new
    java.io.FileInputStream("testrs.tmp");
    java.io.ObjectInputStream objectInputStream = new
    java.io.ObjectInputStream(
    fileInputStream);
    rs = (ResultSet) objectInputStream.
    readObject();
    objectInputStream.close();
    fileInputStream.close();
    catch (Exception e) {
    System.out.println(e);
    e.printStackTrace();
    System.exit(1);
    ResultSetMetaData resultSetMetaData = rs.
    getMetaData();
    int iNumCols = resultSetMetaData.getColumnCount();
    for (int j = 1; j <= iNumCols; j++) {
    // System.out.println(resultSetMetaData.getColumnName(j));
    /* System.out.println(resultSetMetaData.getColumnType(j));
    System.out.println(resultSetMetaData.getColumnDisplaySize(j));
    System.out.println(resultSetMetaData.getPrecision(j));
    System.out.println(resultSetMetaData.getScale(j));
    System.out.println(resultSetMetaData.
    getColumnLabel(j)
    + " " +
    resultSetMetaData.getColumnTypeName(j));
    Object colval;
    rs.beforeFirst();
    long ncount = 0;
    while (rs.next()) {
    // System.out.print(rs.rowDeleted()+" ");
    ncount++;
    for (int j = 1; j <= iNumCols; j++) {
    colval = rs.getObject(j);
    System.out.print(colval + " ");
    System.out.println();
    rs.close(); //Let the resultSet release its open tables at once.
    rs = null;
    System.out.println(
    "The total row number of resultset: " + ncount);
    System.out.println();
    break;
    default:
    int updateCount = stmt.executeUpdate(temp);
    System.out.println(temp + " : " + updateCount);
    System.out.println();
    else if (statements[i] instanceof java.lang.Object[]) {
    int[] updateCounts;
    Object[] temp = (java.lang.Object[]) statements[i];
    try {
    for (int j = 0; j < temp.length; j++){
    System.out.println( temp[j]);
    stmt.addBatch( (java.lang.String) temp[j]);
    updateCounts = stmt.executeBatch();
    for (int j = 0; j < temp.length; j++)
    System.out.println((j+1)+":"+temp[j]);
    for (int j = 0; j < updateCounts.length; j++)
    System.out.println((j+1)+":" +updateCounts[j]);
    catch (java.sql.BatchUpdateException e) {
    updateCounts = e.getUpdateCounts();
    for (int j = 0; j < updateCounts.length; j++)
    System.out.println((j+1)+":"+updateCounts[j]);
    java.sql.SQLException sqle = e;
    do {
    System.out.println(sqle.getMessage());
    System.out.println("Error Code:" +
    sqle.getErrorCode());
    System.out.println("SQL State:" + sqle.getSQLState());
    sqle.printStackTrace();
    while ( (sqle = sqle.getNextException()) != null);
    catch (java.sql.SQLException sqle) {
    do {
    System.out.println(sqle.getMessage());
    System.out.println("Error Code:" +
    sqle.getErrorCode());
    System.out.println("SQL State:" + sqle.getSQLState());
    sqle.printStackTrace();
    while ( (sqle = sqle.getNextException()) != null);
    stmt.clearBatch();
    System.out.println();
    stmt.close();
    con.close();
    catch (SQLException sqle) {
    do {
    System.out.println(sqle.getMessage());
    System.out.println("Error Code:" + sqle.getErrorCode());
    System.out.println("SQL State:" + sqle.getSQLState());
    sqle.printStackTrace();
    while ( (sqle = sqle.getNextException()) != null);
    catch (Exception e) {
    System.out.println(e.getMessage());
    e.printStackTrace();

  • Calling Java API from ABAP using JCo (Part 2)

    Hello,
    This is an additional question to thread Calling Java API from ABAP using JCo
    Has anyone managed to get the input parameter value
    input.getString("REQUTEXT")
    that is being passed from ABAP?
    If yes, what kind of setting you need to do? Because when I execute, it has no value.
    Thus, the below ECHOTEXT parameter returns blank value:
    output.setValue(input.getString("REQUTEXT"),"ECHOTEXT");
    When I debug by printing the below line, the input XML is indeed without value:
    System.out.println(input.toXML());
    Anybody knows how to pass input variable from ABAP to JAVA using JCo?
    rgs,
    hiroshi

    Hallo Hiroshi,
    as far as I can see, you are doing it the right way. The problem might be that the ABAP program does not fill in this parameter because something went wrong in the SAP System.
    Have you tried setting a breakpoint (an HTTP session - remote breakpoint) and tried checking step by step if the value is being processed and put into the REQUTEXT field?
    Bye,
    Sameer

  • Merging any type of documents into existing PDF using Adobe Java APIs

    We know that latest Adobe Acrobat tool can convert any type
    of documents into PDF. We need the same functionality to be built
    in into our java code by using Adobe's Java APIs. I am sure that
    Adobe has some readily available Java APIs to handle such
    requirements.
    FYI: We don't want Adobe's tool to handle this and we want
    Adobe's available Java API to handle this merging functionality
    programatically. We are ready to pay for it.
    Thanks,
    Ashok Hottin

    I'm not 100 percent sure but I'm afraid the way you want to use this Web-service is far from what SAP/Adobe thought it should be used. Take a look at SAP Library [here |http://help.sap.com/saphelp_nw70/helpdata/EN/f2/21021b911f4c0cae11459a4ce0bc62/frameset.htm] and [here|http://help.sap.com/saphelp_nw70/helpdata/EN/8d/1cbf69fff9454ca9c5de84182e4bfb/frameset.htm]. This solutions relies on previously created PDF Form Template - that means, e.g. tables are not rendered as if being printed with any number of columns and rows, but components of data tables coming from SAP are injected in rows/columns of the form where they were planned to be during template design.
    Additionally I think your idea of such usage of Adobe Document Services is not covered with software license you have as SAP customer/partner. Once again, I'm not 100% sure about it.
    Still, my opinion is that you won't succeed in it anyway due to the logic of the solution.
    Special PDF manipulation components will do the job better and easier, and nearly of them have demo/trial versions. So, if you ask me, don't waste your time and check special components.

  • Calling Java API from HBR

    Hi guys,
    I’m trying to use Java API to update ASO cube from Planning forms. So there are several steps:
    1.     Planning form passes variables to HBR
    2.     HBR passes variables and calls Java CDF
    3.     CDF performs some operations and uses JAPI classes to update ASO cube.
    When I run CDF as runtime command or from JDeveloper/Netbeans if works fine. When I run CDF from HBR but do not use JAVA API methods it works too. But when I call CDF from HBR AND use JAPI methods it doesn’t execute JAPI methods. I do not receive any error; methods that use JAPI methods are simply not executed.
    Any ideas why it happens?
    Thanks,
    Dmitry

    Hi,
    Have you tried running it from an essbase calc script first and run the essbase server in the foreground (not as a service if you are on windows) then if you have any System.out.prints on errors or in your code they should be outputted to the window.
    It usually easier to get it running from a calc script first because you sometimes get better messaging than business rules.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Is there any Java API to interact/integrate with Adobe LiveCycle Policy Server

    Hi,
    We are already using Adobe LiveCycle Policy server & has manual process in place to send documents to clients.
    Going forward we want to automate this document generation process. We are using Java, JEE in our application.
    We are planning to use below steps to automate this process.
    1) Administrator will create a Template in Adobe Policy Server and will map users intended to receive mails with this template
    2) Our application will interact with Adobe Policy Server and use Template ID to generate PDF document and send mails to client.
    Can anyone please let me know if there is any Java API which can be used to perform the above second step.
    Thanks a lot for your help.
    Best Regards - Roy

    Hi Steven,
    What you refer to is PDF Generator version 7.x Postscript edition.
    In version 7 of the product there were 3 editions:
    1. PDF Generator Professional
    Create PDF files from a wide range of source files:
    Print (PS, EPS, PRN)
    Image (JPG, GIF, BMP, TIFF, PSD)
    Standard office formats (DOC, XLS, PPT, WPD, MPP)
    Text (TXT, RTF)
    Web (HTML)
    Design files (DWG, VSD)
    Generate all types of Adobe PDF file formats:
    PDF 1.3, 1.4, 1.5, 1.6
    PDF/X-1a and PDF/X-3 for prepress document exchange
    PDF/A for archiving with easy search and retrieval
    Searchable PDF files from images
    Convert PDF files to:
    HTML documents
    Text (TXT, RTF, accessible)
    Images (TIFF, PNG, JPEG)
    Print (PS, EPS)
    2. PDF Generator Elements
    Create PDF files from a wide range of source files:
    Print (PS, EPS, PRN)
    Image (JPG, GIF, BMP, TIFF, PSD)
    Standard office formats (DOC, XLS, PPT, WPD, MPP)
    Text (TXT, RTF)
    Web (HTML)
    Design files (DWG, VSD)
    Generate all types of Adobe PDF file formats:
    PDF 1.3, 1.4, 1.5, 1.6
    PDF/X-1a and PDF/X-3 for prepress document exchange
    PDF/A for archiving with easy search and retrieval
    Convert PDF files to:
    HTML documents
    Text (TXT, RTF, accessible)
    Print (PS, EPS)
    3. PDF Generator Postscript
    Create PDF files from a wide range of source files:
    Print (PS, EPS, PRN)
    Generate all types of Adobe PDF file formats:
    PDF 1.3, 1.4, 1.5, 1.6
    PDF/X-1a and PDF/X-3 for prepress document exchange
    PDF/A for archiving with easy search and retrieval
    So basically what you have is the very limited edition, doing exactly what you said. For more functionality you should opt for one of the other editions (that for version 7.x)
    Today's version is the newer LC PDF Generator ES. You can look for its specifications at http://www.adobe.com/products/livecycle/pdfgenerator/
    Thanks

  • Print Service API Errors

    Hi,
    I am trying to use the new print services API's, I have a code example that will complie but failes at runtime.
    I am using Wepshere develoment studio client for the Iseries (V4.00).
    Can any one help me get this example running ?
    Error Message >>
    java.lang.NoClassDefFoundError: javax/print/PrintException
    Exception in thread "main"
    java.lang.NoClassDefFoundError: javax/print/DocFlavor
    Exception in thread "main"
    Example Code >>
    import java.lang.*;
    import java.io.*;
    import javax.print.*;
    import javax.print.attribute.*;
    import javax.print.attribute.standard.*;
    import javax.print.event.*;
    public class Print01
    static FileInputStream psStream;
    public static void main(String[] args)
    try
    psStream = new FileInputStream("file.ps");
    catch (FileNotFoundException ffne)
    System.out.println(ffne.toString());
    if (psStream == null)
    return;
    DocFlavor psInFormat = DocFlavor.INPUT_STREAM.POSTSCRIPT;
    Doc myDoc = new SimpleDoc(psStream, psInFormat, null);
    PrintRequestAttributeSet aset =
    new HashPrintRequestAttributeSet();
    aset.add(new Copies(5));
    // aset.add(MediaSize.A4);
    aset.add(Sides.DUPLEX);
    PrintService[] services =
    PrintServiceLookup.lookupPrintServices(psInFormat, aset);
    if (services.length > 0)
    DocPrintJob job = services[0].createPrintJob();
    try
    job.print(myDoc, aset);
    catch (PrintException pe)
    System.out.println(pe.toString());
    Thanks

    Looks like a runtime CLASSPATH problem...
    Try to include this code in your main, and check that the version is the same as the one expected:
       System.out.println("JAVA VERSION  IS: " + System.getProperty("java.version"));

  • Import metadata using owb java api

    Hi,
    We are working on a tool to atomize some OWB projects and therefore we chosen to use the OWB java api. Now we wanted to import oracle tables metadata into our new created project,
    the problem is that is not very clear how to do it. We tryed using classes like ActionPlanCmdExecuter or ImportActionPlanCmdExecuter but with no success.
    Is there anybody who did this before and can point me in the right direction?
    Regards and have a nice holiday,
    Cipi

    Hi
    There are a couple of options;
    1. You can just write the code as an OMB script, since the OMB runs in a JACL container you can intermix OMB and java.
    See the java:: commands which you can use to invoke java from within tcl;
    http://tcljava.sourceforge.net/docs/TclJava/contents.html
    2. There is an OMBEngine class that lets you execute OMB commands from within java that works like the following;
    import oracle.owb.scripting.OMBEngine;
    import tcl.lang.TclObject;
    import tcl.lang.TclList;
    * This is an example showing some basic use of <code>OMBEngine</code> class.
    * It executes several OMBPlus commands through <code>OMBEngine</code>. For
    * most commands it just display the result. For one OMBLIST command, it also
    * loops through the elements in the return list, and displays them one by one.
    public class OMBEngineExample1
    public static void main(String args[]) {
    try {
    OMBEngine engine = new OMBEngine();
    String rslt = engine.executeStr("OMBCONNECT IM_DESIGNER/xxxx@localhost:1521:ora112");
    System.out.println("OMBCONNECT result: " + rslt);
    rslt = engine.executeStr("OMBLIST PROJECTS");
    System.out.println("OMBLIST PROJECTS result: " + rslt);
    rslt = engine.executeStr("OMBCC 'MY_PROJECT'");
    System.out.println("OMBCC result: " + rslt);
    TclObject objRslt = engine.execute("OMBLIST ORACLE_MODULES");
    System.out.println("OMBLIST ORACLE_MODULES result as string: " + objRslt);
    // now get each object from the list and print it individually...
    System.out.println("OMBLIST ORACLE_MODULES result as list of TclObject:");
    for (int i = 0; i < TclList.getLength(engine.getInterp(),objRslt); i++) {
    TclObject to = TclList.index(engine.getInterp(), objRslt, i);
    System.out.println(" Object " + i + ": " + to);
    rslt = engine.executeStr("OMBDISCONNECT");
    System.out.println("OMBDISCONNECT result: " + rslt);
    System.exit(0);
    } catch (Exception e) {
    e.printStackTrace();
    System.exit(1);
    Happy New Year to you too! Excuse my late reply!
    Cheers
    David

  • Decoder Ring for Java API?

    Is there any page or resource that can help me understand the conventions used in the Java API? I can often find the methods or classes that I need there (or think I find them anyway) but I don't understand how to know from these API entries what I need to import or what the syntax is for these methods and classes. I'm pretty sure all that information is there if I understood the API's structure better. A reference that explained some of the basics of this document to those of us from non-programming backgrounds would be tremendously useful. Does anyone know of such a reference, either online or printed?
    Another useful resource would be some sort of glossary for programming terms. For instance, if I look up Serializable, the API informs me that:
    "Serializability of a class is enabled by the class implementing the java.io.Serializable interface. Classes that do not implement this interface will not have any of their state serialized or deserialized. All subtypes of a serializable class are themselves serializable. The serialization interface has no methods or fields and serves only to identify the semantics of being serializable. "
    This probably makes sense to someone who knows what Serialization means... I can do a search and eventually find out what the term means after wading through hundreds of search results but I would love to find a single resource I could bookmark or buy that could explain these concepts in a glossary for us members of the great unwashed and unlearned...
    Thanks from a confused wkiraly

    http://java.sun.com/j2se/1.4.2/docs/api/index.htmlI know where the API, I know how to look up what I want, I just don't understand how to read it properly yet.

Maybe you are looking for