How can you create a function to print content in Zim?

 // Create Window 
    let w = new Window({
        width: 700,
        height: 700,
        backgroundColor: "white",
        borderColor: "black",
        scrollBarActive: true,
        scrollBarDrag: true,
        padding: 20
    }).center(topContainer);

    // Draw a circle and add it to the window
    let circle = new Circle(50, "green");
    w.add(circle);
    circle.center(w).drag();

    // Function to print content

    function printContent() {
        let printWindow = window.open('', '_blank');
        printWindow.document.write('<html><head><title>Print</title><style>@page { size: 612px 792px; margin: 0; }</style></head><body>');

        //How can you add the circle to the document so that it mirrors the same layout and formatting as the window?  How can I ensure that content in the window is added to the document to be printed with the same sizing and layout? 

        printWindow.document.write('</body></html>');
        printWindow.document.close();
        printWindow.print();
        printWindow.close();
    }

I am not sure - I have never done any printing commands with JS. I would imagine that we can do whatever printing the canvas can do - so search printing documents with the html canvas with javascript or something like that. Perhaps someone else here has done printing?