我正在使用带有react的电子的epub项目,并使用epub解析epub文件。通过此解析器,我可以获取css
,ttf
这些文件。但是,这些文件将无法正常使用。例如,对于当前部分的html可能想要导入css之类的<link href="flow0003.css" rel="stylesheet" type="text/css">
,而不会加载此css
文件。
要解决此问题,是否可以存储一些文件来动态响应公共文件夹?
我一直在网上搜索,由于安全原因,似乎无法进行搜索。我也曾搜索过类似的电子方法,但由于该项目正在使用电子与反应,因此似乎没有任何建议。
顺便说一下,我能够像这样动态地注入样式:Book.tsx
useEffect(() => {
const css = Object.values(book.manifest).filter(({ href }) => href.endsWith('.css'));
Promise.all(css.map(c => getCss(book, c.id)))
.then(arr => arr.join('\n'))
.then(styles => {
if (!ref.current) return;
ref.current.setAttribute('style', styles);
});
}, [book]);
但是,字体文件的嵌套improt仍然无法工作。
那么电子可能会做出反应,将样式表,字体文件存储到其公用文件夹中(并且以后也需要删除)?
我知道可以用html解析img,样式数据。例如,使用react的dom.setAttribute
动态注入样式表。同样,对于img
标签,可以像<img src={data:${mimeType};base64, ${imgData.toString('base64')}}>
一样直接注入图像数据。那么,是否有任何等效的方式来加载font-face?
使用电子的ipcMain和ipcRenderer进行通信,并且电子具有资产到文件系统。