簡體   English   中英

使用java從illustrator獲取剪貼板內容

[英]Get clipboard content from illustrator with java

Illustrator使用PDF和AICB作為剪貼板。 我有興趣從java中填充剪貼板作為PDF,然后能夠將其粘貼到Illustrator中。

我認為首先嘗試其他方式可能更容易。 所以從插畫家復制到java。

如果我在Illustrator中復制一些圓圈,那么Clipboard中的方法getTransferDataFlavors不會返回任何DataFlavor。 對於所有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

我對下一步做什么一無所知。 我在過去的幾個小時里一直在努力,但它似乎並沒有帶來任何好處。 我能做什么?

您從剪貼板獲得的Transferable已包含所有剪貼板內容。 只是你不能將它轉換為任何登記的數據風格。 如果您按原樣將其復制回剪貼板,那么它應該可以在生成它的應用程序中使用。

換句話說,您可以嘗試使自定義Transferable具有目標應用程序可以解釋的內容和結構。 然后只需將其放入剪貼板即可粘貼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM