2015-09-04 16 views
7

Trình minh hoạ sử dụng PDF và AICB cho khay nhớ tạm. Tôi quan tâm đến việc điền vào clipboard từ bên trong java dưới dạng PDF để sau đó có thể dán nó vào Illustrator.Tải nội dung clipboard từ trình minh họa bằng java

Tôi nghĩ rằng có thể dễ dàng hơn trước tiên khi thử theo cách khác. Vì vậy, sao chép từ người vẽ tranh minh họa sang java.

Nếu tôi sao chép một số vòng tròn trong Illustrator, thì phương pháp getTransferDataFlavors từ Clipboard không trả về bất kỳ DataFlavors nào. Và đối với tất cả isDataFlavorSupported Tôi nhận được thông báo sai.

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

     } 

    } 

} 

đầu ra:

false 
false 
false 
false 
false 
false 
false 

Tôi tránh khỏi thất bại phải làm gì tiếp theo. Tôi đã thử mọi thứ trong vài giờ qua nhưng nó dường như không dẫn đến đâu cả. Tôi có thể làm gì?

Trả lời

1

Transferable bạn nhận được từ khay nhớ tạm đã chứa tất cả nội dung của khay nhớ tạm. Nó chỉ là bạn không thể chuyển đổi nó thành bất kỳ hương vị dữ liệu nào được đưa vào. Nếu bạn sao chép nó trở lại vào clipboard như là, sau đó nó phải được dán trong ứng dụng mà sản xuất nó.

Với cách khác, bạn có thể thử làm cho tùy chỉnh Transferable của bạn có nội dung và cấu trúc có thể được giải thích bởi ứng dụng đích. Sau đó, chỉ cần đặt nó vào clipboard để nó có thể được dán.

Các vấn đề liên quan