Я создаю программу с использованием обработки (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
};
}
}