14 berichten aan het bekijken - 1 tot 14 (van in totaal 14)
  • Q:

    Bijdrager
    trekker

    Script aan UI koppelen

    Hoi mensen,

    Vraagje: normaal print ik via de terminal naar CUPS met dit
    commmando: lpr -o raw <file>

    Is er een mogelijkheid dit via de UI te doen? BV door te voegen aan het context menu toe te voegen? Rechtermuis klik en dan selecteren “Raw print”.

    hoe kan ik iets dergelijks voor elkaar krijgen? Ik ben redelijk nieuw met de Mac, ik heb wel iets gehoord over AppleScript.. Lukt dit hier mee?

    (Ik ben alleen bekend met het gouwe ouwe REXX van de Amiga:))

    Bedankt voor hulp!!!

    Gr. Joris


    Bijdrager
    Jan-Willem

    met het proggie dropscript zou dat moeten kunnen.


    Moderator
    Adriaan Mol

    AppleScript is your tool! AppleScript is zo makkelijk om te leren, kijk even bij de Links (op deze site) voor goede AppleScript sites.


    Bijdrager
    meneer de koekepeer

    Waarom printen via cups?
    Ik weet niet waar je naartoe print, maar IP printing is my friend:D


    Bijdrager
    trekker

    Ik ben een bezig met een stage opdracht met betrekking tot printen op de Mac.

    Soms wil ik een file rechtstreeks naar de printer sturen zonder dat CUPS er nog aan gaat zitten sleutelen.

    Ik zal eens met AppleScript aan de gang gaan.

    Joris


    Bijdrager
    Julian

    Om je alvast op weg te helpen:
    Zet dit in Script Editor en save als Application (het wordt een dropscript):
    [code:1:d876be7abd]global item_counter

    on run
    set the item_counter to 0
    tell application "Finder"
    activate
    set this_folder to (the target of the front window) as alias
    my processor()
    my process_folder(this_folder)
    my display_result(item_counter)
    end tell
    end run

    — This droplet processes both files or folders of files dropped onto the applet
    on open these_items
    set the item_counter to 0
    –get_angle()
    repeat with i from 1 to the count of these_items
    set this_item to (item i of these_items)
    set the item_info to info for this_item
    if folder of the item_info is true then
    process_folder(this_item)
    else if (alias of the item_info is false) then
    process_item(this_item)
    end if
    end repeat
    my display_result(item_counter)
    end open

    — this sub-routine processes folders
    on process_folder(this_folder)
    set these_items to list folder this_folder without invisibles
    repeat with i from 1 to the count of these_items
    set this_item to alias ((this_folder as text) & (item i of these_items))
    set the item_info to info for this_item
    if folder of the item_info is true then
    process_folder(this_item)
    else if (alias of the item_info is false) then
    process_item(this_item)
    end if
    end repeat
    end process_folder

    — this sub-routine processes single files
    on process_item(this_item)
    try
    set unixpath to unix_path(this_item)
    — put your shell script here
    set command to "lpr -o raw " & unixpath
    do shell script command
    set the item_counter to the item_counter + 1
    on error error_message
    tell application "Finder"
    activate
    display dialog error_message buttons {"Cancel"} default button 1
    end tell
    end try
    end process_item

    — this sub-routine changes the mac file path (bla:blabla:blablabla) to a unix-like file path
    on unix_path(mac_path)
    set unixpath to (POSIX path of mac_path)
    set chars to every character of unixpath
    repeat with i from 1 to length of chars
    if "!$&"’*(){[|;<>?~` \" contains (item i of chars as text) then
    set item i of chars to "\" & (item i of chars as text)
    end if
    end repeat
    return every item of chars as string
    end unix_path

    — display final result
    on display_result(item_counter)
    if the item_counter is 0 then
    set the display_message to "Er zijn geen documenten geprint"
    else if the item_counter is 1 then
    set the display_message to "Eén document wordt geprint"
    else
    set the display_message to ((item_counter as string) & " documenten worden geprint.")
    end if
    tell application "Finder"
    activate
    display dialog display_message buttons {"?"} default button 1 giving up after 2
    end tell
    end display_result[/code:1:d876be7abd]

    Het script is een beetje van mezelf en een beetje van maggi (en apple en james sorenson). Je zult ongetwijfeld nog wel een aantal dingen moeten aanpassen maar het zou al moeten werken.

    Meer applescript info op developer.apple.com


    Bijdrager
    trekker

    Ik kom er niet helemaal uit.

    Ik heb DropScript gedownload, maar ik kan er nergens documentatie over vinden.

    Ik heb de code van Julian geopend met Script Editor en gesaved als “compiled script”.

    hoe zorg ik voor de activatie van dit script en hoe geef ik de bestandsnaam door aan het script?

    Is er geen “simpele” manier om iets aan het contextueel menu toe te voegen (Open With, Copy, Paste, Duplicate menu bedoel ik hier mee).

    Gewoon rechter muis en dan “Send to Raw Printer” of zoiets. In Windows is heel makkelijk te doen, kun je zelfs per filetype aangeven.

    Heb ik hier persé een script voor nodig?

    Gr. Joris


    Bijdrager
    Jan-Willem
    ”trekker”

    Ik kom er niet helemaal uit.

    Ik heb DropScript gedownload, maar ik kan er nergens documentatie over vinden.

    op de site staat een handleiding


    Bijdrager
    trekker

    Op deze site: http://www.advogato.org/proj/DropScript/

    heb ik dit als enigste aan documentatie gevonden:

    DropScript is a little Cocoa application (for Mac OS X) that lets you drop any program onto it which takes files as command line arguments and creates a new application from that program. Generally, these programs are scripts written in sh, perl, etc. So you can now write a shell script like so:

    #!/bin/sh
    gzip -9 “$@”

    Then call the script “GZip.sh”, drop that file onto DropScript, and out pops DropGZip.app next to GZip.sh. When you drop files onto DropGZip, it compresses the files for you.

    Is dit het goede programmaatje?

    En ik zie nergens een Drop Window, zoals je bijvoorbeeld bij Drop Zip hebt. Of zit ik helemaal verkeerd over dit programma dit te denken???

    Is het niet mogelijk iets aan het context menu toe te voegen?

    Gr. Joris


    Bijdrager
    trekker

    Ik heb de text nog eens goed gelezen en tot de volgende conclusie gekomen:

    Met behulp van DropScript moet ik een nieuwe applicatie maken, en in deze nieuwe applicatie kan ik mijn files droppen.

    klopt dit?

    dan de vraag, hoe maak ik die nieuwe applicatie met DropScript?

    Ik kan in het menu alleen kiezen voor: Open, en dan kies ik mijn compiled script… maar daarna gebeurd er niks..

    Hmmm ben een beetje op goede weg denk ik:)


    Bijdrager
    Jan-Willem
    ”trekker”

    Ik heb de text nog eens goed gelezen en tot de volgende conclusie gekomen:

    Met behulp van DropScript moet ik een nieuwe applicatie maken, en in deze nieuwe applicatie kan ik mijn files droppen.

    klopt dit?

    dan de vraag, hoe maak ik die nieuwe applicatie met DropScript?

    Ik kan in het menu alleen kiezen voor: Open, en dan kies ik mijn compiled script… maar daarna gebeurd er niks..

    Hmmm ben een beetje op goede weg denk ik:)

    ja dit klopt. volgens mij moet je een gewoon scriptje gebruiken ipv een gecompileerde


    Bijdrager
    trekker

    Nu snap ik hoe DropScript werkt.

    Maar hoe schrijf ik dat scriptje nu?

    Is dat van Julian niet een beetje gecompliceerd, kan het niet met een simpel shell scriptje?

    Vanuit dat voorbeeld van de documentatie heb ik dit gedaan:

    #!/bin/sh
    lpr -o raw “$@”

    Maar dit doet niet echt iets:) Behalve dan “Application not Responding”:)

    Enig idee iemand?

    Gr. Joris


    Bijdrager
    Julian

    Nee nee, mijn script is puur applescript. Je moet het kopieren in script editor (applicaties/hulp programma’s denk ik) en bewaren als application. Het wordt dan automatisch een dropscript (een applescript icoontje met een naar beneden wijzend pijltje erin) Je kunt daar je files en mappen opgooien/insplepen en dan zou ie het unix commando moeten uitvoeren dat achter de variabele ‘commando’ staat. Het applicatietje dropscript wordt dus helemaal niet gebruikt, hoewel je het volgens mij op die manier ook zou moeten kunnen doen. Ik weet alleen niet hoe goed ie met mappen en multiple files omgaat.

    FF over de code: Die is niet zo moeilijk…
    In het 1e deel worden een aantal variabelen gereserveerd
    In het 2e deel wordt bekeken of we te maken hebben met losse files of een map
    In het derde deel wordt een evt. map ontleed
    In het 4e deel wordt een file geprocessed (dus wordt je unix command uitgevoerd
    In het 5e deel wordt een standaard macintosh filepath (met ‘:’ als scheindings teken omgezet naar een unix file path (met ‘/’ en ‘ ‘ voor spaties)
    In het 6e deel wordt uiteindelijk het aantal files dat geprocessed is getoont in een dialoogvenstertje.

    Alleen deel 4 is echt interessant voor je omdat je daar het unix commando in elkaar klust. De rest is de code voor het dropscript (die van AppleScript dus)


    Bijdrager
    trekker

    Ik had hem zelf al een keer als Application opgeslagen in de Script Editor. Maar toen kreeg ik deze foutmelding bij het opstarten:
    <<script>> doesn’t understand the processor message

    Toen heb ik de application maar afgesloten, maar nu blijkt dat als ik doorklik het programmaatje wel werkt.

    Is er nog iets te doen aan die foutmelding?

    Gr. Joris

14 berichten aan het bekijken - 1 tot 14 (van in totaal 14)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.