如何在jsPDF生成的PDF中添加水印?

2023-11-29

我正在从canva 生成PDF 并使用jsPDF 生成它。

https://github.com/MrRio/jsPDF

这是我正在使用的代码,我想将水印添加到页面中。 有人能帮我吗?

 self.downloadCanvasObjectAsPDF = function () {
        canvas.deactivateAll().renderAll();

        try {
            canvas.getContext('2d');
            var imgData = canvas.toDataURL("image/jpeg", 1.0);
            var pdf = new jsPDF('p', 'mm', [297, 210]);
            pdf.addImage(imgData, 'JPEG', 5, 5);
            var namefile = 'export';
            if(namefile != null) {
                pdf.save(namefile + ".pdf");
                return true;
            }else{
                return false;
            }
        } catch(e) {
            alert("Error description: " + e.message);
        }
    };

您可以先在每个页面上手动添加水印,无论是图像还是文本,然后添加内容,以免相互重叠。

在这种方法中,您也可以在添加每个新页面时添加/调用水印。doc.addPage();

(Or)

在 PDF 生成结束时,您可以调用一个函数来为所有页面添加水印。

假设我想在 PDF 生成后向所有页面添加水印。

function addWaterMark(doc) {
  var totalPages = doc.internal.getNumberOfPages();

  for (i = 1; i <= totalPages; i++) {
    doc.setPage(i);
    //doc.addImage(imgData, 'PNG', 40, 40, 75, 75);
    doc.setTextColor(150);
    doc.text(50, doc.internal.pageSize.height - 30, 'Watermark');
  }

  return doc;
}

在保存 PDF 之前调用此函数

function getPdf() {

  var doc = new jsPDF('p', 'pt', 'a4');

//Add content

//finally call the watermark
  doc = addWaterMark(doc);

  doc.save('test');

}

在这里小提琴供参考:https://jsfiddle.net/Puruushoth/f55h4hzs/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在jsPDF生成的PDF中添加水印? 的相关文章

随机推荐

  • 如何将函数应用于类的所有元素

    我有一个函数 我想将其应用于同一类的多个元素 这是一个滚动页面函数 我只需要它执行一次 所以我把它放在包装纸里 它有效 但我希望能够向元素添加一个类并让它作用于该元素 我尝试迭代元素并使用 addClass 添加一个唯一的类 并将各自的索引
  • 使用 hibernate 进行复杂查询(例如每组前 N 个)的最佳方法

    我现在正在开发一个报告应用程序一段时间 我使用 hibernate 来定义我的查询 然而 我越来越觉得对于报告用例来说这不是最好的方法 查询仅产生部分列 因此不是类型对象 除非你在java中转换所有字段 如果不直接使用 sql 或 总部 我
  • 转换 int -> unsigned long long 是否由标准定义

    我找不到具体的说明int值转换为unsigned long long在标准中 指定了各种类似的转换 如int gt unsigned unsigned gt int 负数则为UB unsigned long long gt int等 例如海
  • Mod_security 有时会阻止我的 ajax 脚本 - 我怎样才能找出原因?

    我使用 php 和 mysql 构建了某种 CMS 应用程序 一切在本地主机上都运行得很好 所以我把它移到了网络上 现在 当有人添加新文章时 我遇到了奇怪的问题 有时它只是正常添加 有时用户会收到此错误 不可接受 所请求资源的适当表示 在此
  • 是否可以从 PropertyGrid 隐藏枚举值?

    我正在与PropertyGrid控制和使用SelectedObject属性来显示数据PropertyGrid 我的网格中的一些属性是枚举类型 我想要做的是向用户隐藏枚举中的一些选择 以下面的示例为例 我想向用户隐藏 Error 的枚举 有没
  • 我们可以通过android中的模拟器发送短信吗?

    我想检查通过模拟器发送到手机的短信 我们可以这样做吗 我不知道是否可以将短信从模拟器发送到设备 但可以将短信从一个模拟器实例发送到另一个模拟器实例 使用模拟器端口号作为接收者电话号码 即 如果模拟器在端口 5444 上运行 则必须使用 54
  • 需要 Handlebars.js 来渲染对象数据而不是“[Object object]”

    我正在使用 Handlebars 模板 并且 JSON 数据已在 Object object 中表示 如何在 Handlebars 之外解析此数据 例如 我尝试通过句柄标签填充页面上的 JavaScript 变量 但这不起作用 有什么建议么
  • 如何以编程方式将 WPF TreeView 绑定到 List

    因此 我对 WPF 非常陌生 并尝试将 Drink 值列表绑定或分配给 wpf 树视图 但不知道如何执行此操作 并且发现很难在网上找到任何不使用 xaml 只显示内容的内容 struct Drink public string Name g
  • PHP Oauth 签名_无效

    我无法理解为什么这不起作用 我真的认为它应该是这样 请帮忙 这是我得到的错误 signature invalid base string GET https 3A 2F 2Fwww google com 2Faccounts 2FOAuth
  • 无法在 R 中初始化 CoreNLP

    我无法访问coreNLP在运行 High Sierra 的 Mac 上用 R 编写 我不确定问题是什么 但似乎每次我再次尝试获取coreNLP工作时 我面临着不同的错误 我有 JDK 9 0 4 请参阅下面的代码 了解我正在尝试执行的操作以
  • CLR 存储过程中的多线程代码?

    多线程 CLR 存储过程可能吗 我有一项数据密集型任务 具有很大的并行化潜力 CLR 存储过程非常适合消除将数据移出进程的开销 但我担心我必须放弃并行计算 我有什么选择 注意 我们使用的是 SQL Server 2005 计划在 4 个月内
  • 如何将 UIView、UIImageView 或 CALayer 动画旋转 360°?

    你如何旋转UIView UIImageView or CALayer不使用 OpenGL ES 进行 360 度动画 import
  • ASP.NET 和 STA COM 对象

    想要在这里解决争论 我读过的关于使用 VB 中从 ASP NET 页面创建的 COM 对象的所有内容都围绕着 警告 请确保安装了 ASPCOMPAT 否则它将无法工作 然而 我已经设置好了 你猜怎么着 没问题 现在 我读到了这个 http
  • PHP 和 XML。使用 PHP 循环 XML 文件

    我现在正陷入 foreach 炼狱中 试图想出一种用 PHP 遵循 XML 文件内容 遍历这个 XML 文件 下面的实际 XML 文本 的方法 我想做的是 获取所有文件夹元素名称 如果文件夹元素的子文件夹属性为 yes 则向下移动一级并获取
  • 在 Google Compute Engine 上从没有公共 IP 的计算机路由到互联网

    在 Google Compute Engine 上 我们有没有公共 IP 的机器 因为配额限制了可以拥有公共 IP 地址的机器数量 我们需要这些非公共 IP 机器来访问 Google 存储桶中的数据 这似乎意味着我们必须路由到互联网 但我们
  • 使用 ImageMagick 对图像进行平等测试

    ImageMagick 库中有相等谓词函数吗 我想比较两个图像并找出它们是否完全相同 像素的所有颜色都相同 或有任何差异 我查了一下 好像没有这个功能 我应该自己使用像素迭代器编写函数吗 ImageMagick 提供compare功能来正确
  • 如何在不同的目录中启动 npm?

    我通常cd进入app目录然后运行npm start 我的感觉应该是有什么办法可以跑npm start带有路径参数 但是 npm 启动文档不包含这样的功能 我尝试自己却发现npm start myapp不起作用 有没有办法做到这一点 这一行应
  • 如何在 Angular 8 中将下拉列表(带选项)从 JSON 导出到 Excel?

    我正在尝试将 JSON 数据导出到具有下拉列表的 Excel 如果我们将数组作为单元格值传递 是否可以在 Excel 中创建下拉菜单 带选项 我正在尝试使用内置库 XLSX 来实现此目的 但如果我在单元格值中传递数组 则无法查看数据 更新
  • 如何知道一个StorageFolder-obj属于SD还是Phone?

    有没有办法知道 StorageFolder obj 属于 SD 或 WP8 1 上的手机 感谢您 例如 您可以通过检查Path of StorageFolder or StorageFIle string folderPath yourSt
  • 如何在jsPDF生成的PDF中添加水印?

    我正在从canva 生成PDF 并使用jsPDF 生成它 https github com MrRio jsPDF 这是我正在使用的代码 我想将水印添加到页面中 有人能帮我吗 self downloadCanvasObjectAsPDF f