Hướng dẫn python-docx extract images - Hình ảnh trích xuất python-docx

Ảnh của Arisa Chattasa trên undplash

Bạn đã bao giờ nhận được một nhiệm vụ yêu cầu bạn chuyển một tệp tài liệu vào định dạng khác, nhưng mục tiêu không hỗ trợ bạn sao chép hình ảnh? Bạn có cảm thấy mệt mỏi vì bạn phải "lưu dưới dạng hình ảnh" Tất cả các hình ảnh từ Docx để chuyển nó sang định dạng khác? Đó là vấn đề của tôi; Sau khi đào internet, tôi đã tìm thấy một cách dễ dàng để bỏ qua nhiệm vụ tẻ nhạt này. Chương trình này sẽ được viết bằng Python vì đây là ngôn ngữ lập trình dễ dàng. Được rồi, chúng ta hãy đi đến dòng chảy.

Dòng chảy

Dòng chảy dự án

Phần này sẽ tồn tại từ bài viết này bởi vì tôi nghĩ người đọc sẽ hiểu chương trình tốt hơn bằng cách biết toàn bộ hệ thống trước. Được rồi, từ hình trên, bạn có thể thấy rằng chương trình của chúng tôi sẽ đọc tài liệu theo đường dẫn và hỏi vị trí của các hình ảnh đã lưu, sau đó nó sẽ đọc tệp tài liệu và tìm tất cả các hình ảnh bên trong nó. Tadaaa, thực sự đơn giản, phải không?

Sự chuẩn bị

Được rồi, trước khi đi vào mã, hãy xem những gì chúng ta cần. Thư viện mà chúng tôi sẽ sử dụng là docx2txt. Dự án không có bất kỳ mô tả nào; Bạn có thể truy cập từ đây. Nhưng nó nói thư viện này là một tiện ích dựa trên Python thuần túy để trích xuất văn bản và hình ảnh từ các tệp docx. Bạn có thể cài đặt nó bằng lệnh này.

pip install docx2txt

Việc chuẩn bị thứ hai là bạn phải có một tệp chứa hình ảnh. Ví dụ: tôi thu thập bài đăng này từ @L LibraryMindset trên Twitter. Bài viết cho 100 cuốn sách sẽ thay đổi cuộc sống của bạn. Các tập tin sẽ trông như thế này.

Bản xem trước tài liệu

Mật mã

Chương trình này sẽ chỉ lấy sáu dòng mã; Trên thực tế, bạn có thể làm cho nó một, nhưng nếu bạn chọn một, chương trình sẽ không đủ chính hãng. Ngoài ra, mã thực tế chỉ là bốn dòng và hai dòng là để thêm khả năng đọc. Điều đó làm cho tất cả mọi người mà không có nền tảng mã hóa không thể sử dụng nó dễ dàng.

Rất đơn giản phải không? Bạn có thể nhận thấy lý do tại sao tôi cần sử dụng phân chia trong giá trị ". Tôi hứa bạn sẽ nhận được câu trả lời trong phần thực thi.

Thực thi

Cuối cùng, đây là hồ sơ của tôi về cách thực hiện nó.

Không, chúng tôi phân chia vì tôi sao chép đường dẫn từ một tệp, kết quả từ việc sao chép nó cũng sẽ dẫn đến " được sao chép, nó sẽ khiến chương trình lỗi để làm cho nó hoạt động, xóa nó. Đối với chương trình này, tôi chia nó và lấy giá trị đường dẫn. Vâng, bạn có thể tạo một chức năng để loại bỏ nó hoặc nếu không, nhưng ví dụ này, hãy làm cho nó đơn giản. Sự phát triển là dành cho bạn!

Sự kết luận

Chà, trong chương trình này, tôi đã tạo ra một chương trình ngắn và ngắn có thể trích xuất hình ảnh từ một bức tranh. Tôi hy vọng bạn đã quen với nó. Cảm ơn vì đã đọc.

Có một mã đẹp!

Thêm nội dung tại Plainenglish.io. Đăng ký nhận bản tin hàng tuần miễn phí của chúng tôi. Theo dõi chúng tôi trên Twitter và LinkedIn. Kiểm tra cộng đồng của chúng tôi Discord và tham gia tập thể tài năng của chúng tôi.PlainEnglish.io. Sign up for our free weekly newsletter. Follow us on Twitterand LinkedIn. Check out our Community Discord and join our Talent Collective.

Hoạt động này không được API hỗ trợ trực tiếp.

Tuy nhiên, nếu bạn sẵn sàng đào sâu vào bên trong một chút và sử dụng API lxml cơ bản thì có thể.

Cách tiếp cận chung sẽ là truy cập phiên bản ImagePart tương ứng với hình ảnh bạn muốn kiểm tra và sửa đổi, sau đó đọc và viết thuộc tính

blip = inline_shape._inline.graphic.graphicData.pic.blipFill.blip
0 (giữ tệp hình ảnh là byte).

Mẫu vật XML này có thể hữu ích: http://python-docx.readthedocs.io/en/latest/dev/analysis/features/shapes/picture.html#specimen-xml

Từ hình dạng nội tuyến chứa hình ảnh, bạn có được phần tử

blip = inline_shape._inline.graphic.graphicData.pic.blipFill.blip
1 với điều này:

blip = inline_shape._inline.graphic.graphicData.pic.blipFill.blip

ID mối quan hệ (r: id nói chung, nhưng r: nhúng trong trường hợp này) có sẵn tại:

rId = blip.embed

Sau đó, bạn có thể lấy phần hình ảnh từ phần tài liệu

document_part = document.part
image_part = document_part.related_parts[rId]

Và sau đó hình ảnh nhị phân có sẵn để đọc và viết trên

blip = inline_shape._inline.graphic.graphicData.pic.blipFill.blip
0.

Nếu bạn viết một BLOB mới, nó sẽ thay thế hình ảnh trước khi được lưu.

Bạn có thể muốn làm cho nó hoạt động với một hình ảnh duy nhất và cảm nhận về nó trước khi mở rộng lên nhiều hình ảnh trong một tài liệu.

Có thể có một hoặc hai đặc điểm hình ảnh được lưu trong bộ nhớ cache, vì vậy bạn có thể không nhận được tất cả các điểm tốt hơn hoạt động cho đến khi bạn lưu và tải lại tệp, vì vậy chỉ cần cảnh giác với điều đó.

Không phải vì sự yếu tim như bạn có thể thấy, mà nên hoạt động nếu bạn muốn nó đủ tệ và có thể theo dõi mã một chút :)

Hướng dẫn python-docx extract images - Hình ảnh trích xuất python-docx

Một bưc tranh đang gia ngan lơi noi. Đây là lý do hình ảnh là một phần không thể thiếu của các tài liệu, cụ thể là các tài liệu từ. Các hình ảnh được sử dụng để làm cho nội dung hấp dẫn hơn và bắt mắt hơn. Khi phân tích các tài liệu từ, bạn có thể bắt gặp kịch bản mà bạn cần trích xuất hình ảnh. Để đạt được chương trình này, bài viết này bao gồm cách trích xuất hình ảnh từ Word Docx trong Python.how to extract images from Word DOC DOCX in Python.

  • Thư viện Python để trích xuất hình ảnh từ Word docxx
  • Trích xuất hình ảnh từ các tài liệu từ

Aspose.words cho Python là một thư viện mạnh mẽ và giàu tính năng được sử dụng để tạo và thao tác các tài liệu từ. Chúng tôi sẽ sử dụng thư viện này để trích xuất hình ảnh từ các tệp docx hoặc tài liệu. Bạn có thể cài đặt nó trong các ứng dụng Python của bạn từ PYPI bằng lệnh PIP sau.

pip install aspose-words

Các hình ảnh trong các tài liệu từ được biểu thị bằng các nút hình. Do đó, để lấy hình ảnh từ một tài liệu, bạn sẽ phải phân tích các hình dạng. Các bước sau đây cho thấy cách trích xuất hình ảnh từ một từ tài liệu trong Python.

  • Đầu tiên, tải tài liệu Word bằng lớp tài liệu.
  • Sau đó, truy xuất tất cả các hình dạng vào một đối tượng bằng phương thức document.get_child_nodes (Nodetype.shape, true).
  • Vòng lặp qua các hình dạng và cho mỗi hình dạng, hãy thực hiện các hoạt động sau:
    • Đúc hình dạng thành loại hình dạng bằng phương pháp as_shape ().
    • Kiểm tra nếu hình dạng có hình ảnh bằng phương pháp hình dạng.has_image ().
    • Lưu hình dạng như một hình ảnh bằng phương thức SHAPE.IMAGE_DATA.SAVE (Chuỗi).

Mẫu mã sau đây cho thấy cách trích xuất hình ảnh từ tài liệu Word Docx trong Python.

API để trích xuất hình ảnh từ Doc Docx - Nhận Giấy phép API miễn phí

Bạn có thể nhận được giấy phép tạm thời để sử dụng Aspose.words cho Python mà không có giới hạn đánh giá.

Sự kết luận

Hình ảnh thường được sử dụng trong các tài liệu từ để làm cho nội dung hấp dẫn hơn. Trong các trường hợp khác nhau, hình ảnh cũng được yêu cầu được trích xuất từ ​​các tài liệu cùng với văn bản. Do đó, trong bài viết này, bạn đã học được cách trích xuất hình ảnh từ các tài liệu Word Docx trong Python. Bên cạnh đó, bạn có thể khám phá tài liệu của Aspose.words cho Python. Trong trường hợp bạn sẽ có bất kỳ câu hỏi, vui lòng cho chúng tôi biết qua diễn đàn của chúng tôi.

Xem thêm

  • Tạo tài liệu MS Word bằng Python
  • Chuyển đổi tài liệu Word thành HTML bằng Python
  • Chuyển đổi tài liệu từ sang PNG, JPEG hoặc BMP trong Python
  • Tài liệu từ để đánh dấu bằng cách sử dụng python
  • So sánh hai tài liệu từ trong Python

Thông tin: Nếu bạn cần lấy một tài liệu từ từ bản trình bày PowerPoint, bạn có thể sử dụng trình bày Aspose to Word Document. If you ever need to get a Word document from a PowerPoint presentation, you can use Aspose Presentation to Word Document converter.