使用wkhtmltopdf库生成PDF时的本地日期时间

本文关键字:日期 时间 PDF wkhtmltopdf 使用 | 更新日期: 2023-09-27 18:19:37

我正在使用wkhtmltopdf(https://www.nuget.org/packages/wkhtmltopdf.mingw.86.exe/)为ASP.NET网页生成PDF文件。日期和时间在这个网页中显示给用户,我从SQL Server 2012数据库获得。我以UTC格式存储所有日期。当我在浏览器中打开网页时,日期和时间显示为本地日期和时间,因为我使用Moment.js根据用户本地时区对其进行格式化。

当使用wkhtmltopdf生成PDF时,是否可以做同样的事情?PDF生成发生在服务器上,所以它总是显示服务器的日期和时间,但我想显示用户的本地日期和时间。

使用wkhtmltopdf库生成PDF时的本地日期时间

很棒的工具。它有一些特点。

我建议在页面上放一些脚本,用jQuery评估所有日期字段,并具体操作日期字段?如果您的字符串的格式是yyyy-MM-dd HH24:mm:ss.zzz UTC,就像值2015-10-27 13:58:46.490 UTC一样,那么您可以用new Date('2015-10-27 13:58:46.490 UTC')在JS中解析它,并对它调用.toString()来获取本地时间。

然后,您可以将--window-status参数与wkhtmltopdf一起使用,以等待脚本运行后的给定状态。假设我们将--window-status "Dates Manipulated"传递到wkhtmltopdf中。当客户端脚本完成将日期字段操纵到所需的本地时间后,设置window.status = 'Dates Manipulated',wkhtmltopdf将完成文档转换。

由于您是在服务器端渲染的,我认为您可以访问正在设置的URL。让我们假设您的页面类似于http://www.example.com/page_renderer,并在后面放置一个查询参数,如下所示http://www.example.com/page_renderer?timzeone=America/Toronto.现在,您可以在Javascript函数中使用该时区来转换到指定的时区。

var localTime = moment.tz("2015-10-27 13:58:46.490 UTC", "America/Toronto");