2013-01-24 36 views
7

Những người gửi nội dung đến trang web của tôi sử dụng Word, vì vậy tôi nhận được rất nhiều tài liệu Word để chuyển đổi sang HTML. Tôi chỉ muốn bảo tồn định dạng cơ bản - các tiêu đề, danh sách và sự nhấn mạnh - không có hình ảnh.Từ MS Word hoặc Libre Office để xóa HTML

Khi tôi chuyển đổi chúng bằng Libre Office "Lưu dưới dạng HTML", tệp kết quả là rất lớn, ví dụ: tệp doc 112K trở thành 450K HTML, hầu hết các thẻ FONT và SPAN vô dụng (vì lý do nào đó, mỗi dấu chấm câu được đính kèm trong khoảng riêng của nó!).

Tôi đã thử tập lệnh này: http://www.techrepublic.com/blog/opensource/how-to-convert-doc-and-odf-files-to-clean-and-lean-html/3708 dựa trên gọn gàng và an toàn, đồng thời giảm kích thước xuống khoảng 150K nhưng vẫn còn nhiều SPAN vô dụng.

Tôi đã cố gắng sao chép và chuyển sang Kompozer - một trình soạn thảo HTML, sau đó lưu dưới dạng HTML; nhưng nó đã chuyển đổi tất cả các chữ cái không phải tiếng Latinh (tiếng Do Thái) thành các thực thể như "ְ", tăng kích thước lên 750K!

tôi đã cố gắng docvert: https://github.com/holloway/docvert/issues/6 nhưng phát hiện ra rằng nó đòi hỏi một thư viện python mà đòi hỏi các thư viện khác, vv, mà có vẻ như một con đường vô tận của sự phụ thuộc ...

Có cách nào đơn giản để tạo HTML sạch từ tài liệu Office?

+0

Đây có thể là một bản sao: http://stackoverflow.com/questions/67964/what-is-the-best-free-way-to-clean-up-word-html/1813798#1813798 –

Trả lời

0

Trong trường hợp của bạn, bạn có thể cần phải đi từng dòng để chuyển đổi các phần chính của tài liệu từ, sau đó quay lại và dọn dẹp bất kỳ thẻ bổ sung nào. Nếu bạn không quan tâm đến cách tiếp cận này, hãy xem xét giải pháp này ...

  1. Sau khi lưu tài liệu từ làm trang web, hãy mở trang web đó trong Notepad ++.
  2. Sau đó sử dụng tính năng Replace cho tài liệu
  3. rằng Trong hộp Find What, gõ < [^>] +>
  4. Trong chế độ tìm kiếm cho cùng cửa sổ này, chọn "biểu hiện thường xuyên"

Bây giờ tất cả những gì bạn phải làm từ thời điểm đó là bấm Tìm tiếp theo cho đến khi bạn nhận được các thẻ bạn muốn thay thế rồi bấm Thay thế cho mỗi thẻ cần được thay thế. Đảm bảo hộp "Thay thế bằng:" trống.

Tôi không biết liệu có cách nào thuận tiện hơn hay không, nhưng cách này là miễn phí và đơn giản để xử lý thẻ HTML sạch sẽ thông qua Notepad ++.

Theo như chuyển đổi inline-phong cách để CSS bên ngoài (mà tôi khuyên là quá trình thứ hai sau khi thay thế các thẻ không cần thiết), hãy thử ứng dụng này ... http://inlinecssextractor.com/home.html

Chúc may mắn

+0

Sử dụng Notepad ++ có thể là một giải pháp cho một tài liệu duy nhất, tuy nhiên, vì tôi có tài liệu mới đến mỗi tuần, tôi không muốn lặp lại cùng một thay thế một lần nữa và một lần nữa cho mỗi tài liệu ... –

0

tôi thấy hai chất tẩy rửa khá hiệu quả. Đầu tiên, tôi chạy từ lọc html qua

http://textism.com/wordcleaner/

Sau đó, tôi sử dụng một số biểu thức thông thường để chuyển đổi một số mặt hàng gạch đầu dòng đoạn văn vào danh sách (li). Sau đó, tôi chạy kết quả thông qua

http://infohound.net/tidy/

để bọc các mục danh sách với danh sách không có thứ tự (ul) thẻ và dọn dẹp các lỗi khác. Tôi rất hài lòng với kết quả từ 1.5M đến 225k.

0

Tôi đã sử dụng http://word2cleanhtml.com/ cho đến khi tôi nhận ra rằng bản thân MS Word cung cấp tùy chọn lưu tài liệu dưới dạng HTML.

Khi chọn mục này, tệp .docx sẽ trở thành .html và là phiên bản html tốt nhất của tài liệu từ mà tôi đã xem. Nó chắc chắn tốt hơn so với tất cả các công cụ trực tuyến.

1

Tôi nhận ra câu hỏi này là cũ nhưng các câu trả lời khác chưa bao giờ thực sự trả lời câu hỏi. Nếu bạn không phải là bất lợi để viết một số mã PHP, các CubicleSoft Cuối cùng Web Scraper Toolkit có một lớp gọi là TagFilter:

https://github.com/cubiclesoft/ultimate-web-scraper/blob/master/support/tag_filter.php

Bạn vượt qua trong hai điều: Một loạt các tùy chọn và các dữ liệu để phân tích dưới dạng HTML.

Để xóa HTML bị hỏng, các tùy chọn mặc định từ TagFilter :: GetHTMLOptions() sẽ hoạt động như một điểm khởi đầu tốt. Các tùy chọn này tạo thành cơ sở của nội dung HTML hợp lệ và không làm gì khác, sẽ dọn sạch mọi dữ liệu đầu vào thành một công cụ khác như Simple HTML DOM có thể phân tích cú pháp chính xác trong mô hình DOM.

Tuy nhiên, cách khác để sử dụng lớp là sửa đổi các tùy chọn mặc định và thêm tùy chọn 'gọi lại' vào mảng tùy chọn. Đối với mỗi thẻ trong HTML, hàm gọi lại được chỉ định sẽ được gọi. Việc gọi lại dự kiến ​​sẽ trả về những gì cần làm với mỗi thẻ, đó là nơi sức mạnh thực sự của TagFilter phát huy tác dụng. Bạn có thể giữ bất kỳ thẻ nào và một số hoặc tất cả thuộc tính của nó (hoặc sửa đổi chúng), loại bỏ thẻ nhưng giữ nội dung bên trong, giữ thẻ nhưng loại bỏ nội dung, sửa đổi nội dung (để đóng thẻ) hoặc loại bỏ cả thẻ và nội dung bên trong. Cách tiếp cận này cho phép kiểm soát cực kỳ tinh tế đối với HTML phức tạp nhất hiện có và xử lý đầu vào trong một lần truyền. Xem bộ kiểm tra của kho lưu trữ tương tự để sử dụng ví dụ của TagFilter.

Nhược điểm duy nhất là việc gọi lại phải theo dõi vị trí của nó giữa mỗi cuộc gọi trong khi một cái gì đó như Simple HTML DOM chọn mọi thứ dựa trên mô hình giống DOM. NHƯNG đó chỉ là một nhược điểm nếu tài liệu được xử lý có những thứ như 'id và' class'es ... hầu hết nội dung Word/Libre không, nghĩa là nó là một blob khổng lồ của HTML không thể nhận ra/không thể phân tích theo như công cụ xử lý DOM đi.

0

Dưới đây là tập hợp các kịch bản PowerShell sẽ xóa HTML được lọc theo từ và gắn thẻ chính xác siêu/đăng ký khoảng 95% thời gian. (Không, bạn không thể nhận được tốt hơn, Word được thực hiện cho in.)

https://github.com/suzumakes/replaceit

dẫn đang có trong Readme và nếu bạn tình cờ gặp bất kỳ ký tự bổ sung mà cần phải được bắt hay đến với bất kỳ chỉnh sửa/cải tiến nào, tôi rất vui khi thấy yêu cầu kéo của bạn.

0

ophir.php thực hiện một công việc khá tốt khi tạo HTML sạch từ tệp .odt. Bạn cần một môi trường lưu trữ php để chạy nó.

Các vấn đề liên quan