Tôi bắt đầu tự hỏi liệu điều này có thể thực hiện được hay không. Tôi đã tìm kiếm các giải pháp trên Google và không tìm ra giải pháp nào hoạt động chính xác theo cách tôi muốn.Chuyển đổi hàng loạt docx để xóa HTML
Tôi nghĩ rằng nó sẽ có lợi để giải thích điều gì đòi hỏi. Tôi làm việc cho nhóm cơ sở dữ liệu tại khoa CNTT của trường đại học. Công việc chính của tôi là lấy thông số kỹ thuật của một báo cáo trong một tệp docx, sao chép nó sang dreamweaver, sửa một số định dạng và đưa nó lên trang web của họ. Vấn đề của tôi là nó vô cùng tẻ nhạt để làm điều này hơn và hơn. Tôi đã đoán, hey, tôi đã không viết bất cứ điều gì trong C# trong một thời gian, có lẽ tôi có thể viết một ứng dụng để lấy một tệp docx, chuyển đổi nó thành HTML, sửa CSS, gắn đầu trang và chân trang từ trang web trên đó và lưu kết quả. Ban đầu tôi dự tính sẽ làm từng cái một, nhưng có lẽ sẽ không khó để có nó vào một danh sách các tập tin và chuyển đổi hàng loạt.
Tôi đã tìm thấy các chủ đề có liên quan này về cách thực hiện điều này, nhưng chúng không phù hợp với nhu cầu của tôi đủ tốt.
http://www.techrepublic.com/blog/howdoi/how-do-i-modify-word-documents-using-c/190
Đây có lẽ là tốt cho một vài tài liệu, nhưng kể từ khi nó chỉ tự động hoá một thể hiện của Word, tôi cảm thấy như nó muốn được chậm và bộ nhớ chuyên sâu. Tôi muốn tránh mở và đóng một phiên bản của Word 50+ lần.
http://openxmldeveloper.org/articles/333.aspx
Đây là những gì tôi bắt đầu sử dụng. XSLT có lợi ích của việc không cần từ được cài đặt và cũng không chạy cho mỗi tệp. Sau khi tìm kiếm một số tôi đã có một bằng chứng về khái niệm làm việc. Nó lấy trong một tệp docx, giải nén nó, lấy tệp document.xml từ đó và sử dụng tệp DocX2Html.xsl mà tôi đã thu thập từ trình xem OpenXML. Tôi tin rằng ban đầu được cung cấp bởi MS cho máy chủ sharepoint để cung cấp khả năng hiển thị tài liệu từ trong trình duyệt. Hoặc một cái gì đó dọc theo các đường dây.
Sau khi điều chỉnh mã đó cho phù hợp với nhu cầu của tôi và gặp sự cố với phương thức objXSLT.Load(), tôi đã sử dụng IlMerge để biến XSL thành DLL. Không có ý tưởng tại sao tôi tiếp tục nhận được một lỗi biên dịch khi sử dụng các tập tin XSL đồng bằng cũ, nhưng DLL làm việc tốt, vì vậy tôi đã hài lòng. Ở đây (http://pastebin.com/a5HBAakJ) là mã hiện tại của tôi. Nó thực hiện công việc chuyển đổi docx sang HTML tốt (trừ các khoảng trống ngẫu nhiên giữa một số từ), nhưng tệp kết quả có cú pháp HTML vô cùng xấu xí. Một ví dụ về sự quái dị này có thể được tìm thấy ở đây (http://pastebin.com/b8sPGmFE).
Có ai biết cách tôi có thể khắc phục điều này không? Tôi nghĩ có lẽ tôi cần phải tạo một tệp XSL mới, vì một trong những MS được cung cấp là những gì có trách nhiệm gắn bó tất cả các thẻ và mã bổ sung trong đó. Vấn đề của tôi với điều đó là tôi không biết gì về cách làm điều đó. Có lẽ có một phiên bản thay thế đã có. Tất cả tôi cần là một trong đó sẽ bảo tồn định dạng bảng và văn bản. Hình ảnh không cần thiết.
Bạn nói lúc đầu rằng đây là một quá trình bạn đang thực hiện thủ công, nhưng sau đó bạn không hài lòng với giải pháp tự động hóa từ bộ nhớ chuyên sâu. Tại sao? Nếu bạn không bán sản phẩm này như một sản phẩm thương mại thì tại sao hiệu quả của giải pháp lại quan trọng? Bạn đang biến một quá trình thủ công mất thời gian vào một một tự động, những người quan tâm nếu nó mất một phút mỗi tài liệu - nó vẫn sẽ dặm nhanh hơn. – Keith
Đúng, tôi không bán nó như một sản phẩm thương mại. Tuy nhiên, tôi có ý định chia sẻ nó với đồng nghiệp của tôi, và tôi muốn cung cấp cho họ một chương trình hiệu quả. Máy tính cá nhân của tôi có thể hiện đại và có những thông số kỹ thuật để xử lý những thứ như vậy, nhưng tôi không biết họ sẽ xử lý nó như thế nào. Một vấn đề khác là sự phụ thuộc vào Word. Tôi giả sử tất cả họ đều sở hữu một bản sao, nhưng đó chỉ là một giả định. Tôi muốn cung cấp cho họ một chương trình sẽ hoạt động hiệu quả bất kể họ chạy máy tính nào. – Omega192