Mit ApacheFOP v1.0 in .NET-Anwendung
Hat jemand erfolgreich erfüllt die Apache FOP-v1.0 Bibliothek ein .NET-DLL? Ich bin mit dem IKVM-syntax gefunden bei http://onjava.com/pub/a/onjava/2004/08/18/ikvm.html; jedoch die kompilierte DLL scheint unvollständig zu sein. Zum Beispiel, ich kann nicht instanziiert werden FopFactory Objekt als:
using org.apache.fop.apps;
namespace Utils
{
public class PdfRender
{
public void Render()
{
FOUserAgent foUserAgent = fop.getUserAgent();
FopFactory fopFactory = FopFactory.newInstance();
}
}
}
- haben Sie versucht, fonet.codeplex.com statt?
- siehe auch: stackoverflow.com/questions/1099485/...
- Wir sind derzeit mit nFop, würde aber gerne verschieben ApacheFOP v1.0 zu nutzen, die 508 accessibility-features.
- Der Artikel ist sehr alt. Den meisten wird es nicht funktionieren mit der aktuellen version von IKVM. Auf der mailing-Liste von IKVM-einige Leute nutzen fop. Deiner Frage fehlen viele wichtige Informationen wie, welche Fehler haben Sie erhalten, die IKVM-version benutzt du, etc.
- Richtig, der Artikel ist alt, aber ich habe nicht Glück bei der Suche, nichts anderes. Ich habe versucht, zu übersetzen die Befehle und die syntax in den "alten" Artikel mit IKVM 0.44.0.5. Es gibt mehrere Warnungen, die während der IKVMC Ausführung, aber keine Fehler. Wenn ich Hinzugefügt die generierten DLLs auf mein C#.NET Projekt, ich habe keinen Zugriff auf die FopFactory und andere Klassen dokumentiert in der ApacheFOP Bibliothek.
Du musst angemeldet sein, um einen Kommentar abzugeben.
(Mit freundlicher Genehmigung von die Leute auf der FOP-Benutzer-Gruppe)
Voraussetzung: IKVM 0.44.0.5 installiert.
C:\Fop\Build\
ikvmc -target:library -reference:IKVM.OpenJDK.Core.dll -recurse:C:\Fop\Build\\*.jar -version:1.0 -out:C:\Fop\fop.dll
fop.dll
,IKVM.OpenJDK.*.dll
undIKVM.Runtime.dll
-reference
- Schalter, der Fehler für mich. Aber es wird weiter gearbeitet mit der aktuellen fop-trunk von heute und die neuesten ikvm. Leistung sieht auch fast gleich .Netz ein bisschen langsamer, aber mit weniger Speicher. Ich benutzte eine Zeile, die die Kommandozeilen-app, die ruft einfach die konvertierten fops-Main.main-Methode.Habe ich versucht, den vorgeschlagenen Ansatz von ClayB ohne Erfolg.
Ich verwendet, die Kombinationen von IKVM 0.44 und 0,46 mit FOP 0.95 und 1.0. Aber nichts funktionierte! Es sind einige java-libs fehlen und verursacht Fehler. Es gibt auch eine .net-Ausnahme aufgetreten: could not load type-in-System.Security-namespace. Ich habe sogar versucht zu kompilieren jeder .jar-Datei eine dll-vorgeschlagen von Avik Sengupta bei http://onjava.com/pub/a/onjava/2004/08/18/ikvm.html, aber stecken auf lib\batik-all-1.7.jar. Es sei denn, jemand hat weitere workrounds, ich bin davon überzeugt, dass dieser Ansatz nicht mehr arbeiten mit den neuesten kits.
Allerdings fand ich eine andere Herangehensweise, die es einem ermöglicht zu nennen FOP aus .net. Ich hoffe, dies hilft jemand:
Bitte Lesen Sie die original-Artikel unter: http://www.ptperalta.net/index.php/technology/using-apache-fop-in-net.html
Ich weiß, dies ist ein Alter thread, aber es dauerte noch einige der Forschung, um dieses zu erhalten zu arbeiten. Es ist jetzt mit NuGet in Visual Studio 2013. Das NuGet-Paket namens crispin.fop. In meinem code unten, ich pass in eine "fop" - Datei und die neue PDF-Datei, die ich erstellt werden soll und "voila" ist, wird er erstellt.
newInstance
Methode inFopFactory fopFactory = FopFactory.newInstance();
erwartet mindestens einen parameter. Wahrscheinlich eine unterbrechende änderung, die eingeführt wird, danachClayB ist für mich gearbeitet. Bitte beachten Sie Punkt 2 "Kopieren Sie alle JAR-Dateien C:\Fop\Build\".
"alle" ist sehr wichtig. Sehen Sie hier die Liste der jar ' s die ich benötigt:
- fop.jar
- avalon-framework-4.2.0.jar
- batik-all-1.7.jar
- commons-io-1.3.1.jar
- commons-logging-1.0.4.jar
- serializer-2.7.0.jar
- xalan-2.7.0.jar
- xercesImpl-2.7.1.jar
- xml-apis-1.3.04.jar
- xml-apis-ext-1.3.04.jar
- xmlgraphics-commons-1.4.jar
Alle jar-andere als fop finden Sie im Ordner "lib".
lib
nichtlib\build
. Dies führte zu einigen Klasse nicht gefunden beim laufen die .net-version von fop.ClatB arbeitete auch hier. Nur remmeber hinzufügen, um ALLE IKVM-libs zu Ihrem Projekt (Arbeitete mit Fop 1.1 und IKVM 7.2.4630.5).