Vấn đề với việc trộn đề thi sử dụng python

Mình đang thử làm một phần mềm trộn đề kiểm tra sử dụng python cùng với thư viện python-docx, nhưng nó chỉ đọc đc paragraph với text thôi chứ về hình ảnh, bảng, sơ đồ hay bold, gạch chân, … thì k đc.
Không biết có ai từng sử dụng python-docx thì giúp mình, hoặc người từng làm việc lập trình với file Word cũng đc, có cách nào tối ưu nhất trong việc xử lí file word

Chuyển file doc về file .xml rồi xử lý nhé b.

1 Like

Mình thử chuyển về xml r nhưng k thấy ảnh ở đâu cả

Ảnh được lưu ở dạng binaryData ở gần cuối file xml nha b.

Bên trên thì nó sẽ đánh dấu vị trí của ảnh để khi mở file thì chèn vào

Bạn chuyển binaryData thành image như trang này https://stackoverflow.com/questions/2323128/convert-string-in-base64-to-image-and-save-on-filesystem-in-python

1 Like

Nó đánh giấu bằng ID + tên nhé b .
File xml này có 3 phần

  • phần dầu có ID + tên của ảnh như cái hình thứ 2 ở bên trên Id là rId25 và tên là image11
  • Phần giữa có nội dung text + hình thì nó đánh giấu bằng Id
  • Phần cuối có tên image11 + binaryData
    Từ 3 phần là nó ==> đúng hình ảnh + nội dung đúng vị trí như file doc. Bạn mở file xml convert từ file doc bằng WORD thì sẽ thấy như mở file doc thôi
1 Like

Nếu mà phải xử lí Xml thì mình thấy có vẻ như còn phức tạp hơn sử dụng python-docx

Vì file doc là độc quyền của anh microsoft nên mấy module tương tác với .doc ko đầy đủ -> ko làm đc những cái phức tạp.
Trước m có viết 1 chương trình sắp xếp tài liệu tham khảo cũng mò đến thằng python-docx này nhưng làm ko nổi nên mới chuyển qua cách này.
Tất nhiên là phức tạp hơn vì bạn phải tự code mọi thứ chứ ko có module hỗ trợ.

1 Like

Sao anh Micr cứ phải làm mọi thứ phức tạp thế nhỉ :sweat_smile: Thế bạn parse cái xml kiểu j vậy, rồi sau đó còn chuyển lại nó về dạng docx nữa chứ, docx thành xml đơn giản dùng save as trong Word rồi, còn ngược lại thì làm kiểu j ?

m sửa dụng regex b vì cái xml word này ko như html . Còn chuyển ngược lại thì m làm thủ công bằng Save As của word thôi :smile:
Mà nếu b đã tách được các dữ liệu cần thì dùng python-docx mà create file mới việc gì phải convert

1 Like

Kể ra cũng phức tạp phết nhỉ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?