Newsgroup: it.comp.macintosh
Titolo: Automator, azioni cartella e alternative.

Ho come l'impressione che Apple stia abbandonando questa tecnologia. Sto
provando a sostituire una funzionalità (abbandonata) del driver Brother
che mi permetteva di stampare su una qualsiasi stampante una scansione
fatta con la multifunzione, comandandola direttamente dalla
multifunzione.
Ora posso comunque salvare i file (pdf o jpeg) scansionati in una
cartella del Mac, si tratterebbe di avere un azione che stampi il
documento e lo cancelli.
Tra che non è più possibile associare l'azione semplicemente dal menu
contestuale, anche le azioni stesse non funzionano correttamente. Se uso
"stampa immagine" (senza ridimensionamento rotazione o altro), i pdf
vengono stampati spostati e tagliati, i jpeg ridimensionati. "Stampa
elemento finder" non permette di selezionare una stampante e manda sulla
default, con margini più ampi di quello che permetterebbe la stampante
stessa. Inoltre a seguito del comando "stampa elemento finder", sembra
che a differenza del comando "stampa immagine", l'elemento non venga
passato al comando successivo (sposta nel cestino).
Che alternative potrebbero esserci per eseguire la stampa automatica dei
file provenienti dallo scanner? Automator + Apple script? Ma fin quando
funzioneranno queste tecnologie? E come si passa un elemento da
automator ad applescript?
 
-- 
Per rispondere, togliere -NOSPAM- dall'indirizzo.

Aladino <borgob...@SPAM-alice.it> wrote:
 
Per il momento sono arrivato a questo AppleScript (attivato tramite
Azioni Cartella):
 
property extension_list : {"bmp", "jpg", "tif", "png", "pdf"}
on adding folder items to this_folder after receiving these_items
 try
  tell application "Finder"
   set stampante to the name of this_folder
   repeat with i from 1 to number of items in these_items
    set this_item to item i of these_items
    if (the name extension of this_item is in the extension_list) then
     tell application "Preview"
      print this_item
     end tell
    end if
    delete this_item
   end repeat
  end tell
 end try
end adding folder items to
 
Mi manca riuscire a selezionare la stampante corretta (in base al nome
della cartella). Il problema sembra essere che Preview non accetta
"print objects with properties", se uso "Image Events" lo script non
produce nessun effetto, mentre il comando print da finder mi aprirebbe
alcuni documenti con altre applicazioni (ma in questo caso vorrei usare
Preview). Tra l'altro non ho ancora capito se bisogna usare il nome
"normale" o quello della coda di stampa (con gli underscore al posto
degli spazi).


Aladino <borgob...@SPAM-alice.it> wrote:
 
Per il momento sono arrivato a questo AppleScript (attivato tramite
Azioni Cartella):
 
property extension_list : {"bmp", "jpg", "tif", "png", "pdf"}
on adding folder items to this_folder after receiving these_items
 try
  tell application "Finder"
   set stampante to the name of this_folder
   repeat with i from 1 to number of items in these_items
    set this_item to item i of these_items
    if (the name extension of this_item is in the extension_list) then
     tell application "Preview"
      print this_item -- with properties {target printer:stampante}
     end tell
    end if
    delete this_item
   end repeat
  end tell
 end try
end adding folder items to
 
Mi manca riuscire a selezionare la stampante corretta (in base al nome
della cartella). Il problema sembra essere che Preview non accetta "with
properties" (come ho docuto mettere a commento), se uso "Image Events"
lo script non produce nessun effetto, mentre il comando print da finder
mi aprirebbe alcuni documenti con altre applicazioni (ma in questo caso
vorrei usare Preview). Tra l'altro non ho ancora capito se bisogna usare
il nome "normale" o quello della coda di stampa (con gli underscore al
posto degli spazi).
 
Lo script, a chi non fosse chiaro, dovrebbe stampare il contenuto di una
cartella, indirizzandolo alla stampante in base al nome della cartella,
in modo da poterlo usare con più stampanti.


Prova e riprova sono arrivato a questo:
 
property extension_list : {"bmp", "jpg", "tif", "png", "pdf"}
on adding folder items to this_folder after receiving these_items
 try
  tell application "Finder"
   set stampante to the name of this_folder
   set versione_OS to system version of (system info)
   considering numeric strings
    set mavericks to versione_OS ≥ "10.9"
   end considering
   if mavericks then
    try
     tell application "Printer Setup Utility"
      if the name of current printer is not stampante then
       repeat with x from 1 to the count of printers
        if the name of printer x is stampante then
         set the current printer to printer x
        end if
       end repeat
      end if
     end tell
    end try
   end if
   repeat with i from 1 to number of items in these_items
    set this_item to item i of these_items
    if (the name extension of this_item is in the extension_list) then
     tell application "Preview"
      print this_item -- with properties {target printer:stampante} --
togliere commento per mavericks
     end tell
    end if
    delete this_item
   end repeat
  end tell
 end try
end adding folder items to
 
In linea di massima lo script funziona, ma quello che ancora non mi
piace è doverlo modificare per farlo funzionare su Mavericks o OS
precedenti, in quanto anche se metto sotto "if mavericks ..." il "print
this_item with properties {target printer:stampante}", sotto ML lo
script non funziona. Qualche idea per risolvere quest'ultimo inghippo?


Prova e riprova sono arrivato a questo:
 
property extension_list : {"bmp", "jpg", "tif", "png", "pdf"}
on adding folder items to this_folder after receiving these_items
 try
  tell application "Finder"
   set stampante to the name of this_folder
   set versione_OS to system version of (system info)
   considering numeric strings
    set pre_mavericks to versione_OS < "10.9"
   end considering
   if pre_mavericks then
    try
     tell application "Printer Setup Utility"
      if the name of current printer is not stampante then
       repeat with x from 1 to the count of printers
        if the name of printer x is stampante then
         set the current printer to printer x
        end if
       end repeat
      end if
     end tell
    end try
   end if
   repeat with i from 1 to number of items in these_items
    set this_item to item i of these_items
    if (the name extension of this_item is in the extension_list) then
     tell application "Preview"
      print this_item -- with properties {target printer:stampante} --
togliere commento per mavericks
     end tell
    end if
    delete this_item
   end repeat
  end tell
 end try
end adding folder items to
 
In linea di massima lo script funziona, ma quello che ancora non mi
piace è doverlo modificare per farlo funzionare su Mavericks o OS
precedenti, in quanto anche se metto sotto "if mavericks ..." il "print
this_item with properties {target printer:stampante}", sotto ML lo
script non funziona. Qualche idea per risolvere quest'ultimo inghippo?
 
 
