Tha paint cache of the canvas is for the content of the plot canvas. So no surprise, that is doesn't contain axes, legend and plot title.

You can render to a QPixmap using QPixmap::grabWidget(). You can also use QWidget::render() if you like to have someting different as a QPixmap. F.e. a scalable vector graphics format like PDF or SVG makes a lot of sense in a text document.

Finally you can also use QwtPlot:rint, that also renders to any specific type of QPaintDevice. In opposite to QWiget::render you can render the plot in a different geometry than the widget is. F.e you can align your plot to your paper geometries without any scaling effects.

HTH,
Uwe