<｜begin▁of▁sentence｜>### Instruction:
Given a Cairo drawing context, how can you use the CairoTextDrawer class from igraph to draw the text 'Hello, World!' onto the canvas within a specified bounding box, wrapping the text if it exceeds the width of the box, and then save the result to a PNG file named 'hello_world.png'?
### Response:
from igraph.drawing import CairoTextDrawer
import cairo

# Set up the surface and context for drawing
canvas = cairo.ImageSurface(cairo.FORMAT_ARGB32, 600, 200)
context = cairo.Context(canvas)

# Initialize a CairoTextDrawer with the context
ctd = CairoTextDrawer(context)

# Set the text and bounding box properties
text_to_draw = 'Hello, World!'
ctd.text = text_to_draw
ctd.bbox = (10, 10, 200, 100)

# Draw the text onto the canvas at the specified coordinates
ctd.draw_at(20, 20, width=180, wrap=True)

# Save the drawn surface to a file
canvas.write_to_png('hello_world.png')
<|EOT|>
