Förra veckan cirkulerade ett nytt program bland Macsajter som fick hyfsat mycket intresse. Textsniper är ett litet verktyg som gör det busenkelt att läsa av text från både bilder och dokument och webbplatser som inte tillåter dig att markera och/eller kopiera text. Den kopierade texten hamnar i urklipp och du kan sedan klistra in den var du vill.

Men för ett program som kostar nästan 100 kronor är det väldigt begränsat. För det första fungerar det bara på engelska, och texten behåller radbrytningar så att du oftast måste redigera den. Dessutom finns det flera betydligt mer flexibla tekniker att ocr-skanna från skärmdumpar, även lösningar som är helt gratis. På köpet lär du dig lite mer om automatisering.

Keyboard Maestro

Keyboard Maestro

Macens bästa automatiseringshjälpreda Keyboard Maestro har en inbyggd funktion för att läsa av texten i bilder, och det är enkelt att bygga ett makro för att förvandla text ur en skärmdump till riktig text.

Som vanligt med makron finns flera tillvägagångssätt och du kan så klart modifiera vårt exempel till att passa hur du trivs med att arbeta.

  1. Börja med att skapa ett nytt makro. Vi kallar vårt OCR Clipboard SV och sorterar det i en Clipboard-grupp där vi även har andra urklippsrelaterade makron. Välj namn och plats som passar dig.
  2. Välj något sätt att aktivera makrot genom att klicka på New Trigger. Du kan till exempel välja ett valfritt kortkommando.
  3. Klicka på New Action och leta upp OCR Image. Dra den till rutan No Action.
  4. Välj språk (om du väljer något annat än engelska måste programmet först ladda ner nödvändiga filer, men de är inte så stora).
  5. Ändra utmatning från save results to variable till save results to clipboard.
  6. Lägg till en ny Action. Leta upp och dra Search and Replace så att den hamnar efter ocr-funktionen.
  7. Ändra sökfunktion från String (ignoring case) till Regular Expression (ignoring case).
  8. Sök efter \R+ och ersätt med %Space%.
  9. Klicka på kugghjulet uppe till höger i den rutan och välj Duplicate.
  10. Byt ut \R+ mot %Space%+ i den undre.

De två sök-och-ersätt-funktionerna ersätter först alla radbrytningar med mellanslag och tar sedan bort eventuella dubbla mellanslag.

För att använda makrot tar du först en skärmdump av valfritt område med Mac OS inbyggda funktion: kortkommandot shift-cmd-4, rita upp en rektangel och håll nere ctrl-tangenten när du släpper så hamnar skärmdumpen i urklipp istället för en fil på skrivbordet. Aktivera makrot med ditt kortkommando (eller vad du nu valde) och vips har du texten i urklipp och kan klistra in den där du vill ha den.

Du kan skapa olika makron för olika språk om det behövs, men om du väljer svenska kan den även läsa engelska utan problem eftersom alla engelska tecken ingår i svenska alfabetet.

Alfred

Alfred

Ett populärt program bland Macanvändare som vill automatisera och använda tangentbordet så mycket som möjligt. Här finns tyvärr ingen inbyggd funktion för ocr-skanning, men en användare har redan tagit fram ett arbetsflöde som fixar det. För att fungera måste du först installera Tesseract, ett öppet källkodprojekt som drivs av Google och ger datorn ett terminalkommando för att ocr-skanna bilder. Det gör du med Homebrew och kommandot brew install tesseract-lang.

Ladda sedan ned och lägg till arbetsflödet i Alfred. När du kör det aktiveras skärmdumpsfunktionen, bilden du tar ocr-skannas och resultatet hamnar i urklipp. Du aktiverar det med Alfred-kommandot ocr swe för att läsa på svenska (bara ocr läser på engelska och mandarin, andra språk har andra trebokstavskoder).

Andra lösningar – gör det själv

Tesseract-kommandot (se ovan) innebär att du kan ocr-skanna bilder, till exempel från skärmdumpar, både direkt via terminalen och med olika skriptsystem som Applescript och Automator. Med Automator kan du till exempel använda funktionen Kör kommandotolksskript med följande kod:

screencapture -i /tmp/ocr.png
/usr/local/bin/tesseract /tmp/ocr.png stdout | pbcopy
rm /tmp/ocr.png

Om du inte redan har gett Automator behörighet att spela in skärmen kommer du tillfrågas om det första gången du kör arbetsflödet.