# Suche Programm PDF Maker Programm zum einbinden in meinem



## Guest (18. Dez 2006)

Nabend

Habe ein bestehendes Java Programm, dass ein Worldfile aussliesst und auswertet.
Nun soll es neuerdings eine Funktion geben, die PDFs von all den Links (zum Archivieren der WebSeiten) aus dem Word erstellen.
Habt ihr eine Idee wie ich das machen soll?
Ich habe es mit Itext PDF versucht, dieses kann aber kein HTMl Code in PDF wandeln.
Habe es versucht mit Printscreens von den einzelnen Seiten und dann als Image in die PDF! Nur das Problem ist, dass die grösse der Prints Screens nicht immer stimmen wegen der Scrollbar und das ich diese vor dem PDF erstellen, extrem skalieren muss

Ich dachte nun an ein Programm, dass sich von meinem Java Programm aufrufen lässt. Das Java Programm übergebt die url und ein PDF wird erstellt.

Konrket.

- Rufe PDFMaker.exe (oder wie das Programm auch immer dann heisst auf) mit den enstprechendne in (in meinem fall Link der URL) und outpt files
- PDF wird erstellt
- Java Programm ruft wieder PDFmaker.exe auf und so weiter bis alle Links durch sind.


Kennt ihr so ein Programm? Habe mal gegoolged PDF Creator ist so eines, aber da sist mir zukompliziert. Gibt es nicht etwas einfacheres? Können solche PDF Maker über haupt direkt anahnd der URL ein PDF machen?

Oder soll ich eine ganz andere Mehtode anwenden?

mfg


----------



## Guest (18. Dez 2006)

Die Lösung ist mir gleich wie sie erreicht wird, es muss eifnach funktionieren.

Es kann einfach nicht sein, dass ich jeden Monat ca 30 Webseiten aufrufen und dann 30 PDF erstellen muss.
Das muss man doch automatisieren können.

Bin um jeden Tipp dankbar.

mfg


----------



## The_S (19. Dez 2006)

Evtl. ist das hier was für dich

http://pd4ml.com/features.htm

Ansonsten: Was hältste von Googeln? Gibt da sehr viele Treffer :roll:


----------



## Guest (19. Dez 2006)

Habe nichts brauchbares gefunden...

Habe aber eine neue Idee, die eigentlich auch funtkioniert...

Ich benütze PDFCreator.
Der PDFCreator kann PDFs von Webseiten machen. Nun jetzt mein Problem wie mache ich dies in Java?

Wenn ich nur text drucke geht dies prima!!!!! Ich habe ein schönes PDF etc

Aber wie mache ich dies mit HTMl code?

Ich habe diverses Versucht. Aber immer wenn ich von einer URL oder von einem File lesen will.
Kann ich nichts mehr drucken?

Konkret:

- Text via einen Standartdrucker drucken ging
- HTML INPUTSTREAM irgendwie drucken ging *nicht*


Habe auch shcon im Forum nachgschaut, alle Beispiele bringen mir nichts!!
Habe alle ausprobiert. Es geht bei allen nicht! weiss allerdings nicht wieso!

[/code]


----------



## The_S (20. Dez 2006)

1. Poste Code
2. Was hat das erzeugen von einem PDF mit ausdrucken zu tun?
3. Ist PDFCreator eine lib, die man in Java einbinden kann oder ein externes Programm?


----------



## Gast (20. Dez 2006)

schau dir doch mal diese seite an:

http://schmidt.devlib.org/java/libraries-pdf.html


----------



## Guest (21. Dez 2006)

Auf dieser Seite war ich schon mal, so bin ich auf itext gestossen.
Leider können alle diese (kostenlosen) libraries kein HTML Code in ein PDF wandeln.

Zu der Frage vorhin.

PDFCreator ist ein normales externes PDF Tool um PDF zuerstellen. (Keine Ahnung wie das gecoded ist)
Mit drucken von PDFs, meine ich dass erstellen von PDFs. Weil man spricht beim Erstellen den PDFWriter via Druckerauswahl an.

Konkret: Datei->Drucken->PDFCreator->drucken

nur dass dann nichts gedruckt wird, sondern ein Menue aufgeht und fragt wohin ich das PDF gespeichert haben möchte!

Besten Dank für eure Bemühungen. Ich werde mal den Code zusammen stellen (so wie ich es mir vorstelle und dann ins Forum printen).


----------



## The_S (21. Dez 2006)

Dann ist das aber ein Problem von deinem PDF-Creator und nicht von deinem Java-Programm ... Wie rufst du denn deinen PDFCreator auf?


----------



## Guest (21. Dez 2006)

So habe hier den Code so sollte alles klar sein.



```
import java.io.FileInputStream;
import java.io.FileNotFoundException;

import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.MediaSizeName;


public class Main {

	/**
	 * @param argss
	 * @throws PrintException 
	 * @throws FileNotFoundException 
	 */
	public static void main(String[] args) throws PrintException, FileNotFoundException {
		// TODO Auto-generated method stub
		FileInputStream text = new FileInputStream("C:/Dokumente und Einstellungen/sfabian/Desktop/bild.jpg"); 

		DocFlavor format = DocFlavor.INPUT_STREAM.JPEG; 

		DocAttributeSet das = new HashDocAttributeSet(); 
		Doc my = new SimpleDoc(text, format, das); 

		PrintService b = PrintServiceLookup.lookupDefaultPrintService(); 

		DocPrintJob job = b.createPrintJob(); 

		PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); 

		aset.add(MediaSizeName.ISO_A4); 
		job.print(my, aset); 


	}

}
```

So  funktionierts. Mein PDf mit dem bild.jpg wird erstellt 


Nehme ich jetzt aber ein test.html


```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD>

 <BODY>
Test, dies ist ein [b]Test[/b]
</BODY>
</HTML>
```


```
import java.io.FileInputStream;
import java.io.FileNotFoundException;

import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.MediaSizeName;


public class Main {

	/**
	 * @param argss
	 * @throws PrintException 
	 * @throws FileNotFoundException 
	 */
	public static void main(String[] args) throws PrintException, FileNotFoundException {
		// TODO Auto-generated method stub
		FileInputStream text = new FileInputStream("C:/Dokumente und Einstellungen/sfabian/Desktop/test.html"); 

		DocFlavor format = DocFlavor.INPUT_STREAM.TEXT_HTML_HOST; 

		DocAttributeSet das = new HashDocAttributeSet(); 
		Doc my = new SimpleDoc(text, format, das); 

		PrintService b = PrintServiceLookup.lookupDefaultPrintService(); 

		DocPrintJob job = b.createPrintJob(); 

		PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); 

		aset.add(MediaSizeName.ISO_A4); 
		job.print(my, aset); 


	}

}
```

Kommt folgende Fehlermeldung

Exception in thread "main" sun.print.PrintJobFlavorException: invalid flavor
	at sun.print.Win32PrintJob.print(Unknown Source)
	at Main.main(Main.java:41)


Was mache ich falsch?

Ich kann von dem HTML code her PDFs erstellen!!!!

Wenn ich nähmlich via Firefox oder IE die seite aufrufe und dann auf Drucken->PDFCreator->Drucken

Klappt es!!!!


----------

