当前位置: 首页 > 网络应用技术

[战斗共享] JS生成Word(DOCX),然后将Word转换为PDF解决方案共享

时间:2023-03-08 12:04:00 网络应用技术

  本文将记录如何生成文件并将其转换为结尾。录制的代码是实际业务场景中的成功代码,并且没有阶梯式台阶的过程。跳到零件,可以在该模块中查看最终效果图。

  如果有更好的解决方案,也欢迎您讨论并分享评论领域?

  本文的演示存储地址:https://github.com/chicko1108/docxtemplateer-demo

  旧铁,没什么可说的,第一个链接:docxtempler |您的应用程序中的Word,PowerPoint,Excel生成用户

  它是基于生成最终文件的插头。它通过简单的语法将预设数据填充到模板或模板中,以帮助开发人员快速生成最终文件。

  因为它基于变量,因此获得了最终文件,因此文件的样式非常可控。在开发过程中,设计人员只需要生成最终产品字,而开发人员可以用相应的一个替换内容(不再需要被设计师追赶以恢复设计草案!)。

  它是一个充电库,但它具有免费的开源版本。对于所涉及的业务,可以解决免费版本。

  开源版本中包含的功能包括:

  除了免费版本外,它还拥有,您也可以访问官方网站查看它。(但是Bai Yan总是最香!)

  由于我的业务仅涉及Word和PDF,因此本文仅介绍Word的相关内容。如果需要处理PPT,您可以访问官方网站自己学习。

  在了解模板语法之前,我们需要先创建一个模板文件。

  该变量使用标签,在文件中输入以下模板:

  然后准备以下数据:

  最后,我们生成的DOCX文件将是:

  有条件的判断开始和结束。最简单的用法是填写类型数据。

  然后准备以下数据:

  最后,我们生成的DOCX文件将是:

  除了类型数据外,我们还可以填写其他类型:

  false /空数组不显示非空气数组显示,并显示循环渲染的内部元素对象,并使用对象的内部变量替换{tag}其他真实值。

  让我简要地谈论这里的填充:

  准备单词模板如下:

  准备数据如下:

  最后,我们生成的DOCX文件将是:

  徽标是相同的,但是应填充相应的变量。

  然后,我们填写以下数据:

  最后,我们生成的DOCX文件将是:

  值得注意的是,周期不仅可以散发普通文本的时期,而且我们还可以散发,包括:周期线和循环整个表格。,我在这里不会重复太多。

  从上图可以看出,我在表单的第二行中使用语法进行填充,因此在我们最终生成的文档中,头部和尾巴都不会循环。第二行将渲染多次。结果如下。

  图片用于标签。图片的数据需要专门处理,并将引入后一部分。

  根据上述语法,我们可以准备相应的单词模板文件,并且应满足大多数方案。准备模板时,固定的文案写作和样式可以直接保留在文档中,包括标题,脚,线,线条和每个段落的间距,文本的字体和大小。其他需要根据真实数据呈现的值,用标签标记。准备模板文件后,您可以开始编写脚本函数。

  PS:很好地利用桌子进行布局!

  1.获取模板文件

  该类用于此处将模板文件转换为其中。注意浏览器的兼容性。

  如果您有兼容性的要求,则可以在使用中提供它,但是此库与TS兼容性差,因此我将其在实际代码中使用。

  2.生成最终文件(没有图片)

  3.准备数据并生成最终文件。接下来,我们准备一个文件输入框(您还可以使用网络请求,或以任何方式获取文件,只要您最终获得二进制数据)以获取模板文件。在同一时间,准备相应的数据填充模板。

  4.效果显示模板文件如下:

  结果如下:

  5.如果需要在模板中使用图片处理,我们需要安装模块。

  引入此模块后,您需要在加载模板文件后加载图像模块,然后异步填写数据。

  对于带有图片的文档,需要异步加载数据,并且需要将图片数据作为base64处理。上面的代码提供了处理图片的解决方案。如果您有更有效的方法,则可以自己使用它。

  图书馆还在中国支持它,其思想基本上与浏览器相同。它可以直接在节点侧使用。官方给出的官方代码示例在下面粘贴。

  它是通过模板文件生成单词的库。它可以确保最终样式的最终样式的完整性和恢复。构建代码后,开发人员只需要为类似企业写更多的内容,然后将精力集中在正确的处理上。

  使用或其他图表库也可以允许我们生成报告文件。

  此外,对于此库,它是库的升级。它具有操作zip文件的能力。它可以直接解压缩或生成ZIP软件包。API如下:

  在做这部分业务时,我最初想在前端完成所有工作,但是没有办法直接在客户端上更改该方法。因此,该部分在服务器端得到解决。

  首先,您需要在计算机上安装软件,并且可以搜索特定方法。

  安装后,将库安装在项目中。该库对的转换方法被封装,该方法只是直接调用:

  如果它是邮政编码文件,也可以安装或解压缩,打包。建议在此处使用它,因为文档更丰富并且对TS有更好的支持。

  这是我第二次遇到此类业务,因此在学习,录制和共享的心态下,我在平台上分享了内容。我在开发过程中遇到了很多“坑”,并且没有在本文中记录。本文主要基于记录最终成功,与其他有相同需求的家庭共享内容的代码。所有人之后,车轮是如此完美,当然可以很好地利用它!