How to Print a Visualforce page in Salesforce?

Controller:

public class PrintSample {
 
    public List<account> objList {get; set;}
    
    public PrintSample() {
        objList = new List<account>();
        objList = [SELECT Name, Phone FROM Account];
    }
}

Visualforce Page:

<apex:page showheader="false" controller="PrintSample">
    <apex:panelgrid width="100%" style="text-align:right;">
        <apex:form>
            <apex:commandlink value="Print" onclick="window.print();"></apex:commandlink>
        </apex:form>
    </apex:panelgrid>
    <apex:pageblock title="Account Information">
        <apex:pageblocktable value="{!objList}" var="a">
            <apex:column value="{!a.Name}"></apex:column>
            <apex:column value="{!a.Phone}"></apex:column>
        </apex:pageblocktable>
    </apex:pageblock>
</apex:page>

Output:

download