cla*_*l3r 7 java clipboard adobe-illustrator
Illustrator使用PDF和AICB作为剪贴板.我有兴趣从java中填充剪贴板作为PDF,然后能够将其粘贴到Illustrator中.
我认为首先尝试其他方式可能更容易.所以从插画家复制到java.
如果我在Illustrator中复制某些圈子里,则该方法getTransferDataFlavors从Clipboard不返回任何的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));
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
false
false
false
false
false
false
false
Run Code Online (Sandbox Code Playgroud)
我对下一步做什么一无所知.我在过去的几个小时里一直在努力,但似乎并没有带来任何好处.我能做什么?
Transferable您从剪贴板中获取的内容已包含所有剪贴板内容。只是您无法将其转换为任何已登记的数据风格。如果您将其按原样复制回剪贴板,那么它应该可以粘贴到生成它的应用程序中。
相反,您可以尝试使您的自定义Transferable具有可由目标应用程序解释的内容和结构。然后只需将其放入剪贴板即可粘贴。