PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PDF erzeugen


PatkIllA
2009-12-16, 20:46:17
Wir möchten in einer .NET Anwendung PDFs erstellen.
Der größte und mit Abstand komplexeste Teil ist dabei eine Karte. Zur Darstellung wird excessiv von den Klassen im System.Drawing namespace Gebrauch gemacht. Im Endeffekt kommt also GDI zum Einsatz.
Gesucht ist jetzt eine einfache Möglichkeit daraus PDFs mit Vektorgrafik zu machen ohne das Zeichnen ein zweites Mal zu exportieren.
Die zahlreichen PDF-Drucker lassen sich leider nicht ausreichend fernsteuern und es müsste wieder ein zusätzliches Produkt installiert werden.
Ich bin jetzt auf die eXPert PDF Creator COM Library (http://www.visagesoft.com/products/pdfx/index.php) gestossen.
Die stellt ein Device Context Handle zur Verfügung, worauf ich dann ohne jegliche Codeanpassung malen kann. Leider scheint die Bibliothek mit unseren Datenmengen (einige hunderttausend Geometrien) oder einigen Techniken (insbesondere clipping) nicht zurecht zu kommen.
Kennt ihr ähnliche Bibliotheken oder habt einen anderen Vorschlag?

edit:
http://www.colorpilot.com/pdflibrary.html die scheint auch einen Device Context zu unterstützen.

Gast
2009-12-16, 23:56:03
Ich verwende sehr gerne den PDF Creator. Das ist zwar ein PDF Drucker, aber du kannst ihn automatisieren, dass er alle Seiten in einem Verzeichnis automatisch ablegt. Danach kannst du mit den Dateien per .NET ja wieder machen, was du willst.

PatkIllA
2009-12-16, 23:59:56
Ich verwende sehr gerne den PDF Creator. Das ist zwar ein PDF Drucker, aber du kannst ihn automatisieren, dass er alle Seiten in einem Verzeichnis automatisch ablegt. Danach kannst du mit den Dateien per .NET ja wieder machen, was du willst.
Meinst du die COM-Schnittstelle? Da habe ich schon mehrere Stunden mit verbracht und das ist IMO nicht ansatzweise praxistauglich. Da kann der Benutzer zwischendurch die Einstellungen verändern oder das Programm beenden, es gibt Probleme wenn andere Programme auf dem Drucker drucken und oder Einstellungen vornehmen. Fehler und sonstige Benachrichtigen sind auch nicht zuverlässig.
Das Ergebnis-PDF ist allerdings praktisch die Wunschvorstellung, was Qualität und Größe angeht. Geschwindigkeit ist auch gut.

Pinoccio
2009-12-17, 10:05:10
Für JAVA gibt es da gnujpdf (http://gnujpdf.sourceforge.net/gnujpdf.html), welches eben genau die "normalen" draw-Befehle für Oberflächenelemente umsetzt, also auch das zeichnen von Karten mittels drawLine() oder drawShape() usw.

Auch wenn dir das nicht wirklich hilft ... :smile:

Oder umständlich und exotisch über LaTex mit pgf/tikz als Zeichen-Schritt. Oder als SVG zwischendrin. Oder, oder, oder ...:ugly:

mfg

TheGamer
2009-12-17, 10:09:10
iText sollte dies auch koennen. Urspruenglich Java aber C# .NET wird analog weiterentwickelt.

http://itextsharp.sourceforge.net/

PatkIllA
2009-12-28, 12:09:11
iText sollte dies auch koennen. Urspruenglich Java aber C# .NET wird analog weiterentwickelt.

http://itextsharp.sourceforge.net/
Wonach soll ich da gucken? Ich finde da nichts in Richtung Device Context.

2010
2009-12-28, 15:44:46
PDFTiger kann ich empfehlen