@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.
Files changed (213) hide show
  1. package/.babelrc +14 -0
  2. package/.eslintignore +2 -0
  3. package/.eslintrc.json +18 -0
  4. package/.prettierrc.json +9 -0
  5. package/dist/OFD.d.ts +8 -0
  6. package/dist/Pages.d.ts +7 -0
  7. package/dist/RootDocumnet.d.ts +1 -0
  8. package/dist/bundle.cjs.js +64123 -0
  9. package/dist/bundle.esm.js +64115 -0
  10. package/dist/bundle.iife.js +14743 -0
  11. package/dist/bundle.umd.js +64045 -0
  12. package/dist/constant/index.d.ts +7 -0
  13. package/dist/constant.d.ts +6 -0
  14. package/dist/core/ofd-core/Annotations/AnnotationsXml.d.ts +16 -0
  15. package/dist/core/ofd-core/Asn.1Utils.d.ts +47 -0
  16. package/dist/core/ofd-core/Documents/DocumentResXml.d.ts +15 -0
  17. package/dist/core/ofd-core/Documents/DocumnetXml.d.ts +25 -0
  18. package/dist/core/ofd-core/Documents/PublicResXml.d.ts +15 -0
  19. package/dist/core/ofd-core/OFDElement.d.ts +232 -0
  20. package/dist/core/ofd-core/Ofd/OFDXml.d.ts +19 -0
  21. package/dist/core/ofd-core/Pages/PageXml.d.ts +20 -0
  22. package/dist/core/ofd-core/Signatures/Signatures.d.ts +20 -0
  23. package/dist/core/ofd-core/TemplatePages/TemplatePages.d.ts +20 -0
  24. package/dist/core/ofd-core/constant.d.ts +29 -0
  25. package/dist/core/ofd-core/utils.d.ts +21 -0
  26. package/dist/dicom/dicom.d.ts +15 -0
  27. package/dist/dicom/index.d.ts +1 -0
  28. package/dist/errors/ErrorHandle.d.ts +6 -0
  29. package/dist/errors/ErrorMsg.d.ts +16 -0
  30. package/dist/errors/FetchErrors.d.ts +4 -0
  31. package/dist/errors/MimeError.d.ts +4 -0
  32. package/dist/errors/OFDErrors.d.ts +4 -0
  33. package/dist/errors/UnzipErrors.d.ts +4 -0
  34. package/dist/errors/XmlErrors.d.ts +4 -0
  35. package/dist/errors/error-msg.d.ts +9 -0
  36. package/dist/es.d.ts +2 -0
  37. package/dist/index.d.ts +6 -0
  38. package/dist/lib/ParseFile.d.ts +7 -0
  39. package/dist/lib/UnitCoversion.d.ts +31 -0
  40. package/dist/lib/asn1/Asn.1.d.ts +34 -0
  41. package/dist/lib/asn1/Stream.d.ts +27 -0
  42. package/dist/lib/asn1/asn1.d.ts +4 -0
  43. package/dist/lib/asn1/base64.d.ts +4 -0
  44. package/dist/lib/asn1/hex.d.ts +5 -0
  45. package/dist/lib/asn1/index.d.ts +5 -0
  46. package/dist/lib/asn1/int10.d.ts +34 -0
  47. package/dist/lib/asn1/oids.d.ts +2 -0
  48. package/dist/lib/asn1/string-cut.d.ts +2 -0
  49. package/dist/lib/decode-html.d.ts +7 -0
  50. package/dist/lib/fetch.d.ts +17 -0
  51. package/dist/lib/is-element.d.ts +5 -0
  52. package/dist/lib/load-files.d.ts +3 -0
  53. package/dist/lib/load-opentype.d.ts +34 -0
  54. package/dist/lib/load-script.d.ts +1 -0
  55. package/dist/lib/mime.d.ts +8 -0
  56. package/dist/lib/read-buffer.d.ts +2 -0
  57. package/dist/lib/toFixeds.d.ts +7 -0
  58. package/dist/libs/Asn.1Utils.d.ts +47 -0
  59. package/dist/libs/asn1/Asn.1.d.ts +34 -0
  60. package/dist/libs/asn1/Stream.d.ts +27 -0
  61. package/dist/libs/asn1/asn1.d.ts +4 -0
  62. package/dist/libs/asn1/base64.d.ts +4 -0
  63. package/dist/libs/asn1/hex.d.ts +5 -0
  64. package/dist/libs/asn1/index.d.ts +5 -0
  65. package/dist/libs/asn1/int10.d.ts +34 -0
  66. package/dist/libs/asn1/oids.d.ts +2 -0
  67. package/dist/libs/asn1/string-cut.d.ts +2 -0
  68. package/dist/libs/decode-html.d.ts +7 -0
  69. package/dist/libs/fetch.d.ts +17 -0
  70. package/dist/libs/mime.d.ts +8 -0
  71. package/dist/libs/ofdArray.d.ts +10 -0
  72. package/dist/libs/ofdImageObject.d.ts +9 -0
  73. package/dist/libs/ofdLayer.d.ts +3 -0
  74. package/dist/libs/ofdName.d.ts +17 -0
  75. package/dist/libs/ofdPathObject.d.ts +11 -0
  76. package/dist/libs/ofdTextObject.d.ts +6 -0
  77. package/dist/libs/parseAnnotation.d.ts +5 -0
  78. package/dist/libs/parseColor.d.ts +5 -0
  79. package/dist/libs/parsePageArea.d.ts +17 -0
  80. package/dist/libs/parser-elements.d.ts +8 -0
  81. package/dist/libs/parserElements.d.ts +8 -0
  82. package/dist/libs/pipeExtensions.d.ts +4 -0
  83. package/dist/libs/read-buffer.d.ts +2 -0
  84. package/dist/main.d.ts +15 -0
  85. package/dist/ofd/ConverterDpi.d.ts +16 -0
  86. package/dist/ofd/index.d.ts +1 -0
  87. package/dist/ofd/ofd-utils.d.ts +137 -0
  88. package/dist/ofd/ofd.d.ts +35 -0
  89. package/dist/ofd/parse-ofd.d.ts +18 -0
  90. package/dist/ofd/render.d.ts +18 -0
  91. package/dist/ofd/svg-image.d.ts +12 -0
  92. package/dist/ofd/svg-path.d.ts +5 -0
  93. package/dist/ofd/svg-text.d.ts +8 -0
  94. package/dist/ofd.parse.d.ts +6 -0
  95. package/dist/ofd.xml.d.ts +1 -0
  96. package/dist/ofdParse.d.ts +6 -0
  97. package/dist/pipe/annotations.d.ts +13 -0
  98. package/dist/pipe/attachments.d.ts +13 -0
  99. package/dist/pipe/commonData.d.ts +18 -0
  100. package/dist/pipe/customTags.d.ts +14 -0
  101. package/dist/pipe/extensions.d.ts +14 -0
  102. package/dist/pipe/output.d.ts +7 -0
  103. package/dist/pipe/pages.d.ts +13 -0
  104. package/dist/pipe/permissions.d.ts +14 -0
  105. package/dist/pipe/pipeline.d.ts +63 -0
  106. package/dist/pipe/startPipe.d.ts +11 -0
  107. package/dist/xml/index.d.ts +2 -0
  108. package/dist/xml/render.d.ts +6 -0
  109. package/dist/xml/xml.d.ts +18 -0
  110. package/package.json +47 -0
  111. package/public/index.html +75 -0
  112. package/public/opentype.min.js +2 -0
  113. package/rollup.config.dev.mjs +47 -0
  114. package/rollup.config.mjs +70 -0
  115. package/src/constant/index.ts +13 -0
  116. package/src/core/ofd-core/Annotations/Annotation.km +206 -0
  117. package/src/core/ofd-core/Annotations/Annotations.km +59 -0
  118. package/src/core/ofd-core/Annotations/Annotations.md +13 -0
  119. package/src/core/ofd-core/Annotations/AnnotationsXml.ts +114 -0
  120. package/src/core/ofd-core/Asn.1Utils.ts +225 -0
  121. package/src/core/ofd-core/Documents/DocumentResXml.ts +55 -0
  122. package/src/core/ofd-core/Documents/Documnet.km +862 -0
  123. package/src/core/ofd-core/Documents/DocumnetXml.ts +118 -0
  124. package/src/core/ofd-core/Documents/Documnets.md +296 -0
  125. package/src/core/ofd-core/Documents/PublicResXml.ts +63 -0
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. package/src/core/ofd-core/OFDElement.ts +724 -0
  133. package/src/core/ofd-core/Ofd/CT_DocInfo.km +197 -0
  134. package/src/core/ofd-core/Ofd/OFD.km +114 -0
  135. package/src/core/ofd-core/Ofd/OFD.md +99 -0
  136. package/src/core/ofd-core/Ofd/OFDXml.ts +69 -0
  137. package/src/core/ofd-core/Pages/PAGE.md +40 -0
  138. package/src/core/ofd-core/Pages/PageXml.ts +59 -0
  139. package/src/core/ofd-core/Signatures/Signature.km +308 -0
  140. package/src/core/ofd-core/Signatures/Signature.md +21 -0
  141. package/src/core/ofd-core/Signatures/Signatures.km +315 -0
  142. package/src/core/ofd-core/Signatures/Signatures.md +24 -0
  143. package/src/core/ofd-core/Signatures/Signatures.ts +247 -0
  144. package/src/core/ofd-core/TemplatePages/TemplatePages.ts +56 -0
  145. package/src/core/ofd-core/asn.md +60 -0
  146. package/src/core/ofd-core/constant.ts +35 -0
  147. package/src/core/ofd-core/index.d.ts +867 -0
  148. package/src/core/ofd-core/utils.ts +86 -0
  149. package/src/dicom/dicom.ts +42 -0
  150. package/src/dicom/index.ts +1 -0
  151. package/src/errors/ErrorHandle.ts +14 -0
  152. package/src/errors/FetchErrors.ts +8 -0
  153. package/src/errors/MimeError.ts +9 -0
  154. package/src/errors/OFDErrors.ts +11 -0
  155. package/src/errors/UnzipErrors.ts +9 -0
  156. package/src/errors/XmlErrors.ts +11 -0
  157. package/src/errors/error-msg.ts +17 -0
  158. package/src/es.ts +3 -0
  159. package/src/global.d.ts +7 -0
  160. package/src/index.ts +7 -0
  161. package/src/lib/ParseFile.ts +12 -0
  162. package/src/lib/README.md +69 -0
  163. package/src/lib/UnitCoversion.ts +55 -0
  164. package/src/lib/asn1/Asn.1.ts +284 -0
  165. package/src/lib/asn1/README.md +1 -0
  166. package/src/lib/asn1/Stream.ts +314 -0
  167. package/src/lib/asn1/asn1.ts +120 -0
  168. package/src/lib/asn1/base64.ts +97 -0
  169. package/src/lib/asn1/hex.ts +60 -0
  170. package/src/lib/asn1/index.ts +5 -0
  171. package/src/lib/asn1/int10.ts +103 -0
  172. package/src/lib/asn1/oids.ts +6164 -0
  173. package/src/lib/asn1/string-cut.ts +8 -0
  174. package/src/lib/decode-html.ts +37 -0
  175. package/src/lib/fetch.ts +70 -0
  176. package/src/lib/is-element.ts +13 -0
  177. package/src/lib/jbig/README.md +1 -0
  178. package/src/lib/jbig/arithmetic_decoder.js +184 -0
  179. package/src/lib/jbig/base_stream.js +117 -0
  180. package/src/lib/jbig/ccitt.js +1068 -0
  181. package/src/lib/jbig/ccitt_stream.js +60 -0
  182. package/src/lib/jbig/compatibility.js +108 -0
  183. package/src/lib/jbig/core_utils.js +591 -0
  184. package/src/lib/jbig/decode_stream.js +184 -0
  185. package/src/lib/jbig/is_node.js +28 -0
  186. package/src/lib/jbig/jbig2.js +2582 -0
  187. package/src/lib/jbig/jbig2_stream.js +78 -0
  188. package/src/lib/jbig/primitives.js +441 -0
  189. package/src/lib/jbig/stream.js +101 -0
  190. package/src/lib/jbig/util.js +1231 -0
  191. package/src/lib/load-files.ts +26 -0
  192. package/src/lib/load-opentype.ts +161 -0
  193. package/src/lib/load-script.ts +33 -0
  194. package/src/lib/mime.ts +97 -0
  195. package/src/lib/read-buffer.ts +19 -0
  196. package/src/lib/toFixeds.ts +56 -0
  197. package/src/ofd/ConverterDpi.ts +35 -0
  198. package/src/ofd/OFD.md +38 -0
  199. package/src/ofd/TODO.md +10 -0
  200. package/src/ofd/index.ts +1 -0
  201. package/src/ofd/ofd-utils.ts +627 -0
  202. package/src/ofd/ofd.demo.md +12 -0
  203. package/src/ofd/ofd.ts +200 -0
  204. package/src/ofd/ofdxml.km +162 -0
  205. package/src/ofd/parse-ofd.ts +103 -0
  206. package/src/ofd/render.ts +393 -0
  207. package/src/ofd/svg-image.ts +318 -0
  208. package/src/ofd/svg-path.ts +283 -0
  209. package/src/ofd/svg-text.ts +272 -0
  210. package/src/xml/index.ts +3 -0
  211. package/src/xml/render.ts +171 -0
  212. package/src/xml/xml.ts +136 -0
  213. 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,线条连接样式的取值和显示效果关系表见![图表22](./表22线条连接样式.png) 取值如下:
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 线条虚线的重复样式,数组中共含两个值,第一个值代表虚线线段的长度,第二个值代表虚线间隔的长度。默认值为空。线条虚线样式的控制效果见![表23](./表23线条虚线样式.png)
83
+
84
+ ###### Cap
85
+
86
+ 可选 xs:string 线端点样式,枚举值,指定了一条线的端点样式。默认值为Butt。线条端点样式取值与效果之间关系见![表24](./表24线条端点样式.png)可取值为:
87
+
88
+ 1. Butt
89
+ 2. Round
90
+ 3. Square
91
+
92
+
93
+ ###### MiterLimit
94
+
95
+ 可选 xs:double Join为Miter时小角度结合点长度的截断值,默认值为3.528。当Join不等于Miter 时该参数无效 如图![表23](./表23结合点长度.png)
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;