@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,137 @@
|
|
|
1
|
+
import { Res } from '../core/ofd-core';
|
|
2
|
+
/**
|
|
3
|
+
* @desc 字体family
|
|
4
|
+
*/
|
|
5
|
+
export declare const FONT_FAMILY: {
|
|
6
|
+
楷体: string;
|
|
7
|
+
kaiti: string;
|
|
8
|
+
Kai: string;
|
|
9
|
+
simsun: string;
|
|
10
|
+
宋体: string;
|
|
11
|
+
黑体: string;
|
|
12
|
+
仿宋: string;
|
|
13
|
+
小标宋体: string;
|
|
14
|
+
方正小标宋_gbk: string;
|
|
15
|
+
仿宋_gb2312: string;
|
|
16
|
+
楷体_gb2312: string;
|
|
17
|
+
华文楷体: string;
|
|
18
|
+
华文中宋: string;
|
|
19
|
+
couriernew: string;
|
|
20
|
+
'courier new': string;
|
|
21
|
+
};
|
|
22
|
+
export declare const pageZIndex: {
|
|
23
|
+
Background: number;
|
|
24
|
+
Body: number;
|
|
25
|
+
WatermarkAnnot: number;
|
|
26
|
+
Foreground: number;
|
|
27
|
+
Stamp: number;
|
|
28
|
+
Watermark: number;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* 设置style样式文件
|
|
32
|
+
* @param ele
|
|
33
|
+
* @param styles
|
|
34
|
+
*/
|
|
35
|
+
export declare const setStyle: (ele: HTMLElement | SVGImageElement | SVGSVGElement, styles: {
|
|
36
|
+
[k: string]: string | number;
|
|
37
|
+
}) => void;
|
|
38
|
+
export declare const converterDpi: (p: string | number) => number;
|
|
39
|
+
export declare const parseCtm: (ctm: string) => string[] | null;
|
|
40
|
+
export declare const parseAbbreviatedData: (abbreviatedData: string) => string | null;
|
|
41
|
+
/**
|
|
42
|
+
* 格式化ST_Box数据
|
|
43
|
+
* @param ST_Box
|
|
44
|
+
* @returns
|
|
45
|
+
*/
|
|
46
|
+
export declare const formatSTBox: (a: string, shouldAds?: boolean) => {
|
|
47
|
+
left: number;
|
|
48
|
+
top: number;
|
|
49
|
+
width: number;
|
|
50
|
+
height: number;
|
|
51
|
+
};
|
|
52
|
+
export declare const getRes: (Res: Res[] | null, resId: string, type: string) => Res | null;
|
|
53
|
+
export declare const getFont: (Fonts: Res[] | null, resId: string) => Res | null;
|
|
54
|
+
export declare const getDrawParam: (DrawParam: Res[] | null, resId: string) => Res | null;
|
|
55
|
+
export declare const getMultiMedia: (MultiMedias: Res[] | null, resId: string) => Res | null;
|
|
56
|
+
/**
|
|
57
|
+
* 替换html可识别family
|
|
58
|
+
* @param fontObj
|
|
59
|
+
* @returns
|
|
60
|
+
*/
|
|
61
|
+
export declare const getFontFamily: (fontInfo?: Res) => any;
|
|
62
|
+
/**
|
|
63
|
+
* 格式化颜色
|
|
64
|
+
* @param color
|
|
65
|
+
* @returns
|
|
66
|
+
*/
|
|
67
|
+
export declare const parseColor: (color: string) => string;
|
|
68
|
+
/**
|
|
69
|
+
*
|
|
70
|
+
* @param textCodes
|
|
71
|
+
* @param cgTransform
|
|
72
|
+
* @param ctm
|
|
73
|
+
* @param boundary
|
|
74
|
+
* @param compositeObjectBoundary
|
|
75
|
+
* @param compositeObjectCTM
|
|
76
|
+
* @returns
|
|
77
|
+
*/
|
|
78
|
+
export declare const calTextPoint: (textCode: {
|
|
79
|
+
[k: string]: any;
|
|
80
|
+
}, cgTransform: {
|
|
81
|
+
[k: string]: any;
|
|
82
|
+
}, ctm: string | string[], Boundary: string, compositeObjectCTM?: any, isSelfFont?: boolean) => any[];
|
|
83
|
+
export declare const drawBMPImage: (d: string) => Promise<string>;
|
|
84
|
+
/**
|
|
85
|
+
* 绘制自定义字体
|
|
86
|
+
* @param path
|
|
87
|
+
* @param horiUnderlinePosition
|
|
88
|
+
* @param units_per_EM
|
|
89
|
+
* @param xsize
|
|
90
|
+
* @param ysize
|
|
91
|
+
* @param color
|
|
92
|
+
* @param defaultFillOpacity
|
|
93
|
+
* @returns
|
|
94
|
+
*/
|
|
95
|
+
export declare const drawGlyph: (path: string, horiUnderlinePosition: string, units_per_EM: number, xsize: number, ysize: number, color: string, defaultFillOpacity: string) => {
|
|
96
|
+
img: SVGSVGElement;
|
|
97
|
+
yScale: number;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* @description 判断两个矩形是否交叉
|
|
101
|
+
* @param rect1
|
|
102
|
+
* @param rect2
|
|
103
|
+
* @returns
|
|
104
|
+
*/
|
|
105
|
+
export declare function doRectanglesIntersect(rect1: {
|
|
106
|
+
left: number;
|
|
107
|
+
top: number;
|
|
108
|
+
width: number;
|
|
109
|
+
height: number;
|
|
110
|
+
}, rect2: {
|
|
111
|
+
left: number;
|
|
112
|
+
top: number;
|
|
113
|
+
width: number;
|
|
114
|
+
height: number;
|
|
115
|
+
}): boolean;
|
|
116
|
+
/**
|
|
117
|
+
* @description 计算两个矩形交叉位置
|
|
118
|
+
* @param rect1
|
|
119
|
+
* @param rect2
|
|
120
|
+
* @returns
|
|
121
|
+
*/
|
|
122
|
+
export declare function getIntersection(rect1: {
|
|
123
|
+
left: number;
|
|
124
|
+
top: number;
|
|
125
|
+
width: number;
|
|
126
|
+
height: number;
|
|
127
|
+
}, rect2: {
|
|
128
|
+
left: number;
|
|
129
|
+
top: number;
|
|
130
|
+
width: number;
|
|
131
|
+
height: number;
|
|
132
|
+
}): {
|
|
133
|
+
left: number;
|
|
134
|
+
top: number;
|
|
135
|
+
width: number;
|
|
136
|
+
height: number;
|
|
137
|
+
} | null;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ResultData } from '../core/ofd-core';
|
|
2
|
+
interface Options {
|
|
3
|
+
file: string | File | ArrayBuffer;
|
|
4
|
+
ofd?: string | File | ArrayBuffer;
|
|
5
|
+
content?: Element;
|
|
6
|
+
id?: string;
|
|
7
|
+
fail?: (err: Error) => undefined;
|
|
8
|
+
success?: (s: HTMLElement) => undefined;
|
|
9
|
+
screenWidth?: number;
|
|
10
|
+
requestOptions?: undefined | {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
};
|
|
13
|
+
requestData?: undefined | {
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
};
|
|
16
|
+
responseFilter?: (key: {
|
|
17
|
+
[key: string]: string | number;
|
|
18
|
+
}) => string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 直接输出渲染节点
|
|
22
|
+
* @param param0
|
|
23
|
+
* @returns
|
|
24
|
+
*/
|
|
25
|
+
export declare const getSVGDoms: (r: Options) => Promise<HTMLElement>;
|
|
26
|
+
/**
|
|
27
|
+
* 输出格式化OFD JSON
|
|
28
|
+
* @param param0
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
declare const OFDParse: (p: Options) => Promise<{
|
|
32
|
+
code: number;
|
|
33
|
+
data: ResultData;
|
|
34
|
+
}>;
|
|
35
|
+
export default OFDParse;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import JSZip from 'jszip';
|
|
2
|
+
import { ResultData } from '../core/ofd-core';
|
|
3
|
+
interface OFDXML {
|
|
4
|
+
'OFD.xml': any;
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* @description 解析ofd.xml
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* @description 解析ofd xml 文件
|
|
12
|
+
* @param data OFD解压出来的文件
|
|
13
|
+
* @param zip jszip 实例化对象
|
|
14
|
+
* @param isParse true:直接返回解析json,false 返回dom节点
|
|
15
|
+
* @param isSeal true:签章渲染,false:非签章渲染
|
|
16
|
+
*/
|
|
17
|
+
declare const parse: (data: OFDXML, zip: JSZip, defaultWidth?: number, isParse?: boolean, isSeal?: boolean) => Promise<HTMLElement | ResultData>;
|
|
18
|
+
export default parse;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ResultData, Page } from '../core/ofd-core/index.d';
|
|
2
|
+
/**
|
|
3
|
+
* 渲染OFD
|
|
4
|
+
* @param data OFD元数据
|
|
5
|
+
* @param zip 解压
|
|
6
|
+
* @param defaultWall 最大宽度
|
|
7
|
+
* @param isSeal 是否是签章渲染
|
|
8
|
+
*/
|
|
9
|
+
export declare const OFDRender: (data: ResultData, defaultWidth?: number, isSeal?: boolean) => HTMLDivElement;
|
|
10
|
+
/**
|
|
11
|
+
* 序列化绘制 Template pages
|
|
12
|
+
* @param pages
|
|
13
|
+
* @param data
|
|
14
|
+
* @param zIndex
|
|
15
|
+
* @param pageDivs
|
|
16
|
+
*/
|
|
17
|
+
export declare const renderTplsPage: (pages: Page[], data: ResultData, zIndex: number) => any[];
|
|
18
|
+
export declare const renderPage: (page: Page, data: ResultData, content?: HTMLElement) => any[];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ResultData, LayerPageBlock, StampAnnot } from '../core/ofd-core/index.d';
|
|
2
|
+
interface PictureInfo {
|
|
3
|
+
type: string;
|
|
4
|
+
data: Uint8Array;
|
|
5
|
+
width: string;
|
|
6
|
+
height: string;
|
|
7
|
+
}
|
|
8
|
+
declare const renderImageObject: (imageObject: LayerPageBlock & {
|
|
9
|
+
[k: string]: any;
|
|
10
|
+
}, data: ResultData, content: HTMLElement, isStampAnnot?: boolean, StampId?: string, PageRef?: string, compositeObjectCTM?: any) => Promise<false | undefined>;
|
|
11
|
+
export declare const renderBitImage: (pictureInfo: PictureInfo, Box: StampAnnot, content: HTMLElement) => HTMLCanvasElement | undefined;
|
|
12
|
+
export default renderImageObject;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ResultData, LayerPageBlock } from '../core/ofd-core/index.d';
|
|
2
|
+
declare const renderPathObject: (pathObject: LayerPageBlock & {
|
|
3
|
+
[k: string]: any;
|
|
4
|
+
}, data: ResultData, content: HTMLElement, drawLineWidth?: number, drawFillColor?: string, drawStrokeColor?: string, isStampAnnot?: boolean, compositeObjectAlpha?: any, compositeObjectBoundary?: any, compositeObjectCTM?: any) => SVGSVGElement | undefined;
|
|
5
|
+
export default renderPathObject;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ResultData, LayerPageBlock } from '../core/ofd-core/index.d';
|
|
2
|
+
/**
|
|
3
|
+
* 绘制Text
|
|
4
|
+
*/
|
|
5
|
+
declare const renderTextObject: (info: LayerPageBlock & {
|
|
6
|
+
[k: string]: any;
|
|
7
|
+
}, data: ResultData, content: HTMLElement, drawFillColor?: string, drawStrokeColor?: string) => void;
|
|
8
|
+
export default renderTextObject;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default OFD;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Base from './pipeline';
|
|
2
|
+
import type { PipeLineData } from './pipeline';
|
|
3
|
+
/**
|
|
4
|
+
* @description Annotations数据
|
|
5
|
+
* ```
|
|
6
|
+
*
|
|
7
|
+
* ```
|
|
8
|
+
*/
|
|
9
|
+
declare class Annotations extends Base {
|
|
10
|
+
constructor();
|
|
11
|
+
resolveData(data: PipeLineData): void;
|
|
12
|
+
}
|
|
13
|
+
export default Annotations;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Base from './pipeline';
|
|
2
|
+
import type { PipeLineData } from './pipeline';
|
|
3
|
+
/**
|
|
4
|
+
* @description Attachments附件列表数据
|
|
5
|
+
* ```
|
|
6
|
+
*
|
|
7
|
+
* ```
|
|
8
|
+
*/
|
|
9
|
+
declare class Attachments extends Base {
|
|
10
|
+
constructor();
|
|
11
|
+
resolveData(data: PipeLineData): void;
|
|
12
|
+
}
|
|
13
|
+
export default Attachments;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import Base from './pipeline';
|
|
2
|
+
import type { PipeLineData } from './pipeline';
|
|
3
|
+
/**
|
|
4
|
+
* @description 文档公共数据
|
|
5
|
+
* ```
|
|
6
|
+
* MaxUnitID: 当前文档中所有对象标识最大值,初始值为0。MaxUnitID主要用于文档编辑,在向文档中新增加一个对象时,需要分配一个新的标识,新标识取值宜为MaxUnitID+1,同时需要修改此MaxUnitID值。
|
|
7
|
+
* PageArea:指定该文档页面区域的默认大小和位置。
|
|
8
|
+
* PublicRes:公共资源序列,每个节点指向OFD包内的一个资源描述文档。
|
|
9
|
+
* DocumnetRes:文档资源序列,每个节点指向OFD包内的一个资源描述文档。
|
|
10
|
+
* TemplatePage:模版页序列,为一系列模版页集合,模版页内容结构和普通页相同。
|
|
11
|
+
* DefaultCS:引用在资源文件中定义的颜色空间标识。
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
declare class CommonData extends Base {
|
|
15
|
+
constructor();
|
|
16
|
+
resolveData(data: PipeLineData): void;
|
|
17
|
+
}
|
|
18
|
+
export default CommonData;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import Base from './pipeline';
|
|
2
|
+
import type { PipeLineData } from './pipeline';
|
|
3
|
+
/**
|
|
4
|
+
* @description CustomTags自定义标引文件列表
|
|
5
|
+
* 外部系统或用户可以添加自定义的标记和信息,从而达到与其他系统、数据进行交互的目的并扩展应用。一个文档可以带有多个自定义标引。
|
|
6
|
+
* ```
|
|
7
|
+
*
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
declare class CustomTags extends Base {
|
|
11
|
+
constructor();
|
|
12
|
+
resolveData(data: PipeLineData): void;
|
|
13
|
+
}
|
|
14
|
+
export default CustomTags;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import Base from './pipeline';
|
|
2
|
+
import type { PipeLineData } from './pipeline';
|
|
3
|
+
/**
|
|
4
|
+
* @description Extensions自定义标引文件列表
|
|
5
|
+
* 扩展信息列表的人口点在 7.5 文档根节点中定义。扩展信息列表文件的根节点名为 Extensions,其下由0到多个扩展信息节点(Extension)组成,扩展信息列表的根节点结构如图 83 所示。
|
|
6
|
+
* ```
|
|
7
|
+
*
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
declare class Extensions extends Base {
|
|
11
|
+
constructor();
|
|
12
|
+
resolveData(data: PipeLineData): void;
|
|
13
|
+
}
|
|
14
|
+
export default Extensions;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Base from './pipeline';
|
|
2
|
+
import type { PipeLineData } from './pipeline';
|
|
3
|
+
/**
|
|
4
|
+
* @description Pages数据
|
|
5
|
+
* ```
|
|
6
|
+
*
|
|
7
|
+
* ```
|
|
8
|
+
*/
|
|
9
|
+
declare class Pages extends Base {
|
|
10
|
+
constructor();
|
|
11
|
+
resolveData(data: PipeLineData): void;
|
|
12
|
+
}
|
|
13
|
+
export default Pages;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import Base from './pipeline';
|
|
2
|
+
import type { PipeLineData } from './pipeline';
|
|
3
|
+
/**
|
|
4
|
+
* @description Permissions
|
|
5
|
+
* 本标准支持设置文档权限声明(Permissions)节点,以达到文档防扩散等应用目的。文档权限声明结构如图 9所示。
|
|
6
|
+
* ```
|
|
7
|
+
*
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
declare class Permissions extends Base {
|
|
11
|
+
constructor();
|
|
12
|
+
resolveData(data: PipeLineData): void;
|
|
13
|
+
}
|
|
14
|
+
export default Permissions;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { Elements } from 'src/types.d';
|
|
2
|
+
export type PipeLineData = {
|
|
3
|
+
rootElements: Elements[];
|
|
4
|
+
OFDDocumnet?: any;
|
|
5
|
+
[k: string]: any;
|
|
6
|
+
};
|
|
7
|
+
type Pipeline<T = any> = {
|
|
8
|
+
/**
|
|
9
|
+
* 实现该方法可以将数据通过管道一层层传递下去
|
|
10
|
+
* @param data
|
|
11
|
+
*/
|
|
12
|
+
push(data?: PipeLineData): void;
|
|
13
|
+
/**
|
|
14
|
+
* 将多节管道链接起来
|
|
15
|
+
* e.g.
|
|
16
|
+
* const app = new BaseApp();
|
|
17
|
+
* app.pipe(new TestApp1()).pipe(new TestApp2()).pipe(new TestApp3()).pipe(new Output()).pipe(new End())
|
|
18
|
+
* @param _next
|
|
19
|
+
*/
|
|
20
|
+
pipe(_next: Pipeline<T>): Pipeline<T>;
|
|
21
|
+
/**
|
|
22
|
+
* 用于接受从上一节管道传递下来的数据,可进行加工后传递到下一节管道
|
|
23
|
+
* @param data
|
|
24
|
+
*/
|
|
25
|
+
resolveData(data: PipeLineData): void;
|
|
26
|
+
/**
|
|
27
|
+
* 获取最终数据
|
|
28
|
+
* @param data
|
|
29
|
+
*/
|
|
30
|
+
getCompleteData(): PipeLineData;
|
|
31
|
+
};
|
|
32
|
+
declare class Base<P = PipeLineData> implements Pipeline<P> {
|
|
33
|
+
constructor(data?: PipeLineData);
|
|
34
|
+
protected data: any;
|
|
35
|
+
/**
|
|
36
|
+
* 仅内部使用,下一节管道的引用
|
|
37
|
+
*/
|
|
38
|
+
protected next: Pipeline<PipeLineData> | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* 接受到数据后,使用 resolveData 处理获得新数据后,将新数据推送到下一节管道
|
|
41
|
+
* @param data
|
|
42
|
+
*/
|
|
43
|
+
push(data: PipeLineData): void;
|
|
44
|
+
/**
|
|
45
|
+
* 链接管道
|
|
46
|
+
* 让 pipe 的返回值始终是下一节管道的引用,这样就可以链式调用
|
|
47
|
+
* @param _next
|
|
48
|
+
* @returns
|
|
49
|
+
*/
|
|
50
|
+
pipe(_next: Pipeline<P>): Pipeline<P>;
|
|
51
|
+
/**
|
|
52
|
+
* 数据处理,返回最新的数据对象
|
|
53
|
+
* @param data
|
|
54
|
+
* @returns
|
|
55
|
+
*/
|
|
56
|
+
resolveData(data: PipeLineData): void;
|
|
57
|
+
/**
|
|
58
|
+
* 数据处理,返回最新的数据对象
|
|
59
|
+
* @returns
|
|
60
|
+
*/
|
|
61
|
+
getCompleteData(): any;
|
|
62
|
+
}
|
|
63
|
+
export default Base;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Element } from 'xml-js';
|
|
2
|
+
export declare const elementRender: (w: Element[], d: HTMLElement) => boolean;
|
|
3
|
+
export declare const textRender: (a: Element, d: HTMLElement) => void;
|
|
4
|
+
export declare const cdataRender: (a: Element, d: HTMLElement) => void;
|
|
5
|
+
declare const render: (a: any) => HTMLDivElement;
|
|
6
|
+
export default render;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
interface Options {
|
|
2
|
+
file: string | File | ArrayBuffer;
|
|
3
|
+
content?: Element;
|
|
4
|
+
id?: string;
|
|
5
|
+
success?: (k: Element) => any;
|
|
6
|
+
fail?: (e: Error) => any;
|
|
7
|
+
requestOptions?: undefined | {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
};
|
|
10
|
+
requestData?: undefined | {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
};
|
|
13
|
+
responseFilter?: (key: {
|
|
14
|
+
[key: string]: string | number;
|
|
15
|
+
}) => string;
|
|
16
|
+
}
|
|
17
|
+
declare const _default: ({ file, content, id, ...restOptions }: Options) => Promise<unknown>;
|
|
18
|
+
export default _default;
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@syzlm/ofdparser",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "ofd javascript解析器",
|
|
5
|
+
"main": "dist/bundle.cjs.js",
|
|
6
|
+
"module": "dist/bundle.esm.js",
|
|
7
|
+
"browser": "dist/bundle.umd.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
11
|
+
"build": "rollup -c",
|
|
12
|
+
"dev": "rollup --config rollup.config.dev.mjs -w"
|
|
13
|
+
},
|
|
14
|
+
"keywords": [
|
|
15
|
+
"ofd"
|
|
16
|
+
],
|
|
17
|
+
"author": "@syzlm",
|
|
18
|
+
"license": "ISC",
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"fontkit": "^2.0.4",
|
|
21
|
+
"jszip": "^3.10.1",
|
|
22
|
+
"xml-js": "^1.6.11"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@babel/core": "^7.26.0",
|
|
26
|
+
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
|
|
27
|
+
"@babel/plugin-transform-runtime": "^7.25.9",
|
|
28
|
+
"@babel/preset-env": "^7.26.0",
|
|
29
|
+
"@babel/runtime": "^7.26.0",
|
|
30
|
+
"@eslint/js": "^9.17.0",
|
|
31
|
+
"@rollup/plugin-babel": "^6.0.4",
|
|
32
|
+
"@rollup/plugin-commonjs": "^28.0.2",
|
|
33
|
+
"@rollup/plugin-html": "^1.1.0",
|
|
34
|
+
"@rollup/plugin-node-resolve": "^16.0.0",
|
|
35
|
+
"@rollup/plugin-terser": "^0.4.4",
|
|
36
|
+
"@rollup/plugin-typescript": "^12.1.2",
|
|
37
|
+
"eslint": "^9.17.0",
|
|
38
|
+
"globals": "^15.14.0",
|
|
39
|
+
"prettier": "^3.4.2",
|
|
40
|
+
"rollup": "^4.29.1",
|
|
41
|
+
"rollup-plugin-livereload": "^2.0.5",
|
|
42
|
+
"rollup-plugin-serve": "^1.1.1",
|
|
43
|
+
"tslib": "^2.8.1",
|
|
44
|
+
"typescript": "^5.7.2",
|
|
45
|
+
"typescript-eslint": "^8.18.2"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="zh-cn">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Document</title>
|
|
8
|
+
<script src="bundle.umd.js"></script>
|
|
9
|
+
<style>
|
|
10
|
+
html,
|
|
11
|
+
body,
|
|
12
|
+
div {
|
|
13
|
+
margin: 0;
|
|
14
|
+
padding: 0;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.input-file {
|
|
18
|
+
position: relative;
|
|
19
|
+
display: flex;
|
|
20
|
+
cursor: pointer;
|
|
21
|
+
width: 100%;
|
|
22
|
+
padding: 10px 0;
|
|
23
|
+
justify-content: center;
|
|
24
|
+
border-bottom: 1px solid #333;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.input-file input {
|
|
28
|
+
color: transparent;
|
|
29
|
+
background-color: transparent;
|
|
30
|
+
border: none;
|
|
31
|
+
outline: none;
|
|
32
|
+
width: 100%;
|
|
33
|
+
position: absolute;
|
|
34
|
+
top: 0;
|
|
35
|
+
bottom: 0;
|
|
36
|
+
left: 0;
|
|
37
|
+
font-size: 100px;
|
|
38
|
+
z-index: 2;
|
|
39
|
+
opacity: 0;
|
|
40
|
+
cursor: pointer;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
#test {
|
|
44
|
+
text-align: center;
|
|
45
|
+
}
|
|
46
|
+
</style>
|
|
47
|
+
</head>
|
|
48
|
+
|
|
49
|
+
<body>
|
|
50
|
+
<div id="input-file">
|
|
51
|
+
<span>请选择文件</span>
|
|
52
|
+
<input type="file" id="file" />
|
|
53
|
+
</div>
|
|
54
|
+
<div id="test"></div>
|
|
55
|
+
<script>
|
|
56
|
+
(function () {
|
|
57
|
+
const showDom = document.querySelector('#test')
|
|
58
|
+
|
|
59
|
+
var inputDom = document.querySelector('#file');
|
|
60
|
+
inputDom.addEventListener('change', function (e) {
|
|
61
|
+
document.querySelector('#test').innerHTML = "正在解析文件..."
|
|
62
|
+
var files = e.target.files;
|
|
63
|
+
if (BEST_OFD && files[0]) {
|
|
64
|
+
console.dir('BEST_OFD:', BEST_OFD)
|
|
65
|
+
BEST_OFD.getSVGDoms({ file: files[0], content: document.querySelector('#test') })
|
|
66
|
+
}
|
|
67
|
+
var readFile = new FileReader();
|
|
68
|
+
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
})()
|
|
72
|
+
</script>
|
|
73
|
+
</body>
|
|
74
|
+
|
|
75
|
+
</html>
|