想念 发表于 2023-7-5 17:45:32

【sjs16.1.4】用面积函数创建面积函数迷你图 导出pdf后页面多出一条线[SJS-19033]

本帖最后由 Joestar.Xu 于 2023-7-6 09:35 编辑

场景:
sheet.setFormula(26, 6, '=AREASPARKLINE(C27:E27,,,,,"#288487","#D73A0E")');
用面积函数创建面积函数迷你图,有一行的数据都为0的情况导出pdf顶部多出一条线,前端页面展示是没有那条线。
如图 "页面展示2"的 27和29行的 三个数据都为0,那么导出的pdf顶部有一个横线,如图"导出异常的PDF"。
反之27和29行的 三个数据之中有一个不为0,那么导出的pdf顶部就没有横线,是没有问题的如图"导出正常的PDF"。

需求:
如何解决三个数据都为0的情况导出的pdf顶部没有那条横线




Joestar.Xu 发表于 2023-7-6 08:54:06

您好,问题已收到,我们这边调研一下,有进展我会在帖子下回复您。

Joestar.Xu 发表于 2023-7-6 09:31:38

您好,问题已重现。

我在将您的json文件导入后,尝试进行导出,发现提示错误并且无法导出。

在当我将为0值的数据更改了以后,就可以正常导出了。

这边调研一下,后续有进展我会在本贴中回复您。

本帖先做保留处理了。

想念 发表于 2023-7-6 10:21:15

本帖最后由 想念 于 2023-7-6 10:24 编辑

Joestar.Xu 发表于 2023-7-6 09:31
您好,问题已重现。

我在将您的json文件导入后,尝试进行导出,发现提示错误并且无法导出。

我们这边更新到spreadjs16.1.4是可以正常导出的,16.1.4以前的版本确实是不能导出,不能导出的问题在https://gcdn.grapecity.com.cn/fo ... 63&page=3#pid676249这个帖子中解决了。现在是要如何解决三个数据都为0的情况导出的pdf顶部去掉那条横线

Joestar.Xu 发表于 2023-7-6 10:32:29

您好,看上去您在导出为PDF好像还做了一些参数的设置,我这边直接导出为PDF的时候在预览中可以看见红线,但是在详细页面中看不见。

可以再详细说明一下我应该如何复现出您这样的PDF吗?



想念 发表于 2023-7-6 10:53:39

本帖最后由 想念 于 2023-7-6 11:01 编辑

Joestar.Xu 发表于 2023-7-6 10:32
您好,看上去您在导出为PDF好像还做了一些参数的设置,我这边直接导出为PDF的时候在预览中可以看见红线,但 ...
这个是我设置pdf的代码 。let fontsObj = fonts,fonts在下面的压缩文件中
/**导出PDF*/
    handleExport(){
      let spread = this.designer.getWorkbook()
      let fontsObj = fonts;
      this.registerCustomFont(fontsObj);
      this.addFontsToFontManager(fontsObj);
      this.setPrintInfo(spread);
      spread.savePDF(function (blob) {
      saveAs(blob, '辰元评级.pdf');
      },function (error) {
      console.log(error);
      }, {
      });
    },
    registerCustomFont(fontsObj) {
      var fonts = {
      normal: fontsObj["simkai.ttf"],
      };
      GC.Spread.Sheets.PDF.PDFFontsManager.registerFont("楷体", fonts);
    },
    addFontsToFontManager(fontsObj) {
      var fonts = {
      normal: fontsObj["MTCORSVA.TTF"],
      };
      GC.Spread.Sheets.PDF.PDFFontsManager.fallbackFont = function (font) {
      var fontInfoArray = font.split(" "),
          fontName = fontInfoArray;
      if (fontName === "mtcorsva") {
          return fonts.normal;
      }
      };
    },
    setPrintInfo(spread) {
      for (let i = 0; i < spread.getSheetCount(); i++) {
      var sheet = spread.getSheet(i)
      var printInfo = sheet.printInfo();
      sheet.suspendPaint();
      printInfo.showBorder(false); // 是否显示边框
      printInfo.showGridLine(false); // 是否打印网格线 (默认是打印)
      printInfo.blackAndWhite(false); // 彩色打印
      // printInfo.margin({top:20, bottom:20, left:20, right:20,}) // 边距
      if(i==1) {
          printInfo.columnEnd(6); // 打印截至至某一列
          sheet.setRowPageBreak(44, true); // 设置在打印时是否在此表单上的指定行之前插入强制分页符
          sheet.setRowPageBreak(82, true); // 设置在打印时是否在此表单上的指定行之前插入强制分页符
          printInfo.headerCenter(this.form.fileCode);
          printInfo.footerCenter("&P/&N");
          printInfo.watermark([{x: 60, y: 20, width: 201, height: 48, imageSrc: this.images1, page: "all"}]);
      }else {
          printInfo.margin({top:-10, bottom:-10, left:-12, right:-50,}) // 边距
          printInfo.columnEnd(12) // 打印截至至某一列
          printInfo.rowEnd(62) // 打印截至至某一行
      }
      printInfo.centering(GC.Spread.Sheets.Print.PrintCentering.horizontal); // 打印的居中方式
      printInfo.qualityFactor(8); //打印质量,value为1~8的一个数值,越高则打印效果越好
      sheet.resumePaint();
      }
    }

Joestar.Xu 发表于 2023-7-6 11:02:15

您好,您的代码中缺少一个变量的定义。

想念 发表于 2023-7-6 11:05:50

本帖最后由 想念 于 2023-7-6 11:08 编辑

Joestar.Xu 发表于 2023-7-6 11:02
您好,您的代码中缺少一个变量的定义。
this.form.fileCode直接改为 'EXITWIKI-CAA-000039-SCR-20230621'。

printInfo.watermark([{x: 60, y: 20, width: 201, height: 48, imageSrc: this.images1, page: "all"}])里的this.images1您直接找个图片替换一下吧

Joestar.Xu 发表于 2023-7-6 11:13:02

想念 发表于 2023-7-6 11:05
this.form.fileCode直接改为 'EXITWIKI-CAA-000039-SCR-20230621'。

printInfo.watermark([{x: 60, y: ...

好的,这边已经能够在16.1.4版本复现了,需要调研一下,等有进展我会在帖子下回复您。

想念 发表于 2023-7-6 11:16:21

Joestar.Xu 发表于 2023-7-6 11:13
好的,这边已经能够在16.1.4版本复现了,需要调研一下,等有进展我会在帖子下回复您。

好的,请尽快处理:)
页: [1] 2
查看完整版本: 【sjs16.1.4】用面积函数创建面积函数迷你图 导出pdf后页面多出一条线[SJS-19033]