I made a Library to generate lined or “ruled” paper

Github: https://github.com/aping1/omnigraffle-linelib

download and add the path to your plugins and it will show up as a library and action. Open the example document and look at the object metadata.

I had a use case where i wanted to generate “college ruled” paper that was true to size for the ipad. I use omnigraffle to layout the line areas in art boards and used my plugin to create blocks of lines or grids for different canvases or scales. The fill lines action uses object metadata to encode json primitives (Numbers, strings, array,…) with some added defaults and shortcuts for colors and line types. I included a MIT license for anyone wanting to use this. Hope this is useful to someone.

At time of posting here are some features:

  • Example document with objects
  • Creates a new layer with a group of horizontal lines inside a rect using the canvas spacing by default but starting at the rect’s x,y and extend to the end of the rect
  • optionally generate a grid by adding vertical pattern or only vertical lines
  • calculate line spacing based on “pitch” (lines per step) using canvas or supplied paramus
  • creates rect to save calculated (canvas dependant) values for repeatablity
  • horizontal margin (start offset); single vertical margin line; or vertical margin
  • provide json arrays to vary line widths, line spacing, Colors, and/or StrokeTypes as recurring patterns
  • patterns can include 0s to skip lines and will stop looping if you put “…” in the array
  • line names are verbose so it’s easy to debug patterns
  • code has a ‘property registration” library function for adding your own functionality json encoded metadata


  • generates a hearty amount of console logs,
  • lots of lines (100s) can slow down omnigraffle and freeze your ipad.
  • tangential warning: some crashes while working with files in iCloud caused loss of work for me. i would recommend working locally, and backing up frequently