Search code examples
c++qtprintingroot-access

How to run print command lpr -p programmatically throgh root privilage in Qt


I want to run print command lpr -p programmatically through root privilege in Qt. Actually I want to print the pdf file using these command. This command is working through terminal but not through programmatically.

Thanks in advance.


Solution

  • you can run commands that need root privilege by running :

    echo myPass | sudo -S lpr -p
    

    Although it's not a good idea to echo your password in shell but you can do it in Qt via Qprocess like :

    QProcess process1;
    QProcess process2;
    
    process1.setStandardOutputProcess(&process2);
    
    process1.start("echo myPass");
    process2.start("sudo -S lpr -p");
    process2.setProcessChannelMode(QProcess::ForwardedChannels);
    
    
    process2.waitForFinished(3000);