展开

关键词

Java 渲染 docx 文件,并生成 pdf 加水印

最近做了一个比较有意思需求,实现比较有意思。 需求: 用户上传一个 docx 文件,文档中有占位符若干,识别为文档模板。 用户在前端可以将标签拖拽到模板上,替代占位符。 前端如果直接使用文本编辑器,目前开源没有比较满意实现,同时自主开发富文本需要极高技术含量。所以不考虑富文本编辑器可能。 技术调研和技术选型(Java 技术栈): 1. -2.0.0.jar itext-2.1.7.jar ooxml-schemas-1.3.jar 实际上写了一个 Demo 测试以后发现,这套组合以及年久失修,对于复杂 docx 文档都不能友好支持, 这样保证了格式不会损失,但是没有现成模板引擎可以支持 docx 渲染。需要自己实现。 3. 水印 这个相对比较简单,直接使用 itextpdf 免费版就能解决问题。 目前我也没有找到规律,很有可能我们占位符被划分到了多个run,如果我们简单针对 run 做正则表达替换,而要先把所有的 runs 组合起来再进行正则替换。

1.6K10

iText5实现Java生成PDF文件完整版

通过iText不仅可以生成PDF或rtf文档,而且可以将XML、Html文件转化为PDF文件。 STSongStd-Light 是字体,jar 以property为后缀 UniGB-UCS2-H 是编码,jar 以cmap为后缀 H 代表文字版式是横版,相应 V 代表竖版 字体设置 =new Font(bfChinese,10,,Font.BOLD|Font.UNDERLINE); 三、添加文本对象:块、短句和段落 Chunk:块(Chunk)是能被添加文档文本最小单位 用户还可以指定缩排;边和(或)右边保留一定空白,段落可以左对齐、右对齐和居中对齐。添加文档每一个段落将自动另起一行。 所以我们可以最后关闭文档前,使用PdfTemplate写入总页码。可以理解成先写个占位符,然后统一替换。

11910
  • 广告
    关闭

    腾讯云服务器买赠活动

    腾讯云服务器买赠活动,低至72元1年,买就送,最长续3个月,买2核送4核、买4核送8核

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java生成pdf文件或jpg图片

    个人博客 https://zhaoxiaobin.net https://ppbin.gitee.io ---- 一些业务场景,需要生成pdf文件或者jpg图片,有时候还需要带上水印我们可以事先用freemarker定义好html模板,然后把模板转换成pdf或jpg文件。 同时freemarker模板还支持变量定义,使用可以填充具体业务数据。 如果生成图片,多页不会生成多张图片,可以把高度设置大一些,最后会生成长图。 水印每页都会自动添加。 为了提高代码复用性和可维护性,工程内渲染html模板、生成pdf文件、添加水印都有单独接口实现。 参考链接 java使用xmlWorkerHelper将html转pdf Freemarker模板使用简介 使用itext5给PDF添加文字水印 代码地址 github:https://github.com

    26420

    操作 PDF 文件常用JAR

    操作PDF很多业务场景都要用到,例如电子发票,电子处方笺。为什么需要使用PDF呢? 虽然该版本iText不再开发,但是使用该版本iText JAR已经可以满足项目的80% ~90%需求,主要需要引入itextpdf-x.x.x.jaritext-asian-x.x.x.jar 仓库地址如下: https://github.com/itext/itextpdf 0x02:iText 7 iText 7是最新,也是最强PDF处理工具包。 iText可以PDF文件绘制矢量图,但是Apache PDFBox做不到(可能我没发现方法)。 仓库 https://gitee.com/xsxgit/x-easypdf 总结:操作PDFJAR主要分成两类,分别是iText系列和Apache PDFBox系列,之前项目中使用PDF操作工具遇到不少

    55820

    Java组件生成PDF文件

    犹豫几天,还是决定去除这个功能,刚好最近对于后台重构也进行,所以决定来一个大改版(估计需要一段时间才能真正上线新功能)。 今天文章,也就是准备过程实现一个功能-导出PDF。 组件选用 日常工作,利用POI导出Excel功能需求自己做了不少,但是导出PDF确实是第一次做,百度上进行一番查阅,发现大家都是使用AbodeiText组件来生成PDF。 所以这里也随大流,选用iText,官网上iText已经到7了,但是百度搜索案例,用都是iText5,考虑自己对iText不熟悉,所以还是根据大众选用5,一方面,入手快有现成代码可以复制,另一方面用的人多 我们可以使用字节数组流实现。 添加图片 Image 定位 Anchor 水印功能 Watermark内部类,需要继承 PdfPageEventHelper类 writer.setPageEvent(new Watermark())

    2.6K20

    Fabric.js IText设置指定字符颜色和背景色

    IText 是 Fabric.js 提供一个 可编辑文本 元素。 要设置文字颜色,可以设置 fill 。 const iText = new fabric.IText('hello world') // 将文本添加到画布里 canvas.add(iText) </script> 复制代码 首先把 如果对这个概念不太熟的话,可以看看 Fabric.js 从入门到膨胀。 最后通过 new fabric.IText 创建一段文字添加到画布 Fabric.js 里是使用这个属性设置颜色,和 css 设置文字颜色使用 color 不一样~ 单行:设置指定文字颜色 const iText = new fabric.IText('hello 我们这个例子只有1行,所以行号是0。 e 下标是 1 。所以上面的代码就把 e 设置成红色了。其他字符还是默认颜色。

    19420

    java(iText)工具包生成PDF

    支持文本,表格,图形操作,可以方便跟 Servlet 进行结合 iText更新变化很大,早期版本PDF样式上可能会有瑕疵,所有我使用最新5.5.6包 1.添加Maven依赖 itext 所以我们可以最后关闭文档前,使用PdfTemplate写入总页码。可以理解成先写个占位符,然后统一替换。
    * 就是页面完成但写入内容之前触发事件,插入页眉、页脚、水印等。 目前我们就用这个方式,写好html文档使用时动态替换html标记位,然后生成pdf。 4. pdf添加图片也非常简单,例如:,就可以了。 5.

    4.9K21

    Fabric.js 激活输入框🎈

    HTML ,input 输入框有2种方法自动聚焦,最简单 input 标签上添加 autofocus 属性。 再次点方法是使用 JS 获取输入框元素,再调用 focus 事件选中输入框。 Fabric.js IText 组件也提供了类似的方法。 实操 Fabric.js IText 是一个可编辑文本框,可以项目运行时输入文字,功能其实和 HTML input 差不多,都是可以让用户输入。 默认情况 Fabric.js ,如果在创建 IText 时没有添加文字,画布上你是很难用肉眼观察出你输入框在哪。 此时可以看到光标所在位置一闪一闪。 《enterEditing 文档》 再进一步 使用 enterEditing() 后输入框是激活了,也能看到光标一闪一闪。 但这就完了吗?

    13010

    iText 制作PDF

    前言 由于MVC项目中需要使用PDF,所以自己抽空也来看看itext,以便于丰富自己知识吧。在此也简单记录一下,说不定以后可能还用到。 在此您可以下载你想使用版本http://sourceforge.net/projects/itextsharp/files/itextsharp/。于是我就下载了现在最新版本5.4.0。   ? ,第二个参数可以是任何一种流,到目前为止我们一直使用System.IO.FileStream将Document写入文件。 打开document前要做事: 你只能在Open方法调用之前添加摘要,这是iText开发工具提供一个选择。 页面初始化   Open方法不同Witer同时会产生初始化事件,举例来说,如果你需要一个水印或者页眉页角对象出现在文档第一页开始处,你需要在打开文档添加这些,同样用于设置该文档其他页水印、页眉

    57820

    图像批量水印工具PhotoBulk for Mac

    Mac上为图像添加水印。保护您工作 使用我们可靠Mac版水印软件来保护您要发布所有图像:水印可以文本,图像,脚本和日期戳。 您可以根据需要添加任意数量不同类型水印。 旋转。 PhotoBulk最方便编辑过程:预览和编辑水印,预览添加水印图像,动态调整多行文本水印文本大小。 可以水印移到照片限制之外。 使用PhotoBulk调整图像大小并优化所需图像 获得完美的尺寸 我们图像编辑软件Mac应用程序非常易于使用转换后图像包含元数据 使用PhotoBulk,您可以选择要在结果包含哪些元数据。 您可以照片名称添加任意数量数字,并在需要时保留原件。

    15920

    PDF Reader Pro Mac中文版(好用pdf编辑阅读器)

    PDF Reader Pro Mac中文最新版已上线,PDF Reader Pro功能强大,性能稳定,并且使用界面友善、体验非常棒,PDF Reader mac不仅仅可以查看和编辑PDF文档,还支持包括 PDF Reader Pro Mac中文版图片pdf编辑阅读器功能亮点阅读PDFPDF Reader Pro阅读PDF,您将在Mac上获得最佳PDF阅读体验。 合并PDF您可以通过以下方式编辑PDF页面:压缩PDF以减小文件大小,合并或拆分PDF。签名PDF使用光标鼠标,MacBook触控板,键盘或图像在Mac上签名PDF,以创建自己签名。 光学字符识别使用OCR从文档复制和编辑文本,并将OCRed文档准确转换为可搜索PDF或文本文件。贝茨数从您法律文件识别并检索信息。添加/删除水印自定义带有文本和图像水印。 您可以将它们作为模板添加到库

    8520

    Fabric.js 上划线、划线(删除线)、下划线🎭

    HTML 也好,Word 也好,基本都有下划线和删除线(划线)。 Fabric.js 作为一个老牌 canvas 库,当然也提供划线和下划线配置啦,除此之外还提供了上划线配置。 \n\n\n 本文要讲解就是这3种装饰线 fabric.js 使用方法。除了初始化配置外,还支持项目运行时,让用户动态配置。本文案例使用IText ,该组件支持编辑功能。 初始化时设置 这是上划线、划线和下划线文档: - 上划线 overline - 划线 linethrough - 下划线 underline <canvas id="c" width="300" 换行方法是文本内容里使用\n做换行。 动态设置 除了初始化时可以设置装饰线外,Fabric.js 也提供了在运行时用户手动设置。不过代码会稍微复杂一点。 如果被选中文字没设置划线,就添加划线 如果不是编辑状态,只是单击了 iText 进入框选状态 如果需要全局取消划线 全局取消 循环每个字符,并取消每个字符划线 需要全局设置划线 全局设置

    8620

    Web开发实战总结(二)

    这里我们可以利用 freemarker,首先创建一个FreeMarker模板文件(.ftl),在这个文件中加入FreeMarker表达式,这些表达式就好比jspjstl标签一样,我们程序中将数据传递给此文件即可 利用iText将HTML 转为 PDF 1.准备好生成pdf所需jar包 CORE 包:主要是itext相关一些核心itext.jar XML 包:xmlworker是一个基于iTextxml生成 创建一个FreeMarker模板文件(.ftl),在这个文件中加入FreeMarker表达式,这些表达式就好比jspjstl标签一样,我们程序中将数据传递给此文件即可,客户端显示时会被真实数据替换 )与document对象关联,通过书写器(Writer)可以文档写入到磁盘。 // 创建 PdfWriter 对象 第一个参数是对文档对象引用,第二个参数是文件实际名称,该名称还会给出其输出路径。

    39410

    CSharp每日代码示例:使用iTextSharp创建PDF文件

    ,块可以用于构建其他基础元素如短句、段落、锚点等,块是一个有确定字体字符串,要添加块到文档时,其他所有布局变量均要被定义。 同短句一样,段落有确定间距。用户还可以指定缩排;边和(或)右边保留一定空白,段落可以左对齐、右对齐和居中对齐。添加文档每一个段落将自动另起一行。 八、注释 你可以添加一小段文本到你文档,但它并非文档内容一部分,注释有标题和内容: Annotation a = new Annotation( "authors", "Maybe it's because 你能够看到iText添加文本注释页面上当前位置下面,第一个段后第一行下面,第二个短句结束处下面。 所有其他注释需要指定想匹配矩形区域,示例代码0304我们画了一些正方形(使用函数将在第十章中介绍),为每个正方形添加了一些链接注释。

    76810

    用Python玩转PDF各种骚操作

    如何从Python中提取PDF文档信息 我们可以使用PyPDF2从PDF中提取元数据和一些文本,尤其是当在预先存在PDF文件上执行某些类型自动化时是非常有用我们可以reader对象上调用.getNumPages(),让它返回文档页数。 information这个变量具有多个实例属性,可以使用这些属性从文档获取所需其余元数据。 我们可以打印出该信息并将其返回以备将来使用。 虽然PyPDF2具有.extractText(),可以在其页面对象上使用提取文本(本例未显示),但它效果不是很好。 我们可以使用Python和PyPDF2为文档添加水印,而且是拥有仅包含水印图像或文本PDF。 PDF文件路径 output:要保存PDF水印版本路径 watermark:包含水印图像或文本PDF 代码,打开水印PDF并从文档抓取第一页,因为这是水印应该驻留位置。

    62150

    基于SpringBoot文件在线预览神器,可支持99%常用文件在线预览!

    在上一篇 文章我们使用MinIO实现了文件存储,用于存储各种格式文件。有时候我们不仅需要文件存储,还需要文件在线预览。 我们可以使用S3 Browser来管理MinIO文件,首先创建一个存储桶为preview,然后将文件都上传上去; 上传成功后需要修改存储桶访问策略,让匿名用户可以访问; 修改策略时直接参考Policy pdf和JPG来实现预览; 再来预览下pdf文档,和上面两个并没有啥区别; 再来预览下excel文档,这预览效果有待提高; 再来预览下纯文本Markdown文档; 最后再来预览下压缩文件,支持查看压缩文件内容 ,可以修改application.properties文件的如下配置,比如我想添加macrozheng这个水印; #水印内容 #如需取消水印,内容设置为空即可,例:watermark.txt = ${ 总结 通过对kkFileView一波实践,我们发现kkFileView可以满足Office文档、视频、图片等主流文件在线预览需求,使用和配置也非常简单。

    45860

    使用Spire.Office for .NET(Word、Excel、PPT、PDF等)初步感受

    这里可以Windows HTML帮助下将文件安装到本地。 ? ? 创建一个Word文档 很多年前,我们曾面临一个问题,就是找到要插入格式化文本文档有效途径。 具体来说,就是要生成一个多段落,多文本并含有特殊格式Word文档。 让我们使用Spire.Doc创建一个大家熟悉写上Hello WorldWord文档文档文本信息和图片,存为文本格式和各种图片格式,甚至可以将PDF附件提取出来。 比如:矩形,环形,弧形,椭圆形,也可以自定笔刷将其填充。 3、可以将图片从数据流,磁盘文件载入到PDF 文档PDF 文档可以绘制梯状图形和矢量图像,还支持掩模和水印图像。 4、可以PDF 文档载入数据表。可以设置表行和列格式,还可以表内加入图形元素。 5、自动对PDF 大型表格进行分页。 6、创建窗体字段。

    1.4K30

    如何使用Python玩转PDF各种骚操作?

    如何从Python中提取PDF文档信息 我们可以使用PyPDF2从PDF中提取元数据和一些文本,尤其是当在预先存在PDF文件上执行某些类型自动化时是非常有用我们可以reader对象上调用.getNumPages(),让它返回文档页数。 information这个变量具有多个实例属性,可以使用这些属性从文档获取所需其余元数据。 我们可以打印出该信息并将其返回以备将来使用。 虽然PyPDF2具有.extractText(),可以在其页面对象上使用提取文本(本例未显示),但它效果不是很好。 我们可以使用Python和PyPDF2为文档添加水印,而且是拥有仅包含水印图像或文本PDF。 PDF文件路径 output:要保存PDF水印版本路径 watermark:包含水印图像或文本PDF 代码,打开水印PDF并从文档抓取第一页,因为这是水印应该驻留位置。

    34020

    如何使用Python玩转PDF各种骚操作?

    如何从Python中提取PDF文档信息 我们可以使用PyPDF2从PDF中提取元数据和一些文本,尤其是当在预先存在PDF文件上执行某些类型自动化时是非常有用我们可以reader对象上调用.getNumPages(),让它返回文档页数。 information这个变量具有多个实例属性,可以使用这些属性从文档获取所需其余元数据。 我们可以打印出该信息并将其返回以备将来使用。 虽然PyPDF2具有.extractText(),可以在其页面对象上使用提取文本(本例未显示),但它效果不是很好。 我们可以使用Python和PyPDF2为文档添加水印,而且是拥有仅包含水印图像或文本PDF。 PDF文件路径 output:要保存PDF水印版本路径 watermark:包含水印图像或文本PDF 代码,打开水印PDF并从文档抓取第一页,因为这是水印应该驻留位置。

    86020

    如何使用Python玩转PDF各种骚操作?

    如何从Python中提取PDF文档信息 我们可以使用PyPDF2从PDF中提取元数据和一些文本,尤其是当在预先存在PDF文件上执行某些类型自动化时是非常有用我们可以reader对象上调用.getNumPages(),让它返回文档页数。 information这个变量具有多个实例属性,可以使用这些属性从文档获取所需其余元数据。 我们可以打印出该信息并将其返回以备将来使用。 虽然PyPDF2具有.extractText(),可以在其页面对象上使用提取文本(本例未显示),但它效果不是很好。 我们可以使用Python和PyPDF2为文档添加水印,而且是拥有仅包含水印图像或文本PDF。 PDF文件路径 output:要保存PDF水印版本路径 watermark:包含水印图像或文本PDF 代码,打开水印PDF并从文档抓取第一页,因为这是水印应该驻留位置。

    24330

    相关产品

    • 自然语言处理

      自然语言处理

      腾讯云自然语言处理(NLP)深度整合了腾讯内部顶级的 NLP 技术,依托千亿级中文语料累积,提供16项智能文本处理能力,包括智能分词、实体识别、文本纠错、情感分析、文本分类、词向量、关键词提取、自动摘要、智能闲聊、百科知识图谱查询等,满足各行各业的文本智能需求。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券