2D-Grafik Vektor-Grafik über die Zwischenablage nach Adobe Illustrator transferieren

inflamer

Bekanntes Mitglied
Hallo Forum,

ein etwas spezielles Thema, allerdings sind wir hier doch alle mehr oder weniger multidisziplinär unterwegs ;-) Drum hoffe ich, dass jemand von euch sich mit dem AI näher auskennt.

Ich schreibe Vektor-Daten als PDF- oder EPS-Datei, und zwar exakt so wie sie sonst in eine PDF-/EPS-Datei auf die Festplatte geschrieben würden, in die Zwischenablage, von wo aus der Illustrator sich diese Daten holen soll:

Java:
  private final static DataFlavor PDF_FLAVOR = new DataFlavor("application/pdf", null);
  private final static DataFlavor EPS_FLAVOR = new DataFlavor("application/postscript", null);
  static {
    SystemFlavorMap systemFlavorMap = (SystemFlavorMap)SystemFlavorMap.getDefaultFlavorMap();
    systemFlavorMap.addUnencodedNativeForFlavor(PDF_FLAVOR, "application/pdf");
    systemFlavorMap.addUnencodedNativeForFlavor(EPS_FLAVOR, "application/postscript");
  }


  private void copy(int format) {
    DataFlavor dataFlavor;
    if      (format == FORMAT_PDF)    dataFlavor = PDF_FLAVOR;
    else /* (format == FORMAT_EPS) */ dataFlavor = EPS_FLAVOR;

    byte[] imgBuf = makeImageBuffer(format); // erstelle pdf-/eps-datei

    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new Transferable() {
      public DataFlavor[] getTransferDataFlavors() {
        return new DataFlavor[] { dataFlavor };
      }
      public boolean isDataFlavorSupported(DataFlavor f) {
        return dataFlavor.equals(f);
      }
      public Object getTransferData(DataFlavor f) throws UnsupportedFlavorException, IOException {
        return new ByteArrayInputStream(imgBuf);
      }
    }, null);
  }

Der Nachteil dieser Methode ist - sie funktioniert nicht. :p Das heisst sie funktioniert mit z.B. Inkscape, aber nicht mit dem AI. Der "Einfügen"-Eintrag im "Bearbeiten"-Menü bleibt grau, was wohl bedeutet, dass der AI meint, keine "verwertbaren" Daten in der Zwischenablage vorzufinden.

Ich habe auch schon diverse Grafiktools ausprobiert, welche eine Funktion zum Kopieren von Vektordaten in die ZA mitbringen, mitunter als WMF - NICHTS davon funktioniert zusammen mit dem Illustrator!

Weiß jemand Näheres zu diesem Problem? Vielen Dank im voraus! (Schon eine Million Anläufe unternommen.)
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
Kannst Du mit dem Illustrator die andere Richtung gehen? Sprich: Da etwas in die Zwischenablage nehmen? Dann könntest Du die Zwischenablage analysieren um zu sehen, was dort erwartet wird.

Wenn man weiss, was die Applikation erwartet, dann könnte man ggf. die Zwischenablage anpassen. Aber wie gesagt: Dazu müsste man genau wissen, was da erwartet wird.

Die Anwendung selbst kenne ich nicht, daher kann ich leider nicht mehr beitragen als diese fixe Idee.
 

inflamer

Bekanntes Mitglied
Hallo Konrad,

auf die Idee war ich (bei meinen Tausend Anläufen) auch schon gekommen. Ergebnis war (wie zu erwarten) zig verschiedene Flavors, aber alles proprietäres Zeug, darunter ein dem Anschein nach propriäteres SVG... etc.

Wenn es denn nicht einfacher geht, dann werde ich das wohl oder übel darüber machen müssen. Ich hatte nur gehofft, das ginge einfacher. Schließlich sollte der Illustrator doch Daten von "außen" annehmen können und das dann in einer halbwegs standardisierten Form...
 
Zuletzt bearbeitet:

inflamer

Bekanntes Mitglied
Wenn ich so eine PDF oder EPS (erzeugt aus meiner Anwendung heraus) statt über die ZA als Datei per Drag&Drop in den AI ziehe, übernimmt er die schließlich ohne Weiteres. Warum nicht über die ZA, ist mir daher ein Rätsel...
 

Neumi5694

Top Contributor
Der Grund ist eigentlich ganz einfach.
Wenn du eine Datei (oder mehrere) dragst, dann wir eine Liste von Strings (Dateipfade) übergeben, mehr nicht. Das Programm liest dann die Datei mit der eignene Logik neu ein.

Wenn du aber die fertigen Elemente übertragen willst, welche das Programm intern verwendet, dann musst du eben mit dieser komplexen Struktur arbeiten, die du oben beschrieben hast.
 
Zuletzt bearbeitet:

inflamer

Bekanntes Mitglied
Der Grund ist eigentlich ganz einfach.
Wenn du eine Datei (oder mehrere) dragst, dann wir eine Liste von Strings übergeben, mehr nicht. Das Programm liest dann die Datei mit der eignene Logik neu ein.
Das ist mir schon klar, der Punkt ist doch aber, dass der Illustrator die Dateien NIMMT, sprich: er hat weder am Format etwas zu meckern noch sind die Dateien irgendwie korrupt. Wenn er die also nimmt, warum dann nicht auch über die Zwischenablage - ist ja 1:1 derselbe Inhalt.

Der AI ist in dieser Hinsicht aber nicht der Einzige, auch CorelDRAW (unterstützt PDF und SVG) nimmt nichts über die ZA an, sehr wohl aber ebenfalls über DnD.

Da muss wohl irgendeine verborgene Logik dahinterstecken...

Und: der obige Code funktioniert ja gerade nicht, dass ist ja der eigentlich Grund des Topics... ;)
 

KonradN

Super-Moderator
Mitarbeiter
Was du auch mal schauen kannst:
Kannst du die Datei im Windows Explorer in die Zwischenablage nehmen um diese dann einzufügen?

Falls das geht, dann kannst Du Dir ansehen, wie das in der Zwischenablage aussieht. Das wäre dann ggf. einfacher nachzubauen.
 

inflamer

Bekanntes Mitglied
Was du auch mal schauen kannst:
Kannst du die Datei im Windows Explorer in die Zwischenablage nehmen um diese dann einzufügen?

Falls das geht, dann kannst Du Dir ansehen, wie das in der Zwischenablage aussieht. Das wäre dann ggf. einfacher nachzubauen.
Genao SO funktioniert's!

Du meine Güte, ich wäre nie drauf gekommen, obwohl's so simpel ist. Ganz herzlichen Dank! 👍

Dass du um diese frühe Uhrzeit schon derart um's Eck denken kannst... 😃
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Wie Vektor-Grafik in die Zwischenablage kopieren? Allgemeine Java-Themen 2
C Zeilen-"Vektor" aus Excel-Tabelle suchen Allgemeine Java-Themen 0
R Multiplikation von Matrix und Vektor Allgemeine Java-Themen 5
P Matrix-Vektor Multiplikation Allgemeine Java-Themen 8
P Matrix-Vektor-Multiplikation Allgemeine Java-Themen 25
H Vektor rekursiv erzeugen Allgemeine Java-Themen 2
Zettelkasten Vektor mit Koordinaten erstellen Allgemeine Java-Themen 2
S Vektor in DB speichern Allgemeine Java-Themen 3
O Vektoren in Vektor sortieren aber mit Java 1.4 (!) Allgemeine Java-Themen 4
O Vektor kopieren (Inhalt, nicht Referenzen) Allgemeine Java-Themen 3
B Was sollte ich benutzen Vektor oder ArrayList? Allgemeine Java-Themen 5
B wird Vektor als Referenz übergeben? Allgemeine Java-Themen 5
M Vektor zusammenfassen Allgemeine Java-Themen 3
D Vektor - bestimmte Werte auslesen. Allgemeine Java-Themen 3
N 3d Grafik Kamera Allgemeine Java-Themen 2
N 3D Grafik erstellt Allgemeine Java-Themen 5
N 3D-Grafik 3D Grafik selber bauen Allgemeine Java-Themen 0
P Probleme mit Grafik (Java) Allgemeine Java-Themen 6
E 2D-Grafik nicht-rechteckige Grafik anzeigen Allgemeine Java-Themen 3
Maxim6394 Grafik zu Mausklick-Koordinate bewegen Allgemeine Java-Themen 18
vladimir Welche API für Grafik und Drag&Drop Allgemeine Java-Themen 3
R Texterkennung - Text aus einem/r Bild/Grafik auslesen Allgemeine Java-Themen 2
N grafik rotieren und zentrieren Allgemeine Java-Themen 4
L Grafik lesen Allgemeine Java-Themen 2
S 3D Grafik Library? Allgemeine Java-Themen 5
hdi Auslesen der Farbwerte einer Grafik-Datei Allgemeine Java-Themen 4
B Grafik erzeugen in java Allgemeine Java-Themen 2
G Messen in einer Grafik Allgemeine Java-Themen 7
W Java verursacht Grafik-Fehler? Allgemeine Java-Themen 3
P Grafik Bibliothek Allgemeine Java-Themen 4
S Konverter Postscript -> Grafik gesucht Allgemeine Java-Themen 2
C Grafik Editor in Java Allgemeine Java-Themen 2
P dxf-Daten aus Grafik erstellen Allgemeine Java-Themen 3
kodela Datenübergabe über Buttons Allgemeine Java-Themen 8
W Jar-File Start nur über Terminal Allgemeine Java-Themen 13
A ByteArray über Socket Allgemeine Java-Themen 3
berserkerdq2 Text über einen Shape anzeigen (Scenebuilder) Allgemeine Java-Themen 1
TheSkyRider Methode über DataInputStream "auslösen" Allgemeine Java-Themen 6
I OpenPDF erzeugt riesige PDFs, wenn Grafiken über PdfGraphics2D#drawImage gezeichnet werden Allgemeine Java-Themen 1
T Etikettendrucker über TCP-IP Allgemeine Java-Themen 1
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
B Liste ändern während Iteration über Diese? Allgemeine Java-Themen 16
Master3000 Java Konsole über Buffered Reader Zeilenweise auslesen ? Allgemeine Java-Themen 26
J Daten über serielle Schnittstelle empfangen Allgemeine Java-Themen 4
L Aufwandsabschätzung: Android-App Aufnahmefunktion (foto) und zweiter Ebene über dem Foto (teiltransparent) Allgemeine Java-Themen 6
M Registry Autostart Eintrag mit Java erstellen (über Windows cmd) Allgemeine Java-Themen 7
OSchriever Programm über Linux-Kommandozeile ausführen Allgemeine Java-Themen 20
J Namen von Methoden über Reguläre Ausdrücke bearbeiten Allgemeine Java-Themen 6
M Schnelleres Speichern von XML-Daten über URLConnection Allgemeine Java-Themen 4
M Keine weitere Eingabe in der Main möglich. Eventueller Ansatz über while. Allgemeine Java-Themen 8
Drachenbauer Wie kann eine vorgegebene Farbe über einen String erkannt werden? Allgemeine Java-Themen 11
W Variablenübergabe über mehrere Klassen Allgemeine Java-Themen 4
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
M Threads über Kommandozeile Allgemeine Java-Themen 5
david19 Software AE über Domain laufen lassen Allgemeine Java-Themen 0
Q Selbständig ActionEvent auslösen zum Daten senden über serielle Schnittstelle Allgemeine Java-Themen 7
T Problem mit externen Datenbankzugriff über SSH Tunnel Allgemeine Java-Themen 4
K Auf Dateiverzeichnis extern zugreifen (evtl über XML??) Allgemeine Java-Themen 22
C VisualVM oder Jconsole über Jolokia-Proxy Allgemeine Java-Themen 0
G USB-Pins über Java ansteuern Allgemeine Java-Themen 8
Ernesto95 Best Practice Localization über ResourceBundle Allgemeine Java-Themen 6
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
C Auslesen auslösen über Button-Click Allgemeine Java-Themen 8
M Fragen beantworten über Textfeldeingabe Allgemeine Java-Themen 5
AssELAss Best Practice Checksumme über jede Spalte zweier Tabellen und vergleichen Allgemeine Java-Themen 3
T Strings über Bluetooth zwischen PC,µc oder Samrtphone senden und empfangen Allgemeine Java-Themen 0
F Try/catch über ganze Klasse Allgemeine Java-Themen 9
kodela Eigenartige Datumsberechnung über GregorianCalendar Allgemeine Java-Themen 15
HarleyDavidson Best Practice Integer-Zahlenfolge über mehrere Programmstarts Allgemeine Java-Themen 7
T .jar über cmd ausführen (später dann batch) Allgemeine Java-Themen 6
F In OSX: Java-Programm über URI-Scheme aufrufen mit Parameter? Allgemeine Java-Themen 0
C Input/Output Zip Files über Socket senden und empfangen Allgemeine Java-Themen 6
M WebService - Zugriff auf Webservice Methode über Browser Allgemeine Java-Themen 1
C .jar File lässt sich nur über Konsole öffnen Allgemeine Java-Themen 1
L Videodateien über Java öffnen unabhängig vom Format Allgemeine Java-Themen 4
Thallius Hash über serialisiertes Objekt? Allgemeine Java-Themen 3
A Threads Lock über mehrere Abschnitte in verschiedenen Methoden Allgemeine Java-Themen 5
T Daten über port abfangen mit proxy server Allgemeine Java-Themen 12
M Eingabe von Arrays geht über gewünschte Anzahl hinaus Allgemeine Java-Themen 2
L Prüfen, ob Programm über 32bit oder 64bit Java ausgeführt wird Allgemeine Java-Themen 4
F Content-Disposition ermitteln über URL Allgemeine Java-Themen 2
ARadauer Checksumme über BigDecimal Werte Allgemeine Java-Themen 11
A Class Datei aus Verzeichnis über URLClassLoader laden Allgemeine Java-Themen 2
G Darstellung von Ergebnissen einer Dokumentensuche über eine JTable Allgemeine Java-Themen 19
S VLC + Lied über Java starten Allgemeine Java-Themen 17
M HTML-Code von Webseite über Browser oder Console auslesen?? Allgemeine Java-Themen 5
A Sinuston ausgeben und über Mikro Amplitude messen – machbar? Allgemeine Java-Themen 6
R Java-Progamm über Icon starten unter Windows Allgemeine Java-Themen 9
C Daten über URL an PHP verschicken Allgemeine Java-Themen 4
O Fragen über Fragen - Bei Änderung XML-Datei -> Anpassung GUI Allgemeine Java-Themen 7
aze Jar ausführen über Runtime.execute funktioniert nicht Allgemeine Java-Themen 4
S NoSuchMethodError beim Ausführen einer C Methode über JNI Allgemeine Java-Themen 5
H OOP Daten über TCP Allgemeine Java-Themen 5
Pastafari Iterator über nested HashMaps Allgemeine Java-Themen 7
R ListIterator über mehrere Arrays Allgemeine Java-Themen 13
G Interface Laden der Konfiguration über Interfaces sinnvoll? Allgemeine Java-Themen 28
D Player Objekt - Frame über Server anzeigen lassen. Allgemeine Java-Themen 3
B VoIP-Gespräche über Computer führen Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben