diff --git a/assets/webui/index.html b/assets/webui/index.html
index 4c96d76..5c94be5 100644
--- a/assets/webui/index.html
+++ b/assets/webui/index.html
@@ -495,13 +495,13 @@
关键词
文档属性
-
-
-
+
+
+
扩展属性
@@ -849,18 +849,6 @@
文档属性
-
-
- 文档标识
-
-
-
-
- 文档用途
-
-
-
-
- 封面路径
-
-
- 创建日期
@@ -877,6 +865,18 @@
- 软件版本
+
+
- 文档标识
+
+
+
+
- 文档用途
+
+
+
+
- 封面路径
+
+
扩展属性
diff --git a/assets/webui/ofdgo.js b/assets/webui/ofdgo.js
index 37c66d0..98f910f 100644
--- a/assets/webui/ofdgo.js
+++ b/assets/webui/ofdgo.js
@@ -15,7 +15,7 @@ const SCROLL_SEGMENT_SIZE = 1000000;
const OBJECT_CLIPBOARD_TYPE = "application/x-ofdgo-objects";
const RESOURCE_KINDS = [["Font", "字体"], ["Image", "图片"], ["Audio", "音频"], ["Video", "视频"], ["Attachment", "附件"], ["ColorSpace", "色彩"], ["DrawParam", "样式"]];
const SETTINGS_KINDS = [["bookmarks", "书签"], ["actions", "动作"], ["templates", "模板"], ["layers", "图层"], ["extensions", "扩展"]];
-const INFO_FIELDS = ["title", "author", "subject", "abstract", "docId", "docUsage", "cover", "creationDate", "modDate", "creator", "creatorVersion"];
+const INFO_FIELDS = ["title", "author", "subject", "abstract", "creationDate", "modDate", "creator", "creatorVersion", "docId", "docUsage", "cover"];
const STATUS = {
ready: "选择 OFD、PDF 文件",
opening: "正在打开文档",
@@ -345,20 +345,20 @@ const el = {
infoPanel: document.querySelector("#infoPanel"),
infoForm: document.querySelector("#infoForm"),
infoTitle: document.querySelector("#infoTitle"),
- infoCustomRows: document.querySelector("#infoCustomRows"),
- infoCustomAdd: document.querySelector("#infoCustomAdd"),
infoAuthor: document.querySelector("#infoAuthor"),
infoSubject: document.querySelector("#infoSubject"),
infoAbstract: document.querySelector("#infoAbstract"),
- infoDocId: document.querySelector("#infoDocId"),
- infoDocUsage: document.querySelector("#infoDocUsage"),
- infoCover: document.querySelector("#infoCover"),
+ infoKeywordRows: document.querySelector("#infoKeywordRows"),
+ infoKeywordAdd: document.querySelector("#infoKeywordAdd"),
infoCreationDate: document.querySelector("#infoCreationDate"),
infoModDate: document.querySelector("#infoModDate"),
infoCreator: document.querySelector("#infoCreator"),
infoCreatorVersion: document.querySelector("#infoCreatorVersion"),
- infoKeywordRows: document.querySelector("#infoKeywordRows"),
- infoKeywordAdd: document.querySelector("#infoKeywordAdd"),
+ infoDocId: document.querySelector("#infoDocId"),
+ infoDocUsage: document.querySelector("#infoDocUsage"),
+ infoCover: document.querySelector("#infoCover"),
+ infoCustomRows: document.querySelector("#infoCustomRows"),
+ infoCustomAdd: document.querySelector("#infoCustomAdd"),
infoCancel: document.querySelector("#infoCancel"),
infoStatus: document.querySelector("#infoStatus"),
paragraphPanel: document.querySelector("#paragraphPanel"),
@@ -607,20 +607,20 @@ const el = {
refreshAppButton: document.querySelector("#refreshAppButton"),
metaFile: document.querySelector("#metaFile"),
metaTitle: document.querySelector("#metaTitle"),
- conversionNotice: document.querySelector("#conversionNotice"),
- conversionWarnings: document.querySelector("#conversionWarnings"),
+ metaAuthor: document.querySelector("#metaAuthor"),
metaSubject: document.querySelector("#metaSubject"),
metaAbstract: document.querySelector("#metaAbstract"),
- metaDocId: document.querySelector("#metaDocId"),
- metaDocUsage: document.querySelector("#metaDocUsage"),
- metaCover: document.querySelector("#metaCover"),
metaKeywords: document.querySelector("#metaKeywords"),
- metaCustomData: document.querySelector("#metaCustomData"),
- metaAuthor: document.querySelector("#metaAuthor"),
metaCreationDate: document.querySelector("#metaCreationDate"),
metaModDate: document.querySelector("#metaModDate"),
metaCreator: document.querySelector("#metaCreator"),
metaCreatorVersion: document.querySelector("#metaCreatorVersion"),
+ metaDocId: document.querySelector("#metaDocId"),
+ metaDocUsage: document.querySelector("#metaDocUsage"),
+ metaCover: document.querySelector("#metaCover"),
+ metaCustomData: document.querySelector("#metaCustomData"),
+ conversionNotice: document.querySelector("#conversionNotice"),
+ conversionWarnings: document.querySelector("#conversionWarnings"),
metaType: document.querySelector("#metaType"),
metaVersion: document.querySelector("#metaVersion"),
metaSignatures: document.querySelector("#metaSignatures"),
@@ -12677,13 +12677,13 @@ function renderMeta(keepDetails = false) {
for (const [field, value] of [
[el.metaSubject, doc.subject || ""],
[el.metaAbstract, doc.abstract || ""],
- [el.metaDocId, doc.docId || ""],
- [el.metaDocUsage, doc.docUsage || ""],
- [el.metaCover, doc.cover || ""],
[el.metaCreationDate, formatDocumentTime(doc.creationDate)],
[el.metaModDate, formatDocumentTime(doc.modDate)],
[el.metaCreator, doc.creator || ""],
[el.metaCreatorVersion, doc.creatorVersion || ""],
+ [el.metaDocId, doc.docId || ""],
+ [el.metaDocUsage, doc.docUsage || ""],
+ [el.metaCover, doc.cover || ""],
]) {
field.textContent = value;
field.parentElement.hidden = !value;
diff --git a/internal/webui/webui.go b/internal/webui/webui.go
index 81271cf..82963ef 100644
--- a/internal/webui/webui.go
+++ b/internal/webui/webui.go
@@ -84,18 +84,18 @@ type pageBoxInfo struct {
// DocumentMetadata 文档描述,供信息展示与包内文档管理共用
type DocumentMetadata struct {
- DocID string `json:"docId"`
Title string `json:"title"`
Author string `json:"author"`
Subject string `json:"subject"`
Abstract string `json:"abstract"`
+ Keywords []string `json:"keywords,omitempty"`
CreationDate string `json:"creationDate"`
ModDate string `json:"modDate"`
- DocUsage string `json:"docUsage"`
- Cover string `json:"cover"`
- Keywords []string `json:"keywords,omitempty"`
Creator string `json:"creator"`
CreatorVersion string `json:"creatorVersion"`
+ DocID string `json:"docId"`
+ DocUsage string `json:"docUsage"`
+ Cover string `json:"cover"`
CustomData []ofdgo.CustomData `json:"customData,omitempty"`
}
@@ -104,9 +104,9 @@ type DocumentMetadata struct {
// 返回: DocumentMetadata 界面元数据
func documentMetadata(info ofdgo.DocInfo) DocumentMetadata {
metadata := DocumentMetadata{
- DocID: info.DocID, Title: info.Title, Author: info.Author, Subject: info.Subject, Abstract: info.Abstract,
- CreationDate: info.CreationDate, ModDate: info.ModDate, DocUsage: info.DocUsage, Cover: info.Cover,
- Keywords: slices.Clone(info.Keywords), Creator: info.Creator, CreatorVersion: info.CreatorVersion,
+ Title: info.Title, Author: info.Author, Subject: info.Subject, Abstract: info.Abstract, Keywords: slices.Clone(info.Keywords),
+ CreationDate: info.CreationDate, ModDate: info.ModDate, Creator: info.Creator, CreatorVersion: info.CreatorVersion,
+ DocID: info.DocID, DocUsage: info.DocUsage, Cover: info.Cover,
}
if info.CustomDatas != nil {
metadata.CustomData = slices.Clone(info.CustomDatas.CustomData)