Piping the output of a program to Preview.app

11

5

I'm using an application (the dot program of the graphviz library) that generates a wide variety of file formats including PostScript and PDF. It can send the result to stdout or to a file. I'm currently sending it to a file and opening it with Preview.

Is there any way to pipe the output and have it be read by Preview, so that I'd don't have to generate a file and have it lying around? This is going to be used by a number of people who won't know the internal structure of the generating script and I don't want to clutter their folders or complicate their lives.

More generally, is there any way to take a program that sends its output to stdout and pass that output to an program that usually takes it's input from a file, without actually creating a file?

Abhay Buch

Posted 2011-07-01T18:43:57.560

Reputation: 213

1Save your document in $TEMP and then launch Preview using open - that way it will appear pretty seamless and the saved documents under /tmp will get cleaned up eventually. – Paul R – 2011-07-01T18:59:03.813

Answers

22

$ your_program | open -f -a /Applications/Preview.app

Source: View Terminal β€˜man’ Pages In Preview / PDF

fffact

Posted 2011-07-01T18:43:57.560

Reputation: 346

2

f=$(mktemp -t test).txt; echo test > $f; open $f -a TextEdit # f=$TMPDIR/test.txt

Lri

Posted 2011-07-01T18:43:57.560

Reputation: 34 501