gpt4 book ai didi

html - 获取 CSS 和 HTML 中的日期到 PDF 页脚

转载 作者:太空宇宙 更新时间:2023-11-04 16:21:09 25 4
gpt4 key购买 nike

我正在使用 ITextRenderer 从 html 和 css 生成 pdf 文件,我在右侧有一个页脚和当前页面。

但现在我想在左边显示当前日期。

我发现了这个:

<div data-line="1"></div>

div[data-line]:after {
content: "[line " attr(data-line) "]";
}

但我不知道如何将它与:

@bottom-left {
content: "Date: ";
}

这可行吗,还有其他方法吗?

我希望页脚看起来像这样:日期:2015-03-17 12:04

更新 1:

我有一个方法 createPDF(string html, String resourceUrl),它看起来像这样:

  ByteArrayOutputStream out = new ByteArrayOutputStream();

HtmlCleaner cleaner = new HtmlCleaner();
TagNode node = cleaner.clean(html);

CleanerProperties props = cleaner.getProperties();
new SimpleXmlSerializer(props).writeToStream(node, out, "ISO-8859-1");

ITextRenderer renderer = new ITextRenderer();
renderer.setPDFVersion(PdfWriter.VERSION_1_7);

renderer.setDocumentFromString(new String(out.toByteArray(), "ISO-8859-1"));
renderer.getSharedContext().setBaseURL(resourceUrl);

renderer.layout();

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
renderer.createPDF(outputStream);
renderer.finishPDF();

outputStream.flush();
outputStream.close();

return outputStream.toByteArray();

最佳答案

example您引用的在 CSS 中使用 data-line 是一种基于 data-* HTML 属性动态生成 CSS 的有趣方式。这些反过来可能由服务器端或客户端脚本在网页中动态生成。但这似乎不是适合您的情况的方法。

如果您已经在使用像 ITextRenderer 这样的 Java 类来生成此 PDF,那么对您来说最好的方法可能就是使用 Java 本身以您想要的格式生成当前日期,然后将其直接打印到 CSS 中作为一个字符串。

如果您从手动创建的文件中加载 CSS,一种方法是在 CSS 中写入一些您打算替换的文本,例如 INSERTDATE。然后在 Java 中,按照通常的方式加载文档,然后使用一些 Java 代码(如 String.replace())将 INSERTDATE 替换为今天的日期。

更新 1:

根据上面的示例代码,您可以在希望日期出现在 HTML/CSS 中的位置编写 INSERTDATE,然后调用:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); # your desired format
String strDate = sdf.format(new Date()); # get the current date
html = html.replace("INSERTDATE", strDate);

在你的方法的顶部。

关于html - 获取 CSS 和 HTML 中的日期到 PDF 页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29097493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com