Kernel API OCR returns text coordinate information (#11738)

* 优化setImageOCRText接口调用

* 扩展 ocr 接口,添加 ocrJSON 返回字段

* 过滤不可见字符

* 返回的ocr文本添加空格
This commit is contained in:
崮生 2024-06-16 22:55:22 +08:00 committed by GitHub
parent 974f1c1183
commit c0bd645048
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 65 additions and 34 deletions

View file

@ -1019,7 +1019,9 @@ export const imgMenu = (protyle: IProtyle, range: Range, assetElement: HTMLEleme
fetchPost("/api/asset/getImageOCRText", {
path: imgElement.getAttribute("src")
}, (response) => {
element.querySelector("textarea").value = response.data.text;
const textarea =element.querySelector("textarea")
textarea.value = response.data.text;
textarea.dataset.ocrText = response.data.text;
});
}
}, {
@ -1031,11 +1033,6 @@ export const imgMenu = (protyle: IProtyle, range: Range, assetElement: HTMLEleme
fetchPost("/api/asset/ocr", {
path: imgElement.getAttribute("src"),
force: true
}, (response) => {
fetchPost("/api/asset/setImageOCRText", {
path: imgElement.getAttribute("src"),
text: response.data.text
});
});
}
}],
@ -1119,6 +1116,13 @@ export const imgMenu = (protyle: IProtyle, range: Range, assetElement: HTMLEleme
const textElements = window.siyuan.menus.menu.element.querySelectorAll("textarea");
textElements[0].focus();
window.siyuan.menus.menu.removeCB = () => {
const ocrElement = window.siyuan.menus.menu.element.querySelector('[data-type="ocr"]') as HTMLTextAreaElement;
if (ocrElement && ocrElement.dataset.ocrText !== ocrElement.value) {
fetchPost("/api/asset/setImageOCRText", {
path: imgElement.getAttribute("src"),
text: ocrElement.value
});
}
imgElement.setAttribute("alt", textElements[2].value.replace(/\n|\r\n|\r|\u2028|\u2029/g, ""));
nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss"));
updateTransaction(protyle, id, nodeElement.outerHTML, html);