2015-09-04 27 views
7

Illustrator使用PDF和AICB作爲剪貼板。 我有興趣將剪貼板從java內部填充爲PDF,然後將其粘貼到Illustrator中。從java插畫獲取剪貼板內容

我認爲這可能更容易先嚐試其他方式。所以從illustrator複製到java。

如果我在Illustrator中複製了一些圓圈,則Clipboard中的方法getTransferDataFlavors不會返回任何DataFlavors。 和所有isDataFlavorSupported我得到一個錯誤。

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)); 

     } 

    } 

} 

輸出:

false 
false 
false 
false 
false 
false 
false 

我一無所知的下一步該怎麼做。我在過去的幾個小時裏一直在嘗試一些事情,但它似乎並沒有引導任何地方。我能做什麼?

回答

1

您從剪貼板獲得的Transferable已包含所有剪貼板內容。只是你不能將它轉換成任何入伍的數據風格。如果按照原樣將其複製回剪貼板,則應該在生成該應用程序的應用程序中進行製作。

對於其他方式,您可以嘗試使自定義Transferable具有可由目標應用程序解釋的內容和結構。然後把它放到剪貼板上,以便粘貼。