@hailin-zheng/editor-core 2.0.14 → 2.0.15

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/index-cjs.js CHANGED
@@ -4810,45 +4810,23 @@ class TextGroupRenderObject extends LeafRenderObject {
4810
4810
  if (this.element.props.background) {
4811
4811
  const bgX = event.relativePagePos.x;
4812
4812
  const bgY = event.relativePagePos.y;
4813
- event.highlights.push({
4814
- sel: 'path',
4815
- data: {
4816
- ns: "http://www.w3.org/2000/svg",
4817
- attrs: {
4818
- d: `M${bgX} ${bgY} h${width} v${this.rect.height} h-${width}z`,
4819
- fill: this.element.props.background,
4820
- }
4821
- }
4822
- });
4813
+ event.highlights.push(ElementUtil.getFillSvgRect(bgX, bgY, this.rect.width, this.rect.height, this.element.props.background));
4823
4814
  }
4824
4815
  if (this.element.props.underline) {
4825
4816
  const underHeight = this.element.props.fontSize * 1.2;
4826
- event.highlights.push({
4827
- sel: 'path',
4828
- data: {
4829
- ns: "http://www.w3.org/2000/svg",
4830
- attrs: {
4831
- d: `M${event.relativePagePos.x} ${event.relativePagePos.y + underHeight} L${event.relativePagePos.x + this.rect.width} ${event.relativePagePos.y + underHeight}`,
4832
- stroke: '#000',
4833
- 'stroke-width': 1,
4834
- fill: 'none'
4835
- }
4836
- }
4837
- });
4817
+ const path = `M${event.relativePagePos.x} ${event.relativePagePos.y + underHeight} L${event.relativePagePos.x + this.rect.width} ${event.relativePagePos.y + underHeight}`;
4818
+ event.highlights.push(ElementUtil.getStrokeSvgPath(path, '#000', 1));
4838
4819
  }
4839
4820
  if (this.element.props.linethrough) {
4840
- event.highlights.push({
4841
- sel: 'path',
4842
- data: {
4843
- ns: "http://www.w3.org/2000/svg",
4844
- attrs: {
4845
- d: `M${event.relativePagePos.x} ${event.relativePagePos.y + this.rect.height / 2} L${event.relativePagePos.x + this.rect.width} ${event.relativePagePos.y + this.rect.height / 2}`,
4846
- stroke: '#000',
4847
- 'stroke-width': 1,
4848
- fill: 'none'
4849
- }
4850
- }
4851
- });
4821
+ const path = `M${event.relativePagePos.x} ${event.relativePagePos.y + this.rect.height / 2} L${event.relativePagePos.x + this.rect.width} ${event.relativePagePos.y + this.rect.height / 2}`;
4822
+ event.highlights.push(ElementUtil.getStrokeSvgPath(path, '#000', 1));
4823
+ }
4824
+ if (this.element.props.border) {
4825
+ event.highlights.push(ElementUtil.getStrokeSvgPath(ElementUtil.getRectPath(event.relativePagePos.x, event.relativePagePos.y, this.rect.width, this.rect.height), '#000', 1));
4826
+ }
4827
+ if (this.element.props.overline) {
4828
+ const path = `M${event.relativePagePos.x} ${event.relativePagePos.y} L${event.relativePagePos.x + this.rect.width} ${event.relativePagePos.y}`;
4829
+ event.highlights.push(ElementUtil.getStrokeSvgPath(path, '#000', 1));
4852
4830
  }
4853
4831
  return t;
4854
4832
  }
@@ -19829,17 +19807,81 @@ function printNodes(printNodes, options, printEvent = null) {
19829
19807
 
19830
19808
  class DocumentTemplate {
19831
19809
  static createA4Doc() {
19810
+ return DocumentTemplate.createDoc('A4');
19811
+ }
19812
+ static createDoc(name = 'A4') {
19832
19813
  const doc = new DocumentElement();
19833
19814
  doc.props = new DocumentProps();
19834
- doc.props.width = 210;
19835
- doc.props.height = 297;
19836
- doc.props.padding = new PaddingProps(25.4, 25.4, 19.1, 19.1);
19815
+ const paper = DocumentTemplate.getPaper(name);
19816
+ doc.props.width = paper.width;
19817
+ doc.props.height = paper.height;
19818
+ doc.props.padding = new PaddingProps(paper.top, paper.bottom, paper.left, paper.right);
19837
19819
  doc.addChild(new DocumentHeaderElement());
19838
19820
  doc.addChild(new DocumentBodyElement());
19839
19821
  doc.addChild(new DocumentFooterElement());
19840
19822
  return doc;
19841
19823
  }
19842
- }
19824
+ static getPaper(name) {
19825
+ let top = 25.4, bottom = 25.4, left = 19.1, right = 19.1;
19826
+ const paper = PageSize.find(item => item.name.toUpperCase() === name.toUpperCase());
19827
+ if (paper) {
19828
+ if (top + bottom + 30 > paper.height) {
19829
+ top = bottom = 0;
19830
+ }
19831
+ if (left + right + 30 > paper.width) {
19832
+ left = right = 0;
19833
+ }
19834
+ return {
19835
+ width: paper.width,
19836
+ height: paper.height,
19837
+ top, left, right, bottom
19838
+ };
19839
+ }
19840
+ return { width: PageSize[0].width, height: PageSize[0].height, top, left, right, bottom };
19841
+ }
19842
+ }
19843
+ const PageSize = [
19844
+ { name: 'A4', width: 210, height: 297 },
19845
+ { name: 'A5', width: 148, height: 210 },
19846
+ { name: 'A6', width: 105, height: 148 },
19847
+ { name: 'B5', width: 176, height: 250 },
19848
+ { name: 'B6', width: 125, height: 176 },
19849
+ { name: 'Letter', width: 216, height: 279 },
19850
+ { name: 'Legal', width: 216, height: 356 },
19851
+ { name: 'Executive', width: 184, height: 267 },
19852
+ { name: 'Folio', width: 210, height: 330 },
19853
+ { name: 'Quarto', width: 215, height: 275 },
19854
+ { name: '10x15cm', width: 100, height: 150 },
19855
+ { name: '13x18cm', width: 130, height: 180 },
19856
+ { name: '15x20cm', width: 150, height: 200 },
19857
+ { name: '20x25cm', width: 200, height: 250 },
19858
+ { name: '20x30cm', width: 200, height: 300 },
19859
+ { name: '25x35cm', width: 250, height: 350 },
19860
+ { name: '30x40cm', width: 300, height: 400 },
19861
+ { name: 'A0', width: 841, height: 1189 },
19862
+ { name: 'A1', width: 594, height: 841 },
19863
+ { name: 'A2', width: 420, height: 594 },
19864
+ { name: 'A3', width: 297, height: 420 },
19865
+ { name: 'A7', width: 74, height: 105 },
19866
+ { name: 'A8', width: 52, height: 74 },
19867
+ { name: 'A9', width: 37, height: 52 },
19868
+ { name: 'A10', width: 26, height: 37 },
19869
+ { name: 'B0', width: 1000, height: 1414 },
19870
+ { name: 'B1', width: 707, height: 1000 },
19871
+ { name: 'B2', width: 500, height: 707 },
19872
+ { name: 'B3', width: 353, height: 500 },
19873
+ { name: 'B4', width: 250, height: 353 },
19874
+ { name: 'B7', width: 88, height: 125 },
19875
+ { name: 'B8', width: 62, height: 88 },
19876
+ { name: 'B9', width: 44, height: 62 },
19877
+ { name: 'B10', width: 31, height: 44 },
19878
+ { name: 'C5E', width: 163, height: 229 },
19879
+ { name: 'Comm10E', width: 105, height: 241 },
19880
+ { name: 'DLE', width: 110, height: 220 },
19881
+ { name: 'Folio', width: 210, height: 330 },
19882
+ { name: 'Ledger', width: 432, height: 279 },
19883
+ { name: 'Tabloid', width: 279, height: 432 }
19884
+ ];
19843
19885
 
19844
19886
  /**
19845
19887
  * 处理文档批注
@@ -27152,10 +27194,11 @@ class DocEditor {
27152
27194
  /**
27153
27195
  * 新建文档
27154
27196
  * @param doc
27197
+ * @param name
27155
27198
  */
27156
- createNewDoc(doc = null) {
27199
+ createNewDoc(doc = null, name = 'A4') {
27157
27200
  //this.docCtx.clear();
27158
- const newDoc = doc ?? DocumentTemplate.createA4Doc();
27201
+ const newDoc = doc ?? DocumentTemplate.createDoc(name);
27159
27202
  // this.elementReader.setDocument(newDoc);
27160
27203
  // this.refreshDocument('content');
27161
27204
  this.loadDoc(ElementSerialize.serialize(newDoc, this.viewOptions));
@@ -27379,12 +27422,13 @@ class DocEditor {
27379
27422
  this.resetViewer('force');
27380
27423
  this.selectionState.clear();
27381
27424
  }
27382
- /**
27383
- * 设置纸张大小,单位为毫米(mm)
27384
- * @param width
27385
- * @param height
27386
- */
27387
27425
  setPaperSize(width, height) {
27426
+ if (typeof width === 'string') {
27427
+ const paperSize = DocumentTemplate.getPaper(width);
27428
+ width = paperSize.width;
27429
+ height = paperSize.height;
27430
+ }
27431
+ height = height;
27388
27432
  const docProps = this.docCtx.document.props;
27389
27433
  docProps.width = width;
27390
27434
  docProps.height = height;