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));
}
}
}
输出:
false
false
false
false
false
false
false
我对下一步该做什么一无所知。我在过去的几个小时里一直在努力,但它似乎并没有带来任何好处。我该怎么办?
答案 0 :(得分:1)
您从剪贴板获取的Transferable
已包含所有剪贴板内容。只是你不能将它转换为任何登记的数据风格。如果你按原样将它复制回剪贴板,那么它应该可以在生成它的应用程序中使用。
反过来说,您可以尝试使自定义Transferable
具有目标应用程序可以解释的内容和结构。然后将其放入剪贴板以便粘贴它。