Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Aspose.Words cho phép người dùng làm việc với hình ảnh một cách rất linh hoạt. Trong bài viết này, bạn chỉ có thể khám phá một số khả năng làm việc với hình ảnh.
DocumentBuilder cung cấp một số tính năng nạp chồng của phương thức insert_image cho phép bạn chèn hình ảnh nội tuyến hoặc hình ảnh nổi. Nếu hình ảnh là siêu tệp EMF hoặc WMF, nó sẽ được chèn vào tài liệu ở định dạng siêu tệp. Tất cả các hình ảnh khác sẽ được lưu trữ ở định dạng PNG. Phương thức Chèn hình ảnh có thể sử dụng hình ảnh từ nhiều nguồn khác nhau:
URL bằng cách truyền tham số chuỗiStreamĐối với mỗi phương pháp Chèn hình ảnh, còn có các mức quá tải khác cho phép bạn chèn hình ảnh với các tùy chọn sau:
Chuyển một chuỗi đại diện cho tệp chứa hình ảnh tới insert_image để chèn hình ảnh vào tài liệu dưới dạng đồ họa nội tuyến.
Ví dụ mã sau đây cho biết cách chèn hình ảnh nội tuyến ở vị trí con trỏ vào tài liệu:
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.insert_image(docs_base.images_dir + "Logo.jpg")
doc.save(docs_base.artifacts_dir+"WorkingWithImages.document_builder_insert_inline_image.doc")Ví dụ về mã sau đây cho biết cách chèn hình ảnh nổi từ tệp hoặc URL ở vị trí và kích thước được chỉ định:
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.insert_image(docs_base.images_dir + "Logo.jpg",
aw.drawing.RelativeHorizontalPosition.MARGIN,
100,
aw.drawing.RelativeVerticalPosition.MARGIN,
100,
200,
100,
aw.drawing.WrapType.SQUARE)
doc.save(docs_base.artifacts_dir+"WorkingWithImages.document_builder_insert_floating_image.doc")Tất cả hình ảnh được lưu trữ bên trong các nút Shape trong Document. Để trích xuất tất cả hình ảnh hoặc hình ảnh có loại cụ thể từ tài liệu, hãy làm theo các bước sau:
Ví dụ mã sau đây cho thấy cách trích xuất hình ảnh từ tài liệu và lưu chúng dưới dạng tệp:
Bạn có thể tải xuống tệp mẫu của ví dụ này từ đây.
Ví dụ này minh họa cách bạn thêm các mã vạch giống nhau hoặc khác nhau trên tất cả hoặc các trang cụ thể của tài liệu Word. Không có cách trực tiếp để thêm mã vạch trên tất cả các trang của tài liệu nhưng bạn có thể sử dụng các phương thức move_to_section, move_to_header_footer và insert_image để di chuyển đến bất kỳ phần hoặc đầu trang/chân trang nào và chèn hình ảnh mã vạch như bạn có thể thấy trong đoạn mã sau.
Ví dụ về mã sau đây Chèn hình ảnh mã vạch trên mỗi trang của tài liệu.
Tỷ lệ khung hình của hình dạng hình học là tỷ lệ kích thước của nó theo các kích thước khác nhau. Bạn có thể khóa tỷ lệ khung hình của hình ảnh bằng aspect_ratio_locked. Giá trị mặc định của tỷ lệ khung hình của hình dạng phụ thuộc vào ShapeType. Đó là True cho ShapeType.IMAGE và False cho các loại hình dạng khác.
Ví dụ mã sau đây cho thấy cách làm việc với tỷ lệ khung hình:
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
shape = builder.insert_image(docs_base.images_dir + "Logo.jpg")
shape.aspect_ratio_locked = False
doc.save(docs_base.artifacts_dir+"WorkingWithImages.set_aspect_ratio_locked.doc")Nếu bạn muốn hộp giới hạn thực tế của hình được hiển thị trên trang, bạn có thể đạt được điều này bằng cách sử dụng thuộc tính bounds_in_points.
Ví dụ mã sau đây cho thấy cách sử dụng thuộc tính này:
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
shape = builder.insert_image(docs_base.images_dir + "Logo.jpg")
shape.aspect_ratio_locked = False
print("\nGets the actual bounds of the shape in points.")
rect = shape.get_shape_renderer().bounds_in_points
print(f"{rect.x}, {rect.y}, {rect.width}, {rect.height}")Việc cắt xén hình ảnh thường đề cập đến việc loại bỏ các phần bên ngoài không mong muốn của hình ảnh để giúp cải thiện khung hình. Nó cũng được sử dụng để loại bỏ một số phần của hình ảnh nhằm tăng sự tập trung vào một khu vực cụ thể.
Ví dụ về mã sau đây cho thấy cách đạt được điều này bằng Aspose.Words API:
# The path to the documents directory.
inputPath = docs_base.images_dir + "Logo.jpg"
outputPath = docs_base.artifacts_dir + "cropped_logo.jpg"
self.crop_image(inputPath,outputPath, 100, 90, 200, 200)@staticmethod
def crop_image(inPath : str, outPath : str, left : int, top : int, width : int, height : int) :
doc = aw.Document();
builder = aw.DocumentBuilder(doc)
croppedImage = builder.insert_image(inPath)
src_width_points = croppedImage.width
src_height_points = croppedImage.height
croppedImage.width = aw.ConvertUtil.pixel_to_point(width)
croppedImage.height = aw.ConvertUtil.pixel_to_point(height)
widthRatio = croppedImage.width / src_width_points
heightRatio = croppedImage.height / src_height_points
if (widthRatio< 1) :
croppedImage.image_data.crop_right = 1 - widthRatio
if (heightRatio< 1) :
croppedImage.image_data.crop_bottom = 1 - heightRatio
leftToWidth = aw.ConvertUtil.pixel_to_point(left) / src_width_points
topToHeight = aw.ConvertUtil.pixel_to_point(top) / src_height_points
croppedImage.image_data.crop_left = leftToWidth
croppedImage.image_data.crop_right = croppedImage.image_data.crop_right - leftToWidth
croppedImage.image_data.crop_top = topToHeight
croppedImage.image_data.crop_bottom = croppedImage.image_data.crop_bottom - topToHeight
croppedImage.get_shape_renderer().save(outPath, aw.saving.ImageSaveOptions(aw.SaveFormat.JPEG))Aspose.Words cung cấp chức năng lưu tất cả hình ảnh có sẵn trong tài liệu sang định dạng WMF trong khi chuyển đổi DOCX sang RTF.
Ví dụ mã sau đây cho thấy cách lưu hình ảnh dưới dạng WMF với các tùy chọn lưu RTF:
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.