找回密码
 立即注册

QQ登录

只需一步,快速开始

破名想半天

金牌服务用户

2

主题

7

帖子

25

积分

金牌服务用户

积分
25
最新发帖
破名想半天
金牌服务用户   /  发表于:2022-6-20 16:27  /   查看:1664  /  回复:7
onMounted(() => {
  viewer.value = reportViewer.value.Viewer();
  viewer.value.toggleSidebar()
  viewer.value.toggleToolbar(false);    //隐藏整个工具栏;
单独隐藏任何一个都可以,两个一起隐藏报错

Error: Minified React error #185; visit https://reactjs.org/docs/error-decoder.html?invariant=185 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.

PDF乱码问题:设置了 import {FontStore} from "@grapecity/activereports/core";  
FontStore.registerFonts("/fonts/fontsConfig.json");
预览PDF依旧乱码,HTTP请求也请求到了字体文件



fontsconfig.json内容
{
  "path": "",
  "descriptors": [
    {
      "name": "鸿蒙",
      "locals": [
        "鸿蒙",
        "HarmonyOS Sans"
      ,
      "source": "/fonts/HarmonyOS_Light.ttf"
    }
  ]
}


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

7 个回复

倒序浏览
Bella.YuanWyn认证
超级版主   /  发表于:2022-6-20 18:15:43
沙发
您好,您可以参考附件对应的demo工程。1)隐藏对应工具栏和侧边栏参考:
https://demo.grapecity.com.cn/ac ... oolbarHidden/purejs
2)pdf乱码问题参考这个教程:
关于 ARJS 导出PDF 中文乱码及使用特殊字体设置方法
https://gcdn.grapecity.com.cn/fo ... 69395&fromuid=65049
(出处: 葡萄城产品技术社区)



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
破名想半天
金牌服务用户   /  发表于:2022-6-20 18:40:19
板凳
隐藏那个没用,就是从你们示例复制下来的
回复 使用道具 举报
James.Lv讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2022-6-20 18:46:41
地板
破名想半天 发表于 2022-6-20 18:40
隐藏那个没用,就是从你们示例复制下来的

生效的,您可以参考上面的附件demo
回复 使用道具 举报
破名想半天
金牌服务用户   /  发表于:2022-6-20 19:29:51
5#
你光让我看你那个有什么用啊?现在是我这边碰到了问题,你光说按你那个弄、
回复 使用道具 举报
破名想半天
金牌服务用户   /  发表于:2022-6-20 19:32:58
6#
本帖最后由 破名想半天 于 2022-6-20 19:34 编辑

<template ref='reportViewer'>
  <div id="viewer-host">
    <ReportViewer ref="reportViewer" language="zh"/>
  </div>
</template>
<script lang='ts' setup>
import {Core, PdfExport} from "@grapecity/activereports";
import {Viewer} from "@grapecity/activereports-vue";
import {FontStore} from "@grapecity/activereports/core";
import "@grapecity/activereports/styles/ar-js-ui.css";
import "@grapecity/activereports/styles/ar-js-viewer.css";
import "../../public/locales/ar-js-locales.js";


import axios from "axios";
import {ref, onMounted} from "vue";
import Qs from "qs";

const ReportViewer = Viewer
const reportViewer = ref()
Core.setLicenseKey("");

const viewer = ref(null)
const from_par = Qs.parse(location.search.substring(1))
const from_host = Qs.parse(location.host)
const token = from_par.token
const apply_id = from_par.apply_id
const report_data = ref(null)
const report = ref(null)
console.log('来源域名:', from_host)
console.log('参数:', from_par.token)


const loadReport = async function () {
  //从文件加载定义报表
  const reportResponse = await fetch("/Report/zs/ApplyReport.rdlx-json");
  const report = await reportResponse.json();
  console.log(report);
  return report;
}

FontStore.registerFonts("/fonts/fontsConfig.json");

onMounted(() => {
  viewer.value = reportViewer.value.Viewer();
  viewer.value.toggleSidebar()
  // viewer.value.toggleToolbar(false);    //隐藏整个工具栏;

  axios.get('https://xxxxx/api/user_apply/apply_show', {
    params: {
      apply_id: apply_id,
    },
    headers: {
      Authorization: token
    }
  }).then(async (res) => {
    if (res.data.code === 200) {
      report_data.value = res.data
      report.value = await loadReport();
      viewer.value.toolbar.updateLayout({
        default: ["navigation", "$split", "$print"],
      })

      report.value.DataSources[0].ConnectionProperties.ConnectString = "jsondata=" + JSON.stringify(report_data.value);
      viewer.value.open(report.value);
      viewer.value.zoom = "FitToWidth"; //(FitToWidth)宽度自适应   (FitPage)整页显示
    }
  })

})

window.addEventListener('message', async (event) => {
      // if (event.data && typeof event.data === 'string' && window.self !== window.top) {
      if (event.data === 'PrintReport') {
        // viewer.value.print();
        var pageReport = new Core.PageReport();
        var PDF = PdfExport;
        var settings = {
          info: {
            title: 'XX义务教育阶段报名表',
            author: 'XX教育云',
            autoPrint: true,
          },
          pdfVersion: "1.7"
        }

        await pageReport.load(report.value)
        const doc = await pageReport.run();
        await PDF.exportDocument(doc, settings)
            .then(function (result) {
              // result.download(result.data)
              window.open(URL.createObjectURL(result.data))
            }
        )
      }

    }
)

</script>

<style>
#viewer-host {
  width: 100%;
  height: 100vh;
}
</style>

回复 使用道具 举报
破名想半天
金牌服务用户   /  发表于:2022-6-20 19:33:33
7#
完整代码见上,我是要知道怎么解决我碰到的问题,不是说看你发的那个
回复 使用道具 举报
James.Lv讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2022-6-21 09:38:09
8#
破名想半天 发表于 2022-6-20 19:33
完整代码见上,我是要知道怎么解决我碰到的问题,不是说看你发的那个

您是写的VUE项目?vue项目里面可以这样去写

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部