【发布时间】:2020-07-30 21:47:41
【问题描述】:
我正在使用 processing(java) 创建一个程序,该程序输出一个 SVG 文件供我将其添加到 PowerPoint 和其他程序中。
我认为程序直接将生成的文件复制到我的系统剪贴板会更方便,而不必从输出目录复制文件。
问题是我找不到将剪贴板的内容设置为 SVG 文件的方法。我找到了处理图像的方法,但不是 SVG。澄清一下,我希望粘贴的文件也是 SVG,因为我想之后在 PowerPoint 中编辑形状和线条。
我也对可能在网络上运行的 javascript 解决方案持开放态度。目标是能够将可编辑的形状、线条和文本集合粘贴到 PowerPoint 中。
感谢所有帮助,在此先感谢!
编辑:这是适用于图像的代码:
import java.awt.image.*;
import java.awt.*;
import java.awt.datatransfer.*;
import javax.imageio.*;
void setup() {
size(200, 200);
background(0);
Image img=null;
try {
img = ImageIO.read(new File("path/to/file.jpg"));//path to image file
}
catch (IOException e) {
print(e);
}
ImageSelection imageSelection = new ImageSelection(img);
Toolkit toolkit = Toolkit.getDefaultToolkit();
toolkit.getSystemClipboard().setContents(imageSelection, null);
}
void draw() {
}
public class ImageSelection implements Transferable {
private Image image;
public ImageSelection(Image image) {
this.image = image;//added on
}
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException {
if (flavor.equals(DataFlavor.imageFlavor) == false) {
throw new UnsupportedFlavorException(flavor);//usually with transferable
}
return image;
}
public boolean isDataFlavorSupported(DataFlavor flavor) {
return flavor.equals(DataFlavor.imageFlavor);//usually with transferable
}
public DataFlavor[] getTransferDataFlavors() {
return new DataFlavor[] {
DataFlavor.imageFlavor//usually with transferable
};
}
}
【问题讨论】:
-
您好,我正在审核您的帖子。如果您添加了一些代码,我会更容易让社区为您提供帮助...
-
谢谢!我已经编辑了帖子。
标签: java svg processing clipboard paste