Làm cách nào tôi có thể xử lý hàng loạt tệp HTML để chuẩn bị in?


1

Tôi có một bộ sưu tập một nghìn tệp HTML tôi cần dọn dẹp để in. Tôi cần xóa tất cả các thẻ bên trong <body></body>khu vực ngoại trừ một , <div.pg>. Phần thừa là các liên kết điều hướng làm cho bản in lộn xộn và sử dụng hết giấy. Nội dung của các thẻ không giống nhau, vì vậy tôi không thể tìm và thay thế đoạn trích mã, nhưng các thẻ giống nhau khi có ba <table>thẻ bị xóa, mỗi thẻ có một lớp cụ thể. Có bất kỳ kỹ thuật xử lý hàng loạt hoặc phần mềm để làm công việc này? Tôi đang sử dụng Windows


1
Viết một kịch bản python cho điều này.
James T Snell

Bạn đang sử dụng hệ điều hành nào?
bryan

Tôi đang dùng Windows XP
z403

Đây có phải là những tệp bạn đã tạo hoặc chỉ là các trang chung trên internet?
ChrisF

Viết một kịch bản Perl cho điều này.
Randolf Richardson

Câu trả lời:


9

một nghìn tệp HTML, làm cho chúng sạch sẽ được in.

Một giải pháp dễ dàng để loại bỏ các phần khi in là sử dụng biểu định kiểu CSS

Thêm một cái gì đó như thế này vào headphần tử

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

Lưu ý media="print"- biểu định kiểu này chỉ áp dụng khi in, không phải khi xem.

Nếu HTML của bạn được định dạng theo cách tương tự, bạn có thể thực hiện việc này cho hàng ngàn tệp html trong một lệnh với chỉnh sửa khớp mẫu đơn giản

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

Trong print.css, đặt hiển thị: không có phần tử nào (ví dụ: toàn bộ div) bạn không muốn in. Ví dụ

#menu { display: none; }

Xem một danh sách ngoài bài viết


Cập nhật: Nếu hàng nghìn tệp html của bạn đã sử dụng tệp biểu định kiểu CSS phổ biến, giải pháp thậm chí còn dễ dàng hơn, không cần thay đổi hoặc thêm bất cứ điều gì trong tệp html, chỉ cần thêm một phần vào biểu định kiểu hiện có để xử lý in. Ví dụ:

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

1
Vâng, cách duy nhất để giải quyết vấn đề này là với bất kỳ ngôn ngữ hoặc công cụ tập lệnh nào (như sed.exe hoặc awk.exe) hỗ trợ các biểu thức chính quy thực sự HOẶC với một thư viện XML như tập lệnh Beanshell chạy XMLUNIT.
djangofan

3
+1 để giải quyết vấn đề thực sự, không cung cấp cho họ những gì họ nghĩ là giải pháp!
Arjang

2

Sử dụng Notepad ++. Bạn có thể thực hiện tìm / thay thế văn bản trên nhiều tệp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.