python - I ShellExecute, hvordan du angiver udskriftsparametre som sidevalg, bakke osv.?

Indlæg af Hanne Mølgaard Plasc

Problem



Dette er koden jeg bruger til at udskrive en pdf-fil på en Windows-maskine ved hjælp af Python. Jeg har Adobe Acrobat Reader installeret til at hjælpe med udskrivning.


win32api.ShellExecute(0,"print",file\_path,"NPIAC1EC3 (HP LaserJet Pro MFP M226dw)",".",3)  


Hvordan kan jeg tilføje flere muligheder for at nævne ting som printerbakke/sidekilde, sidekategori osv.?


Jeg har læst dokumentationen på ShellExecute fra MSDN. [9]


Jeg har set i dokumentationen, at der er en lpParameters (jeg gætter helt på, at dette er hvor jeg angiver udskriftsparametre), men ingen forklaringer på, hvordan man bruger det med 'print' parameter.

Bedste reference


Den tilknyttede dokumentation angiver, hvad du vil, ikke er muligt. Kommenterede uddrag (understrege min):


Syntaks:



HINSTANCE ShellExecute(
  \_In\_opt\_ HWND    hwnd,
  \_In\_opt\_ LPCTSTR lpOperation,
  \_In\_     LPCTSTR lpFile,
  \_In\_opt\_ LPCTSTR lpParameters,
  \_In\_opt\_ LPCTSTR lpDirectory,
  \_In\_     INT     nShowCmd
);

  
  Parametre
...


  
  

      
  • lpOperation [[i, valgfri]]

      
      Type: LPCTSTR

      
      En peger til en null-termineret streng, der i dette tilfælde omtales som et verb, ... Følgende verb bruges almindeligt: ​​
    ...


      
      Print

      
      Udskriver den fil, der er angivet af lpFile. Hvis lpFile ikke er en dokumentfil, fejler funktionen .

  •   



Så når du bruger "print" som et verb lpFile skal der være en dokumentfil



  ...

  
  

      
  • lpParameters [[i, valgfri]]

      
      Type: LPCTSTR

      
      Hvis lpFile angiver en eksekverbar fil, er denne parameter en pointer til en nulltermineret streng, der angiver de parametre, der skal overføres til applikationen. Formatet af denne streng bestemmes af det verb, der skal påberåbes. Hvis lpFile angiver en dokumentfil, skal lpParameters være NULL .

  •   



Så når du bruger print som verben, skal lpFile være en dokumentfil, og lpParameters skal være null: der er ingen bestemmelse om at overføre yderligere parametre til en ShellExecute print handling.