我有一个包含一千个 HTML 文件的集合,需要清理以进行打印。我需要删除<body></body>
该区域内的所有标签,除了一个,<div.pg>
。多余的是导航链接,它使打印件变得凌乱并耗尽纸张。标签的内容不一样,所以我无法找到和替换代码摘录,但标签是相同的,因为<table>
要删除三个标签,每个标签都有特定的类。是否有任何批处理技术或软件来完成这项工作?我正在使用 Windows
一千个 HTML 文件……使它们干净,便于打印。
打印时抑制部分的简单解决方案是使用 CSS 样式表
将这样的head
内容添加到元素中
<link rel="stylesheet"
type="text/css"
media="print" href="print.css" />
Run Code Online (Sandbox Code Playgroud)
请注意media="print"
- 此样式表仅适用于打印时,而不适用于查看时。
如果您的 HTML 都以类似的方式格式化,您可以使用简单的模式匹配编辑在单个命令中为数千个 html 文件执行此操作
perl -i -ne "print; print '<link … />' if /<head>/" dir1/*.html dir2/*.html
Run Code Online (Sandbox Code Playgroud)
在print.css 中,为您不想打印的元素(例如整个div)设置display:none。例如
#menu { display: none; }
Run Code Online (Sandbox Code Playgroud)
更新:如果你的一千个 html 文件已经在使用一个通用的 CSS 样式表文件,那么解决方案就更简单了,不需要在 html 文件中更改或添加任何内容,只需在现有样式表中添加一个部分来处理打印。例如:
@media screen
{
#menu {font-family:verdana,sans-serif;font-size:14px;}
}
@media print
{
#menu {display:none;}
}
Run Code Online (Sandbox Code Playgroud)