@syzlm/ofdparser 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +14 -0
- package/.eslintignore +2 -0
- package/.eslintrc.json +18 -0
- package/.prettierrc.json +9 -0
- package/dist/OFD.d.ts +8 -0
- package/dist/Pages.d.ts +7 -0
- package/dist/RootDocumnet.d.ts +1 -0
- package/dist/bundle.cjs.js +64123 -0
- package/dist/bundle.esm.js +64115 -0
- package/dist/bundle.iife.js +14743 -0
- package/dist/bundle.umd.js +64045 -0
- package/dist/constant/index.d.ts +7 -0
- package/dist/constant.d.ts +6 -0
- package/dist/core/ofd-core/Annotations/AnnotationsXml.d.ts +16 -0
- package/dist/core/ofd-core/Asn.1Utils.d.ts +47 -0
- package/dist/core/ofd-core/Documents/DocumentResXml.d.ts +15 -0
- package/dist/core/ofd-core/Documents/DocumnetXml.d.ts +25 -0
- package/dist/core/ofd-core/Documents/PublicResXml.d.ts +15 -0
- package/dist/core/ofd-core/OFDElement.d.ts +232 -0
- package/dist/core/ofd-core/Ofd/OFDXml.d.ts +19 -0
- package/dist/core/ofd-core/Pages/PageXml.d.ts +20 -0
- package/dist/core/ofd-core/Signatures/Signatures.d.ts +20 -0
- package/dist/core/ofd-core/TemplatePages/TemplatePages.d.ts +20 -0
- package/dist/core/ofd-core/constant.d.ts +29 -0
- package/dist/core/ofd-core/utils.d.ts +21 -0
- package/dist/dicom/dicom.d.ts +15 -0
- package/dist/dicom/index.d.ts +1 -0
- package/dist/errors/ErrorHandle.d.ts +6 -0
- package/dist/errors/ErrorMsg.d.ts +16 -0
- package/dist/errors/FetchErrors.d.ts +4 -0
- package/dist/errors/MimeError.d.ts +4 -0
- package/dist/errors/OFDErrors.d.ts +4 -0
- package/dist/errors/UnzipErrors.d.ts +4 -0
- package/dist/errors/XmlErrors.d.ts +4 -0
- package/dist/errors/error-msg.d.ts +9 -0
- package/dist/es.d.ts +2 -0
- package/dist/index.d.ts +6 -0
- package/dist/lib/ParseFile.d.ts +7 -0
- package/dist/lib/UnitCoversion.d.ts +31 -0
- package/dist/lib/asn1/Asn.1.d.ts +34 -0
- package/dist/lib/asn1/Stream.d.ts +27 -0
- package/dist/lib/asn1/asn1.d.ts +4 -0
- package/dist/lib/asn1/base64.d.ts +4 -0
- package/dist/lib/asn1/hex.d.ts +5 -0
- package/dist/lib/asn1/index.d.ts +5 -0
- package/dist/lib/asn1/int10.d.ts +34 -0
- package/dist/lib/asn1/oids.d.ts +2 -0
- package/dist/lib/asn1/string-cut.d.ts +2 -0
- package/dist/lib/decode-html.d.ts +7 -0
- package/dist/lib/fetch.d.ts +17 -0
- package/dist/lib/is-element.d.ts +5 -0
- package/dist/lib/load-files.d.ts +3 -0
- package/dist/lib/load-opentype.d.ts +34 -0
- package/dist/lib/load-script.d.ts +1 -0
- package/dist/lib/mime.d.ts +8 -0
- package/dist/lib/read-buffer.d.ts +2 -0
- package/dist/lib/toFixeds.d.ts +7 -0
- package/dist/libs/Asn.1Utils.d.ts +47 -0
- package/dist/libs/asn1/Asn.1.d.ts +34 -0
- package/dist/libs/asn1/Stream.d.ts +27 -0
- package/dist/libs/asn1/asn1.d.ts +4 -0
- package/dist/libs/asn1/base64.d.ts +4 -0
- package/dist/libs/asn1/hex.d.ts +5 -0
- package/dist/libs/asn1/index.d.ts +5 -0
- package/dist/libs/asn1/int10.d.ts +34 -0
- package/dist/libs/asn1/oids.d.ts +2 -0
- package/dist/libs/asn1/string-cut.d.ts +2 -0
- package/dist/libs/decode-html.d.ts +7 -0
- package/dist/libs/fetch.d.ts +17 -0
- package/dist/libs/mime.d.ts +8 -0
- package/dist/libs/ofdArray.d.ts +10 -0
- package/dist/libs/ofdImageObject.d.ts +9 -0
- package/dist/libs/ofdLayer.d.ts +3 -0
- package/dist/libs/ofdName.d.ts +17 -0
- package/dist/libs/ofdPathObject.d.ts +11 -0
- package/dist/libs/ofdTextObject.d.ts +6 -0
- package/dist/libs/parseAnnotation.d.ts +5 -0
- package/dist/libs/parseColor.d.ts +5 -0
- package/dist/libs/parsePageArea.d.ts +17 -0
- package/dist/libs/parser-elements.d.ts +8 -0
- package/dist/libs/parserElements.d.ts +8 -0
- package/dist/libs/pipeExtensions.d.ts +4 -0
- package/dist/libs/read-buffer.d.ts +2 -0
- package/dist/main.d.ts +15 -0
- package/dist/ofd/ConverterDpi.d.ts +16 -0
- package/dist/ofd/index.d.ts +1 -0
- package/dist/ofd/ofd-utils.d.ts +137 -0
- package/dist/ofd/ofd.d.ts +35 -0
- package/dist/ofd/parse-ofd.d.ts +18 -0
- package/dist/ofd/render.d.ts +18 -0
- package/dist/ofd/svg-image.d.ts +12 -0
- package/dist/ofd/svg-path.d.ts +5 -0
- package/dist/ofd/svg-text.d.ts +8 -0
- package/dist/ofd.parse.d.ts +6 -0
- package/dist/ofd.xml.d.ts +1 -0
- package/dist/ofdParse.d.ts +6 -0
- package/dist/pipe/annotations.d.ts +13 -0
- package/dist/pipe/attachments.d.ts +13 -0
- package/dist/pipe/commonData.d.ts +18 -0
- package/dist/pipe/customTags.d.ts +14 -0
- package/dist/pipe/extensions.d.ts +14 -0
- package/dist/pipe/output.d.ts +7 -0
- package/dist/pipe/pages.d.ts +13 -0
- package/dist/pipe/permissions.d.ts +14 -0
- package/dist/pipe/pipeline.d.ts +63 -0
- package/dist/pipe/startPipe.d.ts +11 -0
- package/dist/xml/index.d.ts +2 -0
- package/dist/xml/render.d.ts +6 -0
- package/dist/xml/xml.d.ts +18 -0
- package/package.json +47 -0
- package/public/index.html +75 -0
- package/public/opentype.min.js +2 -0
- package/rollup.config.dev.mjs +47 -0
- package/rollup.config.mjs +70 -0
- package/src/constant/index.ts +13 -0
- package/src/core/ofd-core/Annotations/Annotation.km +206 -0
- package/src/core/ofd-core/Annotations/Annotations.km +59 -0
- package/src/core/ofd-core/Annotations/Annotations.md +13 -0
- package/src/core/ofd-core/Annotations/AnnotationsXml.ts +114 -0
- package/src/core/ofd-core/Asn.1Utils.ts +225 -0
- package/src/core/ofd-core/Documents/DocumentResXml.ts +55 -0
- package/src/core/ofd-core/Documents/Documnet.km +862 -0
- package/src/core/ofd-core/Documents/DocumnetXml.ts +118 -0
- package/src/core/ofd-core/Documents/Documnets.md +296 -0
- package/src/core/ofd-core/Documents/PublicResXml.ts +63 -0
- package/src/core/ofd-core/Documents//345/233/276/345/261/202/346/270/262/346/237/223/351/241/272/345/272/217.png +0 -0
- package/src/core/ofd-core/Documents//350/241/25022/347/272/277/346/235/241/350/277/236/346/216/245/346/240/267/345/274/217.png +0 -0
- package/src/core/ofd-core/Documents//350/241/25023/347/272/277/346/235/241/350/231/232/347/272/277/346/240/267/345/274/217.png +0 -0
- package/src/core/ofd-core/Documents//350/241/25023/347/273/223/345/220/210/347/202/271/351/225/277/345/272/246.png +0 -0
- package/src/core/ofd-core/Documents//350/241/25024/347/272/277/346/235/241/347/253/257/347/202/271/346/240/267/345/274/217.png +0 -0
- package/src/core/ofd-core/Documents//351/241/265/350/276/271/347/225/214/345/261/202/346/254/241/347/273/223/346/236/204.png +0 -0
- package/src/core/ofd-core/OFDElement.ts +724 -0
- package/src/core/ofd-core/Ofd/CT_DocInfo.km +197 -0
- package/src/core/ofd-core/Ofd/OFD.km +114 -0
- package/src/core/ofd-core/Ofd/OFD.md +99 -0
- package/src/core/ofd-core/Ofd/OFDXml.ts +69 -0
- package/src/core/ofd-core/Pages/PAGE.md +40 -0
- package/src/core/ofd-core/Pages/PageXml.ts +59 -0
- package/src/core/ofd-core/Signatures/Signature.km +308 -0
- package/src/core/ofd-core/Signatures/Signature.md +21 -0
- package/src/core/ofd-core/Signatures/Signatures.km +315 -0
- package/src/core/ofd-core/Signatures/Signatures.md +24 -0
- package/src/core/ofd-core/Signatures/Signatures.ts +247 -0
- package/src/core/ofd-core/TemplatePages/TemplatePages.ts +56 -0
- package/src/core/ofd-core/asn.md +60 -0
- package/src/core/ofd-core/constant.ts +35 -0
- package/src/core/ofd-core/index.d.ts +867 -0
- package/src/core/ofd-core/utils.ts +86 -0
- package/src/dicom/dicom.ts +42 -0
- package/src/dicom/index.ts +1 -0
- package/src/errors/ErrorHandle.ts +14 -0
- package/src/errors/FetchErrors.ts +8 -0
- package/src/errors/MimeError.ts +9 -0
- package/src/errors/OFDErrors.ts +11 -0
- package/src/errors/UnzipErrors.ts +9 -0
- package/src/errors/XmlErrors.ts +11 -0
- package/src/errors/error-msg.ts +17 -0
- package/src/es.ts +3 -0
- package/src/global.d.ts +7 -0
- package/src/index.ts +7 -0
- package/src/lib/ParseFile.ts +12 -0
- package/src/lib/README.md +69 -0
- package/src/lib/UnitCoversion.ts +55 -0
- package/src/lib/asn1/Asn.1.ts +284 -0
- package/src/lib/asn1/README.md +1 -0
- package/src/lib/asn1/Stream.ts +314 -0
- package/src/lib/asn1/asn1.ts +120 -0
- package/src/lib/asn1/base64.ts +97 -0
- package/src/lib/asn1/hex.ts +60 -0
- package/src/lib/asn1/index.ts +5 -0
- package/src/lib/asn1/int10.ts +103 -0
- package/src/lib/asn1/oids.ts +6164 -0
- package/src/lib/asn1/string-cut.ts +8 -0
- package/src/lib/decode-html.ts +37 -0
- package/src/lib/fetch.ts +70 -0
- package/src/lib/is-element.ts +13 -0
- package/src/lib/jbig/README.md +1 -0
- package/src/lib/jbig/arithmetic_decoder.js +184 -0
- package/src/lib/jbig/base_stream.js +117 -0
- package/src/lib/jbig/ccitt.js +1068 -0
- package/src/lib/jbig/ccitt_stream.js +60 -0
- package/src/lib/jbig/compatibility.js +108 -0
- package/src/lib/jbig/core_utils.js +591 -0
- package/src/lib/jbig/decode_stream.js +184 -0
- package/src/lib/jbig/is_node.js +28 -0
- package/src/lib/jbig/jbig2.js +2582 -0
- package/src/lib/jbig/jbig2_stream.js +78 -0
- package/src/lib/jbig/primitives.js +441 -0
- package/src/lib/jbig/stream.js +101 -0
- package/src/lib/jbig/util.js +1231 -0
- package/src/lib/load-files.ts +26 -0
- package/src/lib/load-opentype.ts +161 -0
- package/src/lib/load-script.ts +33 -0
- package/src/lib/mime.ts +97 -0
- package/src/lib/read-buffer.ts +19 -0
- package/src/lib/toFixeds.ts +56 -0
- package/src/ofd/ConverterDpi.ts +35 -0
- package/src/ofd/OFD.md +38 -0
- package/src/ofd/TODO.md +10 -0
- package/src/ofd/index.ts +1 -0
- package/src/ofd/ofd-utils.ts +627 -0
- package/src/ofd/ofd.demo.md +12 -0
- package/src/ofd/ofd.ts +200 -0
- package/src/ofd/ofdxml.km +162 -0
- package/src/ofd/parse-ofd.ts +103 -0
- package/src/ofd/render.ts +393 -0
- package/src/ofd/svg-image.ts +318 -0
- package/src/ofd/svg-path.ts +283 -0
- package/src/ofd/svg-text.ts +272 -0
- package/src/xml/index.ts +3 -0
- package/src/xml/render.ts +171 -0
- package/src/xml/xml.ts +136 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { Element } from 'xml-js';
|
|
2
|
+
import OFDElement from '../OFDElement';
|
|
3
|
+
import PagesXml from '../Pages/PageXml';
|
|
4
|
+
import AnnotationsXml from '../Annotations/AnnotationsXml';
|
|
5
|
+
import TemplatePages from '../TemplatePages/TemplatePages';
|
|
6
|
+
import { NameREG } from '../utils';
|
|
7
|
+
|
|
8
|
+
import DocumentResXml from './DocumentResXml';
|
|
9
|
+
import PublicResXml from './PublicResXml';
|
|
10
|
+
// import { OFD_Q } from '../constant';
|
|
11
|
+
|
|
12
|
+
type PageAreaKey = 'PhysicalBox' | 'ApplicationBox' | 'ContentBox' | 'BleedBox';
|
|
13
|
+
|
|
14
|
+
class DocumnetXml extends OFDElement {
|
|
15
|
+
static fileName: string;
|
|
16
|
+
constructor(fileName: string) {
|
|
17
|
+
super();
|
|
18
|
+
DocumnetXml.fileName = fileName;
|
|
19
|
+
this.getPageArea();
|
|
20
|
+
this.getPages();
|
|
21
|
+
// 获取 DocumnetRes
|
|
22
|
+
this.getDocumentRes();
|
|
23
|
+
// 获取 PublicRes
|
|
24
|
+
this.getPublicRes();
|
|
25
|
+
// 获取 模版
|
|
26
|
+
this.getTemplatePage();
|
|
27
|
+
// 获取annotation
|
|
28
|
+
this.getAnnotation();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 获取 TemplatePage
|
|
33
|
+
* @returns
|
|
34
|
+
*/
|
|
35
|
+
getTemplatePage() {
|
|
36
|
+
const CommonDataElements = this.getOFDElements(
|
|
37
|
+
DocumnetXml.fileName,
|
|
38
|
+
'CommonData'
|
|
39
|
+
);
|
|
40
|
+
if (CommonDataElements?.elements?.length) {
|
|
41
|
+
const tplElements: Element[] = [];
|
|
42
|
+
CommonDataElements.elements.forEach(element => {
|
|
43
|
+
if (element.name === this.OFDCommonQName('TemplatePage')) {
|
|
44
|
+
// console.log('element:', element);
|
|
45
|
+
tplElements.push(element);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
if (tplElements?.length) {
|
|
49
|
+
return new TemplatePages(tplElements);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//const res = this.getOFDElements(DocumnetXml.fileName, 'TemplatePage');
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
getDocumentRes() {
|
|
57
|
+
const res = this.getOFDElements(DocumnetXml.fileName, 'DocumentRes');
|
|
58
|
+
if (res && res.elements) {
|
|
59
|
+
return new DocumentResXml(res.elements);
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
getPublicRes() {
|
|
65
|
+
const res = this.getOFDElements(DocumnetXml.fileName, 'PublicRes');
|
|
66
|
+
if (res && res.elements) {
|
|
67
|
+
return new PublicResXml(res.elements);
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
getPages() {
|
|
73
|
+
// const res = this.getElements('DocRoot', DocumnetXml.fileName);
|
|
74
|
+
const res = this.getOFDElements(DocumnetXml.fileName, 'Pages');
|
|
75
|
+
if (res && res.elements) {
|
|
76
|
+
return new PagesXml(res.elements);
|
|
77
|
+
}
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* 获取文档区域坐标
|
|
83
|
+
* @returns
|
|
84
|
+
*/
|
|
85
|
+
getPageArea() {
|
|
86
|
+
const res = this.getOFDElements(DocumnetXml.fileName, 'PageArea');
|
|
87
|
+
// console.log('getPageArea:', DocumnetXml.fileName, res);
|
|
88
|
+
if (res && res.elements) {
|
|
89
|
+
const PageAreaElements = res.elements;
|
|
90
|
+
PageAreaElements.forEach(item => {
|
|
91
|
+
if (item?.name) {
|
|
92
|
+
const { name, elements } = item;
|
|
93
|
+
const simpleName: PageAreaKey = name.replace(
|
|
94
|
+
NameREG,
|
|
95
|
+
''
|
|
96
|
+
) as PageAreaKey;
|
|
97
|
+
if (!OFDElement.PageArea) {
|
|
98
|
+
OFDElement.PageArea = { PhysicalBox: '' };
|
|
99
|
+
}
|
|
100
|
+
if (elements?.length) {
|
|
101
|
+
OFDElement.PageArea[simpleName] = String(elements[0]?.text);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
getAnnotation() {
|
|
110
|
+
const res = this.getOFDElements(DocumnetXml.fileName, 'Annotations');
|
|
111
|
+
if (res && res.elements) {
|
|
112
|
+
return new AnnotationsXml(res.elements);
|
|
113
|
+
}
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export default DocumnetXml;
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
# Documents
|
|
2
|
+
|
|
3
|
+
## CommonData
|
|
4
|
+
|
|
5
|
+
文档公共数据,定义了页面区域、公共资源等数据
|
|
6
|
+
|
|
7
|
+
### MaxUnitID
|
|
8
|
+
|
|
9
|
+
当前文档中所有对象使用标识的最大值,初始值为0。MaxUnitID主要用于文档编辑,在向文档中新增加一个对象时,需要分配一个新的标识,新标识取值为 MaxUnitID + 1,同时需要修改此MaxUnitID值
|
|
10
|
+
|
|
11
|
+
### PageArea
|
|
12
|
+
|
|
13
|
+
指定该文档页面区域的默认大小和位置
|
|
14
|
+
|
|
15
|
+
#### PhysicalBox
|
|
16
|
+
|
|
17
|
+
必填 ST_Box 页面物理区域,左上角的坐标为页面空间坐标系的原点
|
|
18
|
+
|
|
19
|
+
#### ApplicationBox
|
|
20
|
+
|
|
21
|
+
选填 ST_Box 显示区域,页面内容实际显示或者打印输出的区域,位于页面物理区域内,包含页眉、页脚、版心等内容
|
|
22
|
+
[例外处理]如果显示区域不完全位于页面物理区域内,页面物理区域外的部分则会忽略。如果显示区域完全位于页面物理区域外,则该页面为空白
|
|
23
|
+
|
|
24
|
+
#### ContentBox
|
|
25
|
+
|
|
26
|
+
选填 ST_Box 版心区域,即文件的正文区域,位于显示区域内。左上角坐标决定了其在显示区域内的位置[例外处理] 如果版心区域不完全位于显示区域内,显示区域外的部分则被忽略。如果版心区域完全位于显示区域外,则版心内容不被绘制
|
|
27
|
+
|
|
28
|
+
#### BleedBox
|
|
29
|
+
|
|
30
|
+
选填 ST_Box 出血区域,即超出设备性能限制的额外出血区域,位于页面物理区域外。不出现时,默认值为页面物理区域[例外处理]如果出血区域不完全位于页面物理区域外,页面物理区域内部分则被忽略。如果出血区域完全位于页面物理区域内,则出血区域无效
|
|
31
|
+
|
|
32
|
+
### PublicRes
|
|
33
|
+
|
|
34
|
+
选填 ST_Loc 公共资源序列,每个节点指向OFD包内的一个资源描述文档,资源部分的描述见7.9,字型和颜色空间等宜在公共资源文件中描述
|
|
35
|
+
|
|
36
|
+
### DocumentRes
|
|
37
|
+
|
|
38
|
+
选填 ST_Loc 文档资源序列,每个节点指向OFD包内的一个资源描述文档,资源部分的描述见7.9,绘制参数、多媒体和矢量图像等宜在文档资源文件描述
|
|
39
|
+
|
|
40
|
+
#### BaseLoc
|
|
41
|
+
|
|
42
|
+
定义此资源文件的通用数据存储路径,BaseLoc属性的意义在于明确资源文件的位置,比如R1.xml中可以指定BaseLoc为“./Res”,表明该资源中所有数据文件的默认存储位置在当前路径的Res目录下
|
|
43
|
+
|
|
44
|
+
#### ColorSpaces
|
|
45
|
+
|
|
46
|
+
包含一组颜色空间的描述
|
|
47
|
+
|
|
48
|
+
##### ColorSpace
|
|
49
|
+
|
|
50
|
+
CT_ColorSpace 颜色空间描述,在基础类型上扩展定义ID属性,类型为ST_ID
|
|
51
|
+
|
|
52
|
+
#### DrawParams
|
|
53
|
+
|
|
54
|
+
包含一组绘制参数描述
|
|
55
|
+
|
|
56
|
+
##### DrawParam
|
|
57
|
+
|
|
58
|
+
CT_DrawParam 绘制参数描述,在基础类型上扩展定义ID属性,类型为ST_ID
|
|
59
|
+
|
|
60
|
+
###### Relative
|
|
61
|
+
|
|
62
|
+
可选 ST_RefID 基础绘制参数,引用在资源文件中绘制参数标识
|
|
63
|
+
|
|
64
|
+
###### Join
|
|
65
|
+
|
|
66
|
+
可选 xs:string 线条连接样式,指定了两个线的断点结合是采用的样式 默认值 Miter,线条连接样式的取值和显示效果关系表见 取值如下:
|
|
67
|
+
|
|
68
|
+
1. Miter
|
|
69
|
+
2. Round
|
|
70
|
+
3. Bevel
|
|
71
|
+
|
|
72
|
+
###### LineWidth
|
|
73
|
+
|
|
74
|
+
可选 xs:double 线宽,非负浮点数,指定了路径绘制时线的宽度。由于某些设备不能输出一个像素宽度的线,因此强制规定当线宽大于0时,无论多小都最少要绘制两个像素的宽度;当线宽为0时绘制一个像素宽度。由于线宽0的定义与设备相关,所以不推荐使用线宽0。默认0.353mm
|
|
75
|
+
|
|
76
|
+
###### DashOffset
|
|
77
|
+
|
|
78
|
+
可选 xs:double 线条虚线样式开始的位置,默认值为0。当DashPattern 不出现时,该参数无效
|
|
79
|
+
|
|
80
|
+
###### DashPatter
|
|
81
|
+
|
|
82
|
+
可选 ST_Array 线条虚线的重复样式,数组中共含两个值,第一个值代表虚线线段的长度,第二个值代表虚线间隔的长度。默认值为空。线条虚线样式的控制效果见
|
|
83
|
+
|
|
84
|
+
###### Cap
|
|
85
|
+
|
|
86
|
+
可选 xs:string 线端点样式,枚举值,指定了一条线的端点样式。默认值为Butt。线条端点样式取值与效果之间关系见可取值为:
|
|
87
|
+
|
|
88
|
+
1. Butt
|
|
89
|
+
2. Round
|
|
90
|
+
3. Square
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
###### MiterLimit
|
|
94
|
+
|
|
95
|
+
可选 xs:double Join为Miter时小角度结合点长度的截断值,默认值为3.528。当Join不等于Miter 时该参数无效 如图
|
|
96
|
+
|
|
97
|
+
###### FillColor
|
|
98
|
+
|
|
99
|
+
可选 CT_Color 填充颜色,用以填充路径形成的区域以及文字轮廓内的区域,默认值为透明色。关于颜色的描述见8.3
|
|
100
|
+
|
|
101
|
+
###### StrokeColor
|
|
102
|
+
|
|
103
|
+
可选 CT_Color 勾边颜色,指定路径绘制的颜色以及文字轮廓的颜色,默认值为黑色。颜色的描述见8.3
|
|
104
|
+
|
|
105
|
+
#### Fonts
|
|
106
|
+
|
|
107
|
+
包含了一组文档所有字型描述
|
|
108
|
+
|
|
109
|
+
##### Font
|
|
110
|
+
|
|
111
|
+
CT_Font 字型资源描述,在基础类型上扩展定义ID属性,类型为ST_ID
|
|
112
|
+
|
|
113
|
+
#### MultiMedias
|
|
114
|
+
|
|
115
|
+
包含了一组文档所用多媒体对象描述
|
|
116
|
+
|
|
117
|
+
##### MultiMedia
|
|
118
|
+
|
|
119
|
+
CT_MultiMedia 多媒体资源描述,在基础类型上扩展定义ID属性,类型为ST_ID
|
|
120
|
+
|
|
121
|
+
###### Type
|
|
122
|
+
|
|
123
|
+
xs:string 多媒体类型,支持位图图像、音频、视频三种多媒体类型
|
|
124
|
+
|
|
125
|
+
###### Format
|
|
126
|
+
|
|
127
|
+
xs:string 资源的格式,支持BMP、JPEG、PNG、TIFF及AVS等格式,其中TIFF格式不支持多页
|
|
128
|
+
|
|
129
|
+
###### MediaFile
|
|
130
|
+
|
|
131
|
+
ST_Loc 指向OFD包内的多媒体文件的位置
|
|
132
|
+
|
|
133
|
+
#### CompositeGraphicUnits
|
|
134
|
+
|
|
135
|
+
包含一组矢量图像(被复合图元对象所引用)的描述
|
|
136
|
+
|
|
137
|
+
##### CompositeGraphicUnit
|
|
138
|
+
|
|
139
|
+
CT_VectorG 矢量图像资源描述,在基础类型上扩展定义ID属性,类型为ST_ID
|
|
140
|
+
|
|
141
|
+
### TemplatePage
|
|
142
|
+
|
|
143
|
+
模版页序列,为一系列模版页的集合,模版页内容结构和普通页相同,描述见7.7[PAGE.md](../Pages/PAGE.md)
|
|
144
|
+
|
|
145
|
+
### DefaultCS
|
|
146
|
+
|
|
147
|
+
引用在资源文件中定义的颜色空间标识,有关颜色空间描述见8.3.1,此页不存在,采用RGB作为,默认颜色
|
|
148
|
+
|
|
149
|
+
## Pages
|
|
150
|
+
|
|
151
|
+
页数,有关页数的描述,查看 [PAGE.md](../Pages/PAGE.md)
|
|
152
|
+
|
|
153
|
+
## Outlines
|
|
154
|
+
|
|
155
|
+
大纲
|
|
156
|
+
|
|
157
|
+
## Permissions
|
|
158
|
+
|
|
159
|
+
文档的权限声明
|
|
160
|
+
|
|
161
|
+
### Edit
|
|
162
|
+
|
|
163
|
+
是否允许编辑,默认true
|
|
164
|
+
|
|
165
|
+
### Annot
|
|
166
|
+
|
|
167
|
+
是否允许添加修改或者修改标注 默认true
|
|
168
|
+
|
|
169
|
+
### Export
|
|
170
|
+
|
|
171
|
+
是否允许导出 默认true
|
|
172
|
+
|
|
173
|
+
### Signature
|
|
174
|
+
|
|
175
|
+
是否允许进行数字签名 默认true
|
|
176
|
+
|
|
177
|
+
### Watermark
|
|
178
|
+
|
|
179
|
+
是否允许添加水印 默认true
|
|
180
|
+
|
|
181
|
+
### PrintScreen
|
|
182
|
+
|
|
183
|
+
是否允许截屏 默认true
|
|
184
|
+
|
|
185
|
+
#### Print
|
|
186
|
+
|
|
187
|
+
打印权限,其具体的权限和份数设置由其属性Printable及Copies控制,若不设置Print节点,则默认为可打印,并且打印份数不受限制
|
|
188
|
+
|
|
189
|
+
#### Printable
|
|
190
|
+
|
|
191
|
+
文档是否允许答应 默认true
|
|
192
|
+
|
|
193
|
+
#### Copies
|
|
194
|
+
|
|
195
|
+
打印份数,在Printable为true时有效,若Printable为true并且不设置Copies则打印份数不受限,若Copies为负数,打印份数不受限,当Copies为0是,不允许打印,大于0时则代表实际可打印的份数值
|
|
196
|
+
|
|
197
|
+
### ValidPeriod
|
|
198
|
+
|
|
199
|
+
有效期,即此文档允许访问的期限,其具体日期取决于开始日期和结束日期,其中开始日期不能晚于结束日期,并且开始日期和结束日期最少出现一个。当不设置开始日期时,代表不限制开始日期,当不设置结束日期时代表不限定结束日期;当不设置此节点时,表示开始和结束均不受限
|
|
200
|
+
|
|
201
|
+
#### StartDate
|
|
202
|
+
|
|
203
|
+
有效开始日期
|
|
204
|
+
|
|
205
|
+
#### EndDate
|
|
206
|
+
|
|
207
|
+
有效结束日期
|
|
208
|
+
|
|
209
|
+
## Actions
|
|
210
|
+
|
|
211
|
+
文档关联的动作序列,事件类型应为DO(文档打开,见表52事件类型)
|
|
212
|
+
|
|
213
|
+
## VPreferences
|
|
214
|
+
|
|
215
|
+
文档的视图首选项
|
|
216
|
+
|
|
217
|
+
### PageMode
|
|
218
|
+
|
|
219
|
+
窗口模式,默认None 可取值:
|
|
220
|
+
1. None ----- 常规模式
|
|
221
|
+
2. FullScreen ----- 打开后全文显示
|
|
222
|
+
3. UseOutlines ----- 同时呈现文档大纲
|
|
223
|
+
4. UseThumbs ----- 同时呈现缩略图
|
|
224
|
+
5. UseCustomTags ----- 同时呈现语义结构
|
|
225
|
+
6. UseLayer ----- 同时呈现图层
|
|
226
|
+
7. UseAttachs ----- 同时呈现附件
|
|
227
|
+
8. UseBookmarks ----- 同时呈现书签
|
|
228
|
+
|
|
229
|
+
### PageLayout
|
|
230
|
+
|
|
231
|
+
页面布局模式,默认OneColunmn 取值如下:
|
|
232
|
+
1. OnePage ----- 单页模式
|
|
233
|
+
2. OneColumn ----- 单列模式
|
|
234
|
+
3. TwoPageL ----- 对开模式
|
|
235
|
+
4. TwoPageR ----- 对开靠右模式
|
|
236
|
+
5. TwoColumnL ----- 对开连续模式
|
|
237
|
+
6. TwoColumnR ----- 对开连续靠右模式
|
|
238
|
+
|
|
239
|
+
### TabDisplay
|
|
240
|
+
|
|
241
|
+
标题栏显示模式,默认FileName 取值如下:
|
|
242
|
+
1. FileName ----- 文件名称
|
|
243
|
+
2. DocTitle ----- 呈现元数据中的Title属性
|
|
244
|
+
当设置为DocTitle但不存在Title属性时,按照FileName处理
|
|
245
|
+
|
|
246
|
+
### HideToolbar
|
|
247
|
+
|
|
248
|
+
是否隐藏工具栏 默认值false
|
|
249
|
+
|
|
250
|
+
### HideMenubar
|
|
251
|
+
|
|
252
|
+
是否隐藏菜单栏 默认值false
|
|
253
|
+
|
|
254
|
+
### HideWindowUI
|
|
255
|
+
|
|
256
|
+
是否隐藏主窗口之外的其它窗体组件 默认值false
|
|
257
|
+
|
|
258
|
+
### ZoomMode
|
|
259
|
+
|
|
260
|
+
自动缩放模式 默认值 Default 可选值如下:
|
|
261
|
+
1. Default ----- 默认缩放
|
|
262
|
+
2. FitHeight ----- 适合高度
|
|
263
|
+
3. FitWidth ----- 适合宽度
|
|
264
|
+
4. FitRect ---- 适合区域
|
|
265
|
+
|
|
266
|
+
### Zoom
|
|
267
|
+
|
|
268
|
+
文档缩放率
|
|
269
|
+
|
|
270
|
+
## Bookmarks
|
|
271
|
+
|
|
272
|
+
文档的书签集,包含一组书签
|
|
273
|
+
|
|
274
|
+
### Name
|
|
275
|
+
|
|
276
|
+
书签名称
|
|
277
|
+
|
|
278
|
+
### Dest
|
|
279
|
+
|
|
280
|
+
书签对应的文档位置 见表54
|
|
281
|
+
|
|
282
|
+
## Annotations
|
|
283
|
+
|
|
284
|
+
指向注释列表文件,有关注释描述 第15章
|
|
285
|
+
|
|
286
|
+
## CustomTags
|
|
287
|
+
|
|
288
|
+
指向自定义标引列表文件,有关自定义标引描述 第16章
|
|
289
|
+
|
|
290
|
+
## Attachments
|
|
291
|
+
|
|
292
|
+
指向附件列表文件。有关附件描述 第20章
|
|
293
|
+
|
|
294
|
+
## Extensions
|
|
295
|
+
|
|
296
|
+
指向扩展列表文件,有关扩展描述 第17章
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import VaildOFDError from 'src/errors/OFDErrors';
|
|
2
|
+
import { Element } from 'xml-js';
|
|
3
|
+
|
|
4
|
+
import { replacePathPriex } from '../utils';
|
|
5
|
+
|
|
6
|
+
import OFDElement from '../OFDElement';
|
|
7
|
+
// import OFDXMl from '../ofd/OFDXml';
|
|
8
|
+
// import { OFD_PATH } from '../constant';
|
|
9
|
+
|
|
10
|
+
class PublicResXml extends OFDElement {
|
|
11
|
+
/**
|
|
12
|
+
* PublicRes.xml文件
|
|
13
|
+
* @date 2022/7/27 - 09:41:22
|
|
14
|
+
*
|
|
15
|
+
* @type {Element[]}
|
|
16
|
+
*/
|
|
17
|
+
static fileName: string;
|
|
18
|
+
constructor(documnetResElements: Element[]) {
|
|
19
|
+
super();
|
|
20
|
+
this.setPublicResXml(documnetResElements);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
setRootPath(publicResXml: Element) {
|
|
24
|
+
if (publicResXml?.elements) {
|
|
25
|
+
publicResXml.elements.forEach(item => {
|
|
26
|
+
if (item?.name) {
|
|
27
|
+
const { name, attributes, elements } = item;
|
|
28
|
+
// 设置资源路径
|
|
29
|
+
if (name === this.OFDCommonQName('Res')) {
|
|
30
|
+
const rootPath = replacePathPriex(
|
|
31
|
+
OFDElement.STLoc,
|
|
32
|
+
`${String(attributes?.BaseLoc || '').replace(/^\/Doc_0\/|^Doc_0\//, '')}`,
|
|
33
|
+
);
|
|
34
|
+
OFDElement.PublicResRoot = rootPath;
|
|
35
|
+
if (elements && elements.length) {
|
|
36
|
+
this.setRes(elements, rootPath);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
setPublicResXml(publicResElements: Element[]): void {
|
|
45
|
+
if (publicResElements?.length && publicResElements.length === 1) {
|
|
46
|
+
const publicResXmlPath = replacePathPriex(OFDElement.STLoc, `${publicResElements[0].text}`);
|
|
47
|
+
this.setRootPath(OFDElement.OFDElements[publicResXmlPath]);
|
|
48
|
+
} else {
|
|
49
|
+
throw new VaildOFDError(9999, '获取PublicRes失败');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// getPages() {
|
|
54
|
+
// const res = this.getElements('DocRoot', PagesXml.fileName);
|
|
55
|
+
// console.log('getPages:', res);
|
|
56
|
+
// if (res) {
|
|
57
|
+
// return new DocumnetXml(this.OFDElements, res);
|
|
58
|
+
// }
|
|
59
|
+
// return null;
|
|
60
|
+
// }
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export default PublicResXml;
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|