The Smile Blog, With News, Tips, Photos and Other Stuff That Makes Us Smile

4-Day Fall Deal: PDFpen 3-Pack

Posted 09/24/2015 by Team

Buy PDFpen 2, get PDFpen Scan+ and TextExpander touch free.

3 Smile apps in one pack

To celebrate the start of fall we're offering all three Smile iPad and iPhone apps for the price of one. 4 days only.


The PDFpen 3-Pack is $19.99 and contains PDFpen for iPad & iPhone, PDFpen Scan+, and TextExpander touch.

Deal ends Sunday, September 27, 2015. 

PDFpen for iPad & iPhone
Edit PDFs anywhere. Sign contracts, scribble notes and highlights, make changes, fill out applications, and more.

PDFpen Scan+
Scan contracts, invoices, or receipts as PDFs with your iPhone or iPad. Use OCR (Optical Character Recognition) to make that scan into a searchable PDF. Store scans in PDFpen's iCloud folder to make sharing between the two apps easy.

TextExpander touch
Type more with less effort on your iPhone or iPad. Expand custom keyboard shortcuts into frequently-used text snippets. Grab your favorite snippets from your Mac. PDFpen and PDFpen Scan+ both support TextExpander.

PDFpen Tip of the Day: Save your Signature to the PDFpen Library

Posted 09/18/2015 by Maia

PDFpen for Mac and PDFpen for iPad & iPhone make it easy to sign a document, either by scanning in a hand written signature, or using the scribble tool to write out a signature. But did you know you can keep that signature close at hand for fast reuse? Add it to your PDFpen Library of stored shapes and objects.

If you need to brush up on how to add a signature to a document check out the Help, or watch our video, “Sign a PDF.”

Add a Signature to the PDFpen Library (Mac)Library Window

  1. Make sure the Library window is open. (Window > Library or ⌘Y).
  2. Select your signature in the document you just signed.
  3. Click the plus “+” button at the bottom of the Library window.
  4. Choose “Add Selected Imprint.” Your signature is now in the Custom tab.

The next time you want to use an item saved in the Library, you can just drag it from the Library onto the document page.

If you don’t have a signed document, but you do have your signature scanned into your Mac, you can add it to the Library by opening the Library (⌘Y), clicking “+”, clicking “Add File,” and then locating your scanned signature image.

Add a Signature to the PDFpen Library (iPad and iPhone)iPad Library

  1. Select your signature in the document you just signed by tapping on it.
  2. Tap the Library and open the Custom tab.
  3. Tap the plus “+” and your signature will appear in the Custom tab.

Whenever you need to sign a document, open the library, and tap on your signature. It will appear in your document.

If you have PDFpen for iPad & iPhone and PDFpen purchased from the Mac App Store, your Library items will sync via iCloud.

12 Great Ways To Choose TextExpander Abbreviations

Posted 09/11/2015 by Maia

When you start your TextExpander snippet collection, step 1 is what to make into a snippet. Version 5 will give you some suggestions on that. Step 2 is what to name it, in other words how to pick the abbreviation to match the content from step 1.

We usually recommend something memorable and hard to type by accident to get you started. Once you’ve got hundreds of snippets to remember, you may desire a more detailed plan for your snippet names.

Here’s how a few TextExpander power users have decided to setup their naming conventions.

How the Pros Name Snippets

Dr. Drang has decided to use “jj” as a prefix on all his snippet abbreviations. This is to help with usage on the iPhone where the other prefix convention of “;” is hard to use. He also includes a script on how to change the prefixes of all your snippets if you’re already using a different prefix. We have our own version linked below.

David Sparks uses “x” to prefix his snippets, as he explains in our video “TextExpander 5: Working with Snippets.”

Additionally, you could have different prefixes for different groups. For example, all the snippets relating to your day job as a lawyer start with the prefix “yy” and all the snippets relating to your night job as a DJ start with “jj.”

Zack Holmquist suggests coming up with a logic for all your snippets so that you can better remember them. For example “” and “” as opposed to snippets for other people in your life like “” and “” Assuming you work at Acme Inc., you could have “acme.web” and “” along with your nightly DJ related snippets like “dj.web” and “dj.twitter.”

If that fails, you still have your search hotkey.

Luc P. Beaudoin discusses his preferred naming conventions, including those for citations and bibliographical references, which can get quite detailed. He has a neat way of keeping his contacts all sorted with their name, website, and email address.

If “@brte” expands to “Brett Terpstra” then “#brte” is his website and “@@brte” is his email address.

Finally, to help you switch to any of these, we have a script to help you re-prefix your snippets, wholesale or by group.

If you have your own great ideas on how you deal with abbreviations let us know at support or on twitter.

Use Regular Expressions in TextExpander via JavaScript

Posted 08/25/2015 by Greg

Use regular expressions on your Mac, iPad, and iPhone with TextExpander JavaScript snippets. This is specifically for TextExpander 5 and TextExpander touch 3.5 and later.

Regular Expressions can be incredibly useful when searching and replacing patterns in text. Blogger and podcaster Jason Snell writes that regular expressions saved him "hundreds of hours of drudgery".

Let's say that you frequently copy URLs to the clipboard and that these URLs have a bunch of tracking junk at the end in the form of a query string. You want to strip that junk. This is the perfect job for a regular expression, because there's a pattern. You want to strip everything from the question mark (?) to the closing quotation mark, if present. Here's an example of what you've got:

Here's what you want:

For fun, let's also handle the case when you've got the URL in HTML format, such as:
<a href="">Hello</a>

1. Make a new snippet in TextExpander, and set the Content: popup to JavaScript, then enter this as the snippet content:

// Start with the clipboard content
var result = TextExpander.pasteboardText;

// Strip the HTML query; everything after the ? up to
// any closing quotation mark
result = result.replace(/\?[^\"]+/, "");

// If we've got HTML (<a href…), strip that too
var hrefRegex = /<\s*a\s+href\s*=\s*\"([^\"]+)\"\s*>[^<]+<\s*\/a\s*>/i;
var matches = hrefRegex.exec(result);
if (matches && matches.length > 0) {
	result = matches[1];

// Return the result

2. Set an abbreviation, then copy the link above to your clipboard. Enter your abbreviation, and voilà, you get your stripped URL.

I use a JavaScript regular expression to take text lists such as this:

- Suggested snippets exclude most single dictionary words
- Adds new notification preference for snippet suggestions
- Fixes secure input notifications for Chrome
- Other minor fixes and improvements

…and turn them into HTML list items:

   <li>Suggested snippets exclude most single dictionary words</li>
   <li>Adds new notification preference for snippet suggestions</li>
   <li>Fixes secure input notifications for Chrome</li>
   <li>Other minor fixes and improvements</li>

Here's the snippet I use to do that:

// Start with the clipboard content
var result = TextExpander.pasteboardText;

// Replace all lines which start with "- " with "\t<li>"
result = result.replace(/^- /gm, "\t<li>");

// Replace all newlines with "</li>\n"
result = result.replace(/\n/g, "</li>\n");

I use regular expressions to save myself a ton of time on repetitive text manipulation. Regular expressions and TextExpander are a fantastic combination. Here are some resources if you're interested in learning more:
Regular Expressions Tutorial: A good place to get started
JavaScript Regex Cheatsheet: A concise reference to regular expressions in JavaScript
Patterns - The Regex App: Handy app for building and testing regular expressions
Mastering Regular Expressions: Definitive reference on regular expressions

El Capitan (OS X 10.11) is Coming

Posted 08/07/2015 by Maia

As the new fall operating system approaches, we are getting our apps ready. So far we’ve found El Capitan to be very stable, and we don’t anticipate any impediments to being ready for the OS X release. Here is the current state of our apps.

PDFpen / PDFpenPro

  • Known Issue: Incorrect colors in the watermark of the Smile logo placed on documents when in demo mode.
  • Fix: Coming in August.


  • Known Issue: Snippets not expanding in the save dialog of sandboxed apps in El Capitan.
  • Fix: Coming in August.

Found an Issue? Let us know!

If you are running the beta of El Capitan and have noticed any bugs not already listed above, please contact us. The more beta testers the better.

Fun with TextExpander and Scripting

Posted 07/17/2015 by Greg

TextExpander 5 adds support for JavaScript snippets, which can be run on all of your devices – Macs, iPads, and iPhones. Here is a sample script which rounds the current date to the nearest 5 minute interval:

// Rounded date
// Rounds up or down to the most recent 5 minute interval
// For example, 08:18 rounds to 08:20, and 08:17 rounds to 08:15
// Thanks to William Alba for submitting

currentTime = new Date();

hours = currentTime.getHours();
minutes = currentTime.getMinutes();

minutes_rounded = 5 * Math.round(minutes/5);

// handle cases when minutes round to 60, and when hours increment to 24

if (minutes_rounded == 60) {
  minutes_rounded = 0;
  hours = hours + 1;
if (hours == 24)
  hours = 0;

// 24-hour format requires leading zero

if (hours < 10)
  hours = "0" + hours;

if (minutes_rounded < 10)
  minutes_rounded = "0" + minutes_rounded;

hours + ":" + minutes_rounded

TextExpander itself is scriptable via AppleScript and JavaScript for automation. User Vlad Ghitulescu wanted to create a large number of snippets for inserting the day and time in OmniFocus. For example, he wanted to type ",di09" and have it expand to "Dienstag 09:00". Did I mention that Vlad works in German? Anyway, we worked with him to create a script to build the group he needed:

set greetWords to {"Monday", "Tuesday", "Wednesday", "Thursday", ¬

"Friday", "Saturday", "Sunday"}

-- set greetWords to {"Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"}

set abbreviationPrefixes to {"mo", "tu", "we", "th", "fr", "sa", "su"}

-- set abbreviationPrefixes to {"mo", "di", "mi", "do", "fr", "sa", "so"}

tell application "TextExpander"

set newGroup to make new group with properties ¬

{name:"Label with Date & Time"}

tell newGroup

if (count greetWords) is not (count abbreviationPrefixes) then

display dialog "The number of greetWords must match ¬

the number of abbreviationPrefixes"


end if

repeat with index from 1 to 6

set greetWord to item index of greetWords

set abbreviationPrefix to item index of abbreviationPrefixes

repeat with x from 6 to 22

set newAbbreviation to "," & abbreviationPrefix

if x is less than 10 then

set newAbbreviation to newAbbreviation & "0"

end if

set newAbbreviation to newAbbreviation & x

if x is less than 10 then

set snippetText to greetWord & " 0" & x & ":00"


set snippetText to greetWord & " " & x & ":00"

end if

set newSnippet to make new snippet with properties ¬
{abbreviation:newAbbreviation, plain text expansion:snippetText}

end repeat

end repeat

end tell

end tell

The original script was written for use in German, so I've commented the German words and abbreviations and replaced them with their English equivalents. Feel free to swap the commenting if you'd prefer them in German, or feel free to change them for other languages.

If you've been having fun scripting with TextExpander, come join the TextExpander Tips Google+ Community and share.

PDFpen Tip for the Day: Stamps

Posted 07/10/2015 by Maia

Need to put a big red Draft stamp on a PDF, or a Sign Here arrow? PDFpen comes with stamps for just that purpose. The stamps are a type of imprint you can place on your document that is new to version 7 of PDFpen and PDFpenPro and version 2 of PDFpen for iPad & iPhone.

Stamps tab

There are three categories of stamps to choose from, which you will notice when you open the Library window (⌘Y) to the stamps tab. You won't see these separate categories in PDFpen for iPad & iPhone.

  • Sign here style arrowed stamps
  • Business stamps for things like Paid, Copied, Approved
  • Dynamic stamps for when you need the current date and time in the stamp

There is a fourth category, and that is User Defined. This is where you can make your own custom stamps. (Making stamps is Mac-version only).

Make a Stamp

  1. Click on the + at the lower left corner of the Library window and choose “Add Custom Stamp.”
  2. In the Add Custom Stamp Window, you have a few customizations to make :
    • label, or, what the stamp will say
    • type (Dynamic, Sign Here or Standard Business)
    • color scheme
  3. Click OK to finish and this stamp will be listed in User Defined.

Here are a few sample pictures of what different stamp options look like:

samples of stamps

If you want something more customized than that, you could create something in your graphics app of choice and then import it into the Library by clicking the + in the lower left of the window and choosing Add File. It would be a static image, so no current date and time, and it would be listed in the Custom tab. You might want something like this for your company logo, for example.

If you purchased PDFpen from the Mac App Store then you can use iCloud to sync these stamps over to PDFpen for iPad & iPhone.

As always, if you have any tips or tricks of your own, let us know and we'll share it.

PDFpen 7.2 Adds Cloud Tool, Advanced Search Options and More

Posted 07/09/2015 by Maia

PDFpen iconPDFpen and PDFpenPro 7.2 are now available with several handy improvements. 

This update adds a new Cloud annotation tool, a case-sensitive search option and a new Editing preference to control automatic switching between the Edit and Select Text tools.

You'll find popup notes for highlights and stamps now offer a Delete note button and the context menu offers Edit and Delete note options. The sidebar's annotation list offers icons for easy identification, wrapped text for improved readability, and date, author, and location when available.

PDFpen users will notice a new Inspector tab for viewing document permissions. Editing document permissions is still PDFpenPro only. 

What's New:

  • Adds new Cloud annotation tool
  • Adds case-sensitive search option
  • Adds Editing preference for automatic selection tool switching
  • Improves popup notes for highlights and stamps:
    • Adds Edit Note and Delete Note menu commands
    • Adds Delete Note button
  • Enhances annotation list:
    • Shows annotation icons
    • Wraps text for improved readability
    • Shows date, author, and location when available
  • Adds read-only Document Permissions window to PDFpen
  • Exports new unsaved documents
  • Other fixes and improvements

WWDC 2015 Happy Hour Round Up

Posted 06/22/2015 by Maia

The Smile Team made it to WWDC this year, and to the other two conferences in SF the same week. We’re looking forward to what iOS 9 and El Capitan will bring later this year, as are you.

Here’s what our developer on the ground, Éric, noticed from within the walls of WWDC:

There was a palpable sense of relief when talking to most of the developers at the conference after they took stock of the keynote announcements. Indeed, it seems that this year’s OS releases are a bit less about broad and sweeping changes such as iOS 7’s UI redesign or last year’s addition of a multitude of OS extension mechanisms and more about incremental refinements of the platforms. While there were still plenty of exciting new features and announcements to be found (split-screen multitasking support for the iPad, system-wide Search API on iOS, a revamped and much-improved Notes application, Swift 2 going open source), it seemed that there’s going to be a little more breathing room for developers to keep pace with Apple’s platform advancements this year.

Dub-Dub was not the only game in town. We helped sponsor the free alternative conference altConf for another year. It was bigger and better than ever, with two speaker tracks and room for 1000 people. As the wrap session said, this conference isn’t just to make better devs, it’s to make better people. There are conferences to make you better at CoreData and Swift and Playgrounds, and then there are conferences that remind you why you do what you do and to stoke that passion for another year. We, and others who support AltConf, believe you need both. Yet another conference joined Dub-Dub week, Layers the design conference. As MC and conference co-founder Jessie Char said, this conference was all about hearing from her favorite designers while eating all her favorite foods. Plus new-version Photoshop sneak peaks. To misquote her further, who doesn’t love that?

(PS, did you know that 3-D printed designer glasses while you wait is a thing? The future is now.)

WWDC is not just a time to watch sessions and learn the new stuff as quickly as possible, but to meet new friends and catch up with old ones.

Peter Cohen (iMore) and Kelly Guimont (Smile).

Greg Scown (Smile) and Bob Cantoni (Nice Mohawk) former Smile-er.

Florian Albrecht (Elgato) and Maia Olson (Smile).

App Camp 4 Girls had a successful party to start off Camp 3.0 Indiegogo campaign. Take a page from the App Camp play book if you want to keep your crowd engaged. Play Social Bingo so that everyone asks around to see who plays guitar and who flew in from Canada.

To finish off the week, on Conference Day 5, we had a Smile Team wrap party. This is one of the few times a year a large group of get together.

(Éric, Angel, Yunor, Kelly, Maia, Nat, Philip)

Hope you enjoyed happy hour. We had pizza and caipiranas. Now, we’re off to make PDFpen and TextExpander ready for the fall OSs.

All About Suggested Snippets

Posted 06/04/2015 by Maia

suggestions windowOur favorite new feature of TextExpander 5 is suggested snippets.


As you type, TextExpander will let you know what you type the most, and suggest you make it into a snippet.

You may have noticed these suggestions appearing in the corner of your screen through Notification Center.


To locate these suggested snippets open the TextExpander window to the “Suggested Snippets” group.


Keep, drop, or delete the suggestions:

  • Keeping a suggestion means adding an abbreviation to it to complete the snippet. You can then move it into another group for better organization. Click the “Keep” button to keep it.
  • Dropping a suggestion means that TextExpander will never, ever, suggest it again. This is not the same as deleting a suggestion. Click the “Drop” button to drop it.
  • Deleting a suggestion means you remove that suggestion. TextExpander may suggest that same snippet again. Select the suggestion then press the Delete key to delete it.


To receive these notifications, open TextExpander’s Preferences > Suggestions and check the suggest snippets option.

If you want to keep the suggests coming, but have fewer of them, drop the ones you know you don’t want, they’ll never come back. Don’t delete suggestions you really don’t want, they could come back as new suggested snippets.

If you don’t want to receive these notifications at all, uncheck the option. However, in version 5.0, you will still receive some notifications on your pending suggested snippets. We do plan to address this in the next update.

The future:

Now that this feature is out in the wild we’re getting great feedback. With some time to reflect, we’ll work on fine tuning the suggestions.

A few ideas we’re tossing around for future settings would allow users to set the minimum length of a suggestion, limit suggestions to phrases only, or to avoid suggestions that are dictionary words.


Keep your suggestions to us coming! Your feedback is invaluable in shaping TextExpander.