1

У меня есть коллекция из тысячи HTML-файлов, которые нужно очистить для печати. Мне нужно удалить все теги внутри области <body></body> кроме одного, <div.pg> . Избыток - навигационные ссылки, которые делают распечатки грязными и израсходуют бумагу. Содержимое тегов не совпадает, поэтому я не могу найти и заменить фрагмент кода, но теги такие же, поскольку есть три <table> которые нужно удалить, каждый со своим классом. Есть ли какая-либо техника обработки пакетов или программное обеспечение для этой работы? Я использую винду

2 ответа2

9

тысяча HTML-файлов ... сделать их чистыми для печати.

Простое решение для подавления разделов при печати заключается в использовании таблицы стилей CSS

Добавьте что-то вроде этого в элемент head

<link rel="stylesheet" 
   type="text/css"
   media="print" href="print.css" />

Обратите внимание, что media="print" - эта таблица стилей применяется только при печати, а не при просмотре.

Если ваш HTML отформатирован одинаковым образом, вы можете сделать это для тысяч HTML-файлов в одной команде с упрощенным редактированием соответствия шаблону

perl -i -ne "print; print '<link … />' if /<head>/" dir1/*.html dir2/*.html

В print.css установите display:none для элементов (например, целых элементов div), которые вы не хотите печатать. Например

#menu { display: none; }

Посмотреть список отдельно от статьи


Обновление: если ваши тысячи html-файлов уже используют общий файл таблицы стилей CSS, решение еще проще, не нужно ничего менять или добавлять в html-файлы, просто добавьте раздел в существующую таблицу стилей для обработки печати. Например:

@media screen
  {
  #menu {font-family:verdana,sans-serif;font-size:14px;}
  }
@media print
  {
  #menu {display:none;}
  }
2

Используйте Блокнот ++. Вы можете найти / заменить текст в нескольких файлах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .