2013-02-12 41 views
11

Tôi đang tìm cách chuyển đổi văn bản HTML thành chuỗi RTF. Có thư viện nào thực hiện công việc này không. Tôi nhận được nội dung html động trong dự án của tôi và cần nó được hiển thị ở định dạng RTF. Tôi đang sử dụng trình phân tích cú pháp HTML để chuyển đổi văn bản HTML thành chuỗi bình thường và sau đó cố gắng sử dụng PyRTF để chuyển đổi sang định dạng RTF. Có cách nào tốt hơn mà điều này có thể được thực hiện. Cảm ơn trước.HTML tới chuỗi RTF bằng cách sử dụng Python

+1

Bạn đã thấy điều này chưa? http://pypi.python.org/pypi/zopyx.convert2 –

Trả lời

0

Có một thư viện trăn tuyệt vời xuất hiện dưới dạng tarball.

Bạn có thể tải xuống tại https://pypi.python.org/pypi/zopyx.convert2/2.4.5.

Chúc may mắn!

+0

Chỉ hữu ích nếu bạn có hoặc sẵn sàng cài đặt XFC, XINC, FOP và PrinceXML - ba trong số đó là phần mềm thương mại. –

2

RTF có vẻ như định dạng xúc xắc để chuyển đổi từ/sang. Tôi đã thử cắt và dán giữa các ứng dụng trên Mac OS X, ví dụ, nơi RTF là một cái gì đó của một lingua franca. Một số ứng dụng đó là các ứng dụng của Microsoft (có liên quan trong RTF đó là định dạng do Microsoft phát triển), một số khác thì không. Ngay cả thông tin định dạng cơ bản như kích thước phông chữ, khuôn mặt phông chữ, khoảng cách dòng và kiểu danh sách (được sắp xếp hoặc không theo thứ tự) bị lộn xộn khi sao chép từ một ứng dụng nói chuyện RTF có vẻ bề ngoài sang ứng dụng khác. Đơn giản chỉ cần đặt, đó là một mớ hỗn độn.

Tôi đã tìm kiếm các cách để đọc, ghi và biến đổi RTF theo chương trình, tốt nhất là từ Python. Tôi tìm thấy một số gói trên PyPI, thử chúng ra là một trải nghiệm đáng thất vọng. Họ sẽ hỗ trợ RTF 1.5, khi phiên bản hiện tại là 1.9.1. RTF đã được khoảng một thời gian dài, nhưng một spec 2005-cổ điển không phải là rất gần đây. Có rất nhiều gotchas và không tương thích. RẤT NHIỀU.

Bây giờ, tôi không nói điều đó là không thể, hoặc không có thư viện nào khác ở đó có thể thực hiện thủ thuật. Ví dụ: tôi có không phải là đã thử các ví dụ zopyx.convert được đề cập bởi những người khác ở đây. Có lẽ nó tuyệt vời. Nhưng nhìn vào sự phụ thuộc của nó - Java, FOP, vv - nó trông giống như một chuỗi công cụ khá phức tạp (và do đó có khả năng mong manh). Tôi đọc its code on github, và Python thực sự chỉ có như một veneer phối hợp. Nó tổ chức các công cụ bên ngoài XFC, XINC, FOP và PrinceXML - ba trong số bốn công cụ này là phần mềm thương mại. Điều đó bao gồm phần XFC chính có giao dịch với RTF. Màu tôi hoài nghi.

Có hai trình chuyển đổi mà tôi thấy có giá trị: Nếu bạn đang sử dụng máy Mac, chương trình dòng lệnh textutil thực sự là một trong những công cụ tốt hơn và đơn giản hơn tôi đã thấy.

textutil -convert html filename.rtf -output filename.html 

Động cơ định dạng khác đó là giá trị xem xét là LibreOffice. Nó hoàn toàn miễn phí, nguồn mở, hợp lý để tự động hóa, và một nền tảng phong nha như một trung tâm tương tác. Đó không chỉ là đoán; Tôi đã tạo các luồng công việc tài liệu phức tạp, đa định dạng xung quanh nó.

Tôi sẽ đặt câu hỏi tại sao bạn đang cố gắng tham gia RTF. Điều đó có vẻ giống như một định dạng tài liệu mà bạn đang cố gắng trốn thoát. Nhưng nếu bạn cần phải đến đó, textutil và LibreOffice là những cơ chế tồi tệ nhất mà tôi đã tìm thấy.

+0

Hey Jonathon, bạn có nhớ cách bạn đang sử dụng LibreOffice để thực hiện định dạng không? Ví dụ, trên một dòng lệnh Windows 7, tôi thử lệnh sau: "soffice.exe" -headless -convert-to rtf: "Định dạng văn bản đa dạng thức" C: \ Hello_world.html nhưng không có gì xảy ra ... – sager89

+0

Lệnh gọi Tôi sử dụng (trên MacOS X) là 'soffice --headless --invisible --convert-to rtf test.html'. Tôi không nghĩ rằng '--invisible' là bắt buộc, chỉ là tùy chọn" ít hiển thị hơn ". Vì vậy, vấn đề có vẻ là hoặc hơn bạn cần tiền tố tùy chọn dấu nối kép (có thể xảy ra), và/hoặc ': 'Định dạng Văn bản Giàu' '' bổ sung cho đặc tả định dạng 'rtf'. Hãy thử: '" soffice.exe "- không đầu -convert-to rtf C: \ Hello_world.html' –

+0

Đối với Windows, có vẻ như bạn đang sử dụng chỉ một dấu nối. Tôi đã không thực sự sử dụng ổ đĩa gốc, hoặc chỉ muốn một con đường ngắn cho sự đơn giản trong ví dụ này. Những gì tôi đã kết thúc làm để giải quyết vấn đề này là sử dụng hình ảnh cơ bản và câu trả lời được đưa ra ở đây http://stackoverflow.com/questions/150208/how-do-i-convert-html-to-rtf-rich-text-in- net-without-pay-for-a-component – sager89

0

Tôi thấy câu hỏi này đã hơn một tuổi, nhưng tôi đã nghĩ rằng mình sẽ đóng góp. Gần đây tôi đã có một yêu cầu tương tự, và chuyển sang PyRTF, một mô-đun Python nhỏ nhưng mạnh mẽ có thể xây dựng các tài liệu RTF từ một tệp văn bản. Bạn có thể sử dụng Beautiful Soup để xóa HTML, đi xuống thẻ phân tích cú pháp theo thẻ và sử dụng API PyRTF để tạo các đối tượng thích hợp (bảng, ô, đoạn, phần hoặc tài liệu).

Bản thân API khá chi tiết và cho phép toàn bộ bó định dạng tùy chỉnh (văn bản phông chữ, căn chỉnh, màu, đầu trang, chân trang, v.v.)

Hy vọng điều này sẽ hữu ích.

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