![]() |
|
|
|||||||
| Java Basics - Anfänger-Themen Fragen ausschließlich zu Java-Grundlagen von Ein- und Umsteigern |
|
|
|
Themen-Optionen | Thema durchsuchen | Ansicht |
| #1 (permalink) | |
|
Neuer Benutzer
Bit
Registriert seit: 20.08.2004
Fachbeiträge: 7
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
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 |
|
|
| #3 (permalink) | |
|
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);
}
}
}
|
|
|
| #4 (permalink) | |
|
Java-Forum Team
Moderator
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);
}
}
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/ |
|
|
| #6 (permalink) | |
|
Java-Forum Team
Moderator
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/ |
|
|
| #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 |
|
|
| #9 (permalink) | |
|
Java-Forum Team
Moderator
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/ |
|
|
| #10 (permalink) | |
|
Stammbenutzer
CD-R 80
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 |
|
|
|
| Themen-Optionen | Thema durchsuchen |
| 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 |
|
|