2015-09-04 17 views
7

Illustrator verwendet entweder PDF und AICB für die Zwischenablage. Ich möchte die Zwischenablage aus Java als PDF ausfüllen, um sie dann in Illustrator einfügen zu können.Get Zwischenablage Inhalt von Illustrator mit Java

Ich dachte, es ist wahrscheinlich einfacher, zuerst anders herum zu versuchen. Kopieren Sie also vom Illustrator nach Java. Wenn ich einige Kreise in Illustrator kopiere, gibt die Methode getTransferDataFlavors aus Clipboard keine DataFlavors zurück. Und für alle isDataFlavorSupported bekomme ich eine falsche.

import java.awt.datatransfer.*; 
import java.awt.Toolkit; 

public class ClipBoardTest { 


    public static void main(String[] args) { 

     Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 

     Transferable content = clipboard.getContents(null); 
     if (content != null) { 

      DataFlavor[] dataFlavors = content.getTransferDataFlavors(); 

      for (DataFlavor df : dataFlavors) { 
       System.out.println(df.getHumanPresentableName()); 
       System.out.println("---"); 
      } 


      System.out.println(content.isDataFlavorSupported(DataFlavor.stringFlavor)); 
      System.out.println(content.isDataFlavorSupported(DataFlavor.imageFlavor)); 
      System.out.println(content.isDataFlavorSupported(DataFlavor.allHtmlFlavor)); 
      System.out.println(content.isDataFlavorSupported(DataFlavor.fragmentHtmlFlavor)); 
      System.out.println(content.isDataFlavorSupported(DataFlavor.selectionHtmlFlavor)); 
      System.out.println(content.isDataFlavorSupported(DataFlavor.javaFileListFlavor)); 


      DataFlavor myDF = new DataFlavor("application/pdf", "PDF"); 
      System.out.println(content.isDataFlavorSupported(myDF)); 

     } 

    } 

} 

Ausgang:

false 
false 
false 
false 
false 
false 
false 

Ich bin ratlos, was als nächstes zu tun ist. Ich habe die letzten Stunden versucht, aber es scheint nirgendwohin zu führen. Was könnte ich tuen?

Antwort

1

Die Transferable, die Sie aus der Zwischenablage erhalten, enthält bereits den gesamten Inhalt der Zwischenablage. Es ist nur so, dass Sie es nicht in einen der angegebenen Datenaromen konvertieren können. Wenn Sie es unverändert in die Zwischenablage kopieren, sollte es in der App, in der es erstellt wurde, übersprungen werden.

Umgekehrt könnten Sie versuchen, Ihren benutzerdefinierten Transferable mit dem Inhalt und der Struktur zu erstellen, die von der Zielanwendung interpretiert werden können. Dann lege es einfach in die Zwischenablage, damit es eingefügt werden kann.

Verwandte Themen