Node-phantom 显示生成的 pdf 页数

2024-01-14

我在获取 phantomjs 中生成的 pdf 页数时遇到问题。基本上我将 phantomjs 与 nodejs 一起使用,我想在第 5 页中显示总页数。

function generatePdf() {

    // Load ejs template
    fs.readFile(__dirname + '/../pdf' + pdfpath, 'utf8', function (err, data) {
        var fileName = __dirname + '/pdfdata/' + f.formType + f.formId + '.pdf';
        // Render the page to variable.
        var html = ejs.render(data, pdfJSON);
        fs.writeFile(__dirname + '/pdfdata/test.html', html, function (err) {
            if (err) throw err;
        });
        // Set this html as the content for the pdf file.
        page.set('content', html);
        //page.set( 'paperSize', { width: 1200, height: 1500} );
        page.set('paperSize', {
            //format: 'A4',
            width: 1200,
            height: 1600,
            header: {
                height: "1cm",
                contents: "function(pageNum, numPages) { return '<h6 style=text-align:right></h6>'; }"
            },
            footer: {
                height: "1cm",

                contents: "function(pageNum, numPages) { return '<h6 style=text-align:right;margin-right:60px;postion:absolute;margin-bottom:-20px>' + pageNum + '</h6>'; }"
            }
        }, function () {
            page.open(__dirname + '/pdfdata/test.html', function () {
                page.render(fileName, cb);
                ph.exit();
                // Response to client.
                function cb() {
                    res.jsonp(200, responseJSON);
                }
            })
        });
    });
} // end of function

为了显示页面,我添加了generatePdf function

contents: "function(pageNum, numPages) { return '<h6 style=text-align:right;margin-right:60px;postion:absolute;margin-bottom:-20px>' + pageNum + '</h6>'; }" 

并将其添加到bridge.js

case 'pageSet':
    eval('request[4].header.contents = phantom.callback(' + request[4].header.contents + ')');
    eval('request[4].footer.contents = phantom.callback(' + request[4].footer.contents + ')');
    page[request[3]] = request[4];
    respond([id, cmdId, 'pageSetDone']);
    break;

如何显示特定页面内生成的页面数。


为什么不在页脚内容中签入您所在的页面,然后显示 NumPages。像这样的事情:

contents: "function(pageNum, numPages) { 
              if(pageNum === numPages)
                return '<h6>' + numPages + '</h6>'; 
              else
                return '<h6>' + pageNum + '</h6>'; 
}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node-phantom 显示生成的 pdf 页数 的相关文章

随机推荐

  • 安装时如何检查我的产品是否已安装?

    我想在导入步骤中执行部分代码 前提是产品本身尚未安装 我尝试使用快速安装工具的 listInstalledProduct 方法 但是 这将返回所有已安装的产品 但不会返回我自己的产品 如何检查我的产品是否已安装在网站中 在 Anne Wal
  • 在 C# 中使用 Linq 中的内部查询创建列表

    我正在尝试使用 Linq 创建一个子列表 但不明白其中的错误 我不认为我做错了 但我认为其他人的眼睛会帮助我解决这个问题 var dataList File ReadAllLines inputFile dataList from line
  • Docker Swarm 无法与自定义覆盖网络上的其他节点通信

    我的集群中有4个节点 其中两个在香港 其他在美国 我在群中创建了 4 个服务 Service Location foo USA bar HK haha USA hehe HK 这些服务使用相同的覆盖网络 当我尝试时ping foo or p
  • 计算两个矩形之间的重叠面积

    我想计算红色和蓝色矩形之间的重叠区域 灰色区域 每个矩形由其四个角坐标定义 重叠面积的结果单位是单位正方形 我无法想象我该怎么做 任何有创意的评论将不胜感激 这种类型的交集很容易通过 最大值的最小值 和 最小值的最大值 的想法来完成 为了将
  • 将 byte[] 转换为数据 URI 的 Base64 字符串

    我知道这个问题可能已经被问过 10000 次了 但是 我似乎找不到这个问题的直接答案 我的数据库中存储了一个代表图像的 LOB 我从数据库获取该图像 我想通过 HTML IMG 标签将其显示在网页上 这不是我的首选解决方案 但在我找到更好的
  • 如何为具有动态应用程序 ID 的应用程序指定外部路径

    我在我的应用程序中使用 FileProvider 当我从应用程序中拍摄照片时存储在那里 我的应用程序也有一个不同的应用程序 ID 用于调试和发布版本 com rkmax myapp com rkmax myapp debug 我已经像这样定
  • @SpringBootTest 干扰 EclipseLink 动态编织

    我的公司正在使用 Spring Boot Spring MVC JPA 以及 EclipseLink 和动态编织来开发 Web 应用程序 我的任务是准备 UI 的实现和集成测试 使用 JUnit 和 SpringBootTest 启动应用程
  • 为什么 TimeZone.getTimeZone("MST") 方法与 getTimeZone("US/Mountain") 不同?

    TimeZone getTimeZone US Mountain and TimeZone getTimeZone MST 返回不同的结果 这个java类中的MST不代表 山区标准时间 吗 您不应使用简短的三个字母名称 MST 在Java中
  • 如何让 KendoUI Validator 忽略隐藏的表单元素?

    我正在尝试将 KendoUI Validator 与 ASP NET WebForms 项目一起使用 我有一个简单的页面 有许多输入 当然 ASP NET 也添加了一些隐藏的表单元素 我有以下问题 为什么 KendoUI 验证器不忽略隐藏的
  • 实现 JTree 工具提示的最佳方法?

    由于 JTree 和 TreeModel 不直接提供开箱即用的工具提示 您认为为 JTree 提供特定于项目的工具提示的最佳方式是什么 编辑 之后回答我自己的问题 Zarkonnen 感谢 getTooltipText 的想法 我发现了另一
  • C# 5.0 EBNF 语法

    我正在寻找 5 0 版编程语言 C 的 EBNF 语法 这个语法应该是机器可读的 所以我可以用这个 EBNF 语法做一些处理 直到现在我才发现Visual Studio的安装中包含了C 的语言规范文档 PROGRAMFILES x86 Mi
  • 是否可以将 Zeppelin 笔记与 git 集成?

    是否可以将 Zeppelin 笔记与 git 集成 人们可以设置存储库位置 但如何将其设置为远程 git 存储库 不过 此功能可在 Amazon EMR 上使用 是的 这是可能的 我使用以下方式 创建一个 github 存储库并推送所有笔记
  • HighCharts:如何将自定义颜色与渐变相结合

    一段时间以来 我正在玩饼图的着色 或者我得到了没有渐变的自定义颜色 或者带有渐变的默认颜色 我的颜色存储在 php 字段中 我想像这样加载colors 我的代码的实际状态是这样的 它显示带渐变的默认颜色 colors Highcharts
  • 通过 FCM 消息控制台在后台向我的 iOS 应用程序发送静默通知

    我想向我的 iOS 应用程序发送静默通知 为此我已在其中实现了 FCM 当应用程序在后台运行时 当应用程序从 FCM 收到通知时 我需要执行一些操作 为此 执行过程将进入调用的方法 void application UIApplicatio
  • 仅获取容器中 Azure blob 文件的所有名称?

    我想要容器中 Azure Blob 文件中的所有名称 出于某种目的 我发现了一些类似的问题 甚至在 stackoverflow com 上也发现了一个 获取容器中 Azure blob 文件的名称列表 https stackoverflow
  • 评估 ansible 条件中的返回码

    我正在致力于自动化一项需要将 最新版本的软件附加到文件的任务 我不希望它对同一版本多次执行此操作 它查看以下示例文件 var software releases new Array 4 3 0 4 4 0 4 5 0 4 7 0 4 8 0
  • 从数据表中读取值

    我有一个填充有 samo 数据 值的 DataTable 我想从 DataTable 读取数据并将其传递给字符串变量 我有这个代码 DataTable dr art line 2 ds Tables QuantityInIssueUnit
  • 对数字列表求和比使用 for 循环更快的方法?

    有没有一种方法可以比使用 for 循环更快地对数字列表进行求和 也许在 Python 库中 或者这真的只有多线程 矢量处理才能有效地完成吗 编辑 为了澄清 它可以是任何数字的列表 未排序 只是用户输入的 您可以使用 sum 对数组的值求和
  • CSS3 旋转 - Firefox 和 Safari 中的渲染问题

    我正在尝试使用 CSS3 属性 旋转 将简单的文本行旋转一定角度 精确1 5度 webkit transform rotate 1 5deg moz transform rotate 1 5deg ms transform rotate 1
  • Node-phantom 显示生成的 pdf 页数

    我在获取 phantomjs 中生成的 pdf 页数时遇到问题 基本上我将 phantomjs 与 nodejs 一起使用 我想在第 5 页中显示总页数 function generatePdf Load ejs template fs r