java-forum.org - Java programmieren aus Leidenschaft
Java 6 Einstieg und professioneller Einsatz
Alter Preis: 34,90 EUR
Jetzt: 0,00 EUR

zzgl. Versandkosten

Zurück   java-forum.org - Java programmieren aus Leidenschaft > Java - Programmierung > Java Basics - Anfänger-Themen

Java Basics - Anfänger-Themen Fragen ausschließlich zu Java-Grundlagen von Ein- und Umsteigern

Thema geschlossen    
Themen-Optionen Thema durchsuchen Ansicht
Alt 24.08.2004, 10:40   #1 (permalink)
Neuer Benutzer
Bit
 
Registriert seit: 20.08.2004
Fachbeiträge: 7
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard Drucken mit Java über FOP

Hallo zusammen,

ich habe ein kleines Problem beim Drucken mit FOP.

Ich möchte gerne eine PDF datei drucken oder zumindest grafisch drucken.
Ich habe eine XML datei und das dazugehörige XSL. Daraus kann ich ja file.fo generieren (da universeller)
zu guter letzt würde ich dies gerne drucken doch das klappt mit den FOP nicht so (aus java heraus).

Die PDF datei zu erzeugen ist ja nicht so schwer aber weiter.....????

Habt ihr vielleicht eine Idee oder einen Code-Schnippsel wie man so etwas macht??

Gruß
asterix
asterix ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 24.08.2004, 10:58   #2 (permalink)
DP
Stammbenutzer
Megabyte
 
Registriert seit: 11.02.2004
Fachbeiträge: 2.429
Abgegebene Danke: 0
Erhielt 3 Danke für 3 Beiträge
wenn du dich bis heute abend gedulden kannst, kann ich dir ein code posten. habe das bei meinem ex-arbeitgeber gemacht, daher ist der code zu hause...

cu
DP ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 24.08.2004, 11:00   #3 (permalink)
DP
Stammbenutzer
Megabyte
 
Registriert seit: 11.02.2004
Fachbeiträge: 2.429
Abgegebene Danke: 0
Erhielt 3 Danke für 3 Beiträge
btw., kommst mit dem beispiel von fop nicht zurecht?

Code:
/*
 * $Id$
 * ============================================================================
 *                    The Apache Software License, Version 1.1
 * ============================================================================
 * 
 * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modifica-
 * tion, are permitted provided that the following conditions are met:
 * 
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 * 
 * 3. The end-user documentation included with the redistribution, if any, must
 *    include the following acknowledgment: "This product includes software
 *    developed by the Apache Software Foundation ([url]http://www.apache.org/[/url])."
 *    Alternately, this acknowledgment may appear in the software itself, if
 *    and wherever such third-party acknowledgments normally appear.
 * 
 * 4. The names "FOP" and "Apache Software Foundation" must not be used to
 *    endorse or promote products derived from this software without prior
 *    written permission. For written permission, please contact
 *    [email]apache@apache.org[/email].
 * 
 * 5. Products derived from this software may not be called "Apache", nor may
 *    "Apache" appear in their name, without prior written permission of the
 *    Apache Software Foundation.
 * 
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
 * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * ============================================================================
 * 
 * This software consists of voluntary contributions made by many individuals
 * on behalf of the Apache Software Foundation and was originally created by
 * James Tauber <jtauber@jtauber.com>. For more information on the Apache
 * Software Foundation, please see <http://www.apache.org/>.
 */ 
package embedding;

//Java
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

//SAX
import org.xml.sax.InputSource;

//Avalon
import org.apache.avalon.framework.ExceptionUtil;
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.logger.ConsoleLogger;

//FOP
import org.apache.fop.apps.Driver;
import org.apache.fop.apps.FOPException;
import org.apache.fop.messaging.MessageHandler;

/**
 * This class demonstrates the conversion of an FO file to PDF using FOP.
 */
public class ExampleFO2PDF {

    public void convertFO2PDF(File fo, File pdf) throws IOException, FOPException {
        
        //Construct driver
        Driver driver = new Driver();
        
        //Setup logger
        Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
        driver.setLogger(logger);
        MessageHandler.setScreenLogger(logger);

        //Setup Renderer (output format)        
        driver.setRenderer(Driver.RENDER_PDF);
        
        //Setup output
        OutputStream out = new java.io.FileOutputStream(pdf);
        try {
            driver.setOutputStream(out);

            //Setup input
            InputStream in = new java.io.FileInputStream(fo);
            try {
                driver.setInputSource(new InputSource(in));
            
                //Process FO
                driver.run();
            } finally {
                in.close();
            }
        } finally {
            out.close();
        }
    }


    public static void main(String[] args) {
        try {
            System.out.println("FOP ExampleFO2PDF\n");
            System.out.println("Preparing...");
            
            //Setup directories
            File baseDir = new File(".");
            File outDir = new File(baseDir, "out");
            outDir.mkdirs();

            //Setup input and output files            
            File fofile = new File(baseDir, "xml/fo/helloworld.fo");
            File pdffile = new File(outDir, "ResultFO2PDF.pdf");

            System.out.println("Input: XSL-FO (" + fofile + ")");
            System.out.println("Output: PDF (" + pdffile + ")");
            System.out.println();
            System.out.println("Transforming...");
            
            ExampleFO2PDF app = new ExampleFO2PDF();
            app.convertFO2PDF(fofile, pdffile);
            
            System.out.println("Success!");
        } catch (Exception e) {
            System.err.println(ExceptionUtil.printStackTrace(e));
            System.exit(-1);
        }
    }
}
DP ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 24.08.2004, 11:03   #4 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von thE_29
 
Registriert seit: 11.05.2004
Fachbeiträge: 6.733
Blog-Einträge: 3
Abgegebene Danke: 4
Erhielt 51 Danke für 40 Beiträge
also wenn du so (mittels java libs) pdf drucken willst, brauchst du einen drucker der das unterstützt (haben in der firma, ca 10 drucker, keiner kanns....)

aber ps kann jeder, ansonsten hier mal was

Code:
  public PrintPS(String strFilename, int iDevice)
  {
    try
    {
      PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
      //setzt das auszudruckend Dokument fest
      DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;
      PrintService printService[] = PrintServiceLookup.lookupPrintServices(
          flavor, pras);
      PrintService defaultService = PrintServiceLookup.
          lookupDefaultPrintService();

      PrintService service = null;
      //wenn als Device -1 übergeben wird, wird ein Dialog für das drucken auswählen ausgegeben!
      if (iDevice == -1)
      {
        service = ServiceUI.printDialog(null, 200, 200,
            printService, defaultService, flavor, pras);
      }
      //ansonsten wird der 1te (Standard/Default) Drucker genommen
      else
      {
        //wenn es keine Drucker gibt und das Device niedriger ist als die Länge
        if (printService != null && printService.length != 0 && printService.length > iDevice)
        {
          service = printService[iDevice];
        }
        //ansonsten standarddevice
        else if(printService != null && printService.length != 0)
        {
          service = printService[0];
        }
      }
      if(strFilename == null)
      {
        return;
      }
      //wenn der Service nicht null ist, wird ausgedruckt
      if (service != null)
      {
        DocPrintJob job = service.createPrintJob();
        //fügt listener hinzu
        job.addPrintJobListener(drucker);
        FileInputStream fis = new FileInputStream(strFilename);
        DocAttributeSet das = new HashDocAttributeSet();
        Doc doc = new SimpleDoc(fis, flavor, das);
        job.print(doc, pras);
      }
    }
    //wenn kein Druckerdevice gefunden wurde!!
    catch (ArrayIndexOutOfBoundsException ex)
    {
      ex.printStackTrace();
    }
    //bei sonstigen Exceptions!
    catch (Exception ex)
    {
      ex.printStackTrace(System.out);
    }
}
musst halt in ein ps umwandeln oder änder die Zeile auf pdf
DocFlavor flavor = DocFlavor.INPUT_STREAM.PDF;
__________________
Wir machen Fehler aus Versehen, die anderen aus Dummheit. (Gabriel Laub)
Pur Java Registry Reader - http://sourceforge.net/projects/java-registry/
thE_29 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 24.08.2004, 12:11   #5 (permalink)
DP
Stammbenutzer
Megabyte
 
Registriert seit: 11.02.2004
Fachbeiträge: 2.429
Abgegebene Danke: 0
Erhielt 3 Danke für 3 Beiträge
wieso braucht er einen drucker, der das kann? er muss beim pdf-druck halt keinen drucker emulieren, fettich.
DP ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 24.08.2004, 12:14   #6 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von thE_29
 
Registriert seit: 11.05.2004
Fachbeiträge: 6.733
Blog-Einträge: 3
Abgegebene Danke: 4
Erhielt 51 Danke für 40 Beiträge
weil er dir dann eine exception wirft und irgendwas zusammenschreibt das er es net kann (war bei mir so)

Es gehen sonst eigentlich alle typen, bei allen Druckern, nur halt pdf net!
__________________
Wir machen Fehler aus Versehen, die anderen aus Dummheit. (Gabriel Laub)
Pur Java Registry Reader - http://sourceforge.net/projects/java-registry/
thE_29 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 24.08.2004, 13:00   #7 (permalink)
DP
Stammbenutzer
Megabyte
 
Registriert seit: 11.02.2004
Fachbeiträge: 2.429
Abgegebene Danke: 0
Erhielt 3 Danke für 3 Beiträge
keine ahnung, das problem habe ich noch nie gehabt.

na ejaaaal, hauptsache der jong bekommt seine pdf generiert
DP ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 24.08.2004, 14:27   #8 (permalink)
Neuer Benutzer
Bit
Themenstarter
 
Registriert seit: 20.08.2004
Fachbeiträge: 7
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Hallo DP,

zu deinem bsp. hier wird doch nur eine PDF datei erzeugt aber nicht gedruckt oder...??

Hallo thE 29,

bei deinem bsp. mit dem Postscript wollte ich fragen, ob die iDevice die nummer des Standarddruckers ist... desweiteren wollte ich fragen, ob man einem Drucker explizit sagen muss das er Postscripts druckt da nur einer von 6 Druckern in der Druckerauswahl steht...??

Besten dank im voraus und grüssle
asterix ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 24.08.2004, 15:07   #9 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von thE_29
 
Registriert seit: 11.05.2004
Fachbeiträge: 6.733
Blog-Einträge: 3
Abgegebene Danke: 4
Erhielt 51 Danke für 40 Beiträge
das device sind die drucker! 0 - x
bei -1 kommt der schöne druckerauswahldialog

und das mit dem explizit sagen, was er drucken soll (PostSCRIPT, JPG,PDF,GIF) ist glaub ich damit er weiß wie er es drucken soll!

Könntest ja eine Dateiendung abfrage machen und danach den Drucktyp wählen!
__________________
Wir machen Fehler aus Versehen, die anderen aus Dummheit. (Gabriel Laub)
Pur Java Registry Reader - http://sourceforge.net/projects/java-registry/
thE_29 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 24.08.2004, 15:10   #10 (permalink)
Stammbenutzer
CD-R 80
 
Benutzerbild von bygones
 
Registriert seit: 07.10.2003
Fachbeiträge: 9.041
Blog-Einträge: 7
Abgegebene Danke: 94
Erhielt 383 Danke für 296 Beiträge
uhi - der kann ja auch html - gleich merken... danke
__________________
When I was young, I invented an invisible friend called Mr Ravioli. My psychiatrist says I don't need him anymore, so he just sits in the corner and reads
bygones ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Thema geschlossen    

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Drucken aus Java Applet. Java Version 1.3.1 mecJava Deployment 1 17.08.2009 09:48
über JAVA eine HTMLseite als pdf drucken und email schicken mc_maki Bücher, Tutorials und Links 5 18.09.2008 12:19
Drucken über Java oder OOo empfehlenswert? JSteinhilber Allgemeine Java-Themen 15 14.05.2008 17:30
Drucken mit Java Babba_BLuBB Java Basics - Anfänger-Themen 1 15.09.2005 14:19
Drucken mit Java YWN Java Basics - Anfänger-Themen 1 30.08.2003 15:02


Lesezeichen

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de