PTAP2DXF - make paper tapes without a punch

steven at steven at
Fri Dec 1 18:03:15 CST 2017

(posted this just as the list went down earlier, apologies if it appears twice)

If you have a paper tape reader and no punch, you can now make real working paper tapes using a normal home stencil-cutting machine.
I've written a small command line utility that can take a .PTAP (or any other binary or textfile) and generate output that these
machines will cut. that your reader will read.

It can easily make repair pieces for existing old broken tapes from any byte offset. In addition it can make banner tapes, 5-level
Baudot RTTY tape, your own custom n-level paper tape or cut tapes from other materials such as plastic.
Even if you don't need it to make or repair tapes, it can be used to visualise a paper tape through the console output it produces.

I'd never claim it's any sort of replacement for a real punch, and it's a whole lot slower. But, it does work :)

A simple example to make a tape of the characters ABCDEF with 1/2 inch of sprocket leader and 1/2 inch of trailer:

C:\> ptap2dxf --text="ABCDEF" --leader=5 --trailer=5 --output=ABCDEF.dxf
|     .   |
|     .   |
|     .   |
|     .   |
|     .   |
| O   .  O|
| O   . O |
| O   . OO|
| O   .O  |
| O   .O O|
| O   .OO |
|     .   |
|     .   |
|     .   |
|     .   |
|     .   |
Joiner 0000: data byte 00000000  absolute position 00000011

The resulting ABCDEF.dxf file can be viewed in a DXF viewer such as Inkscape and directly loaded into the paper/vinyl cutter for producing
the actual working tape.

Another example: say you need a repair piece for an absolute loader, starting at byte 57 for 12 bytes. (A repair piece has removeable side
tabs for handling as a self-adhesive vinyl joiner):

C:\> ptap2dxf DEC-11-L2PC-PO.ptap --range=57,12 --joiner --ascii --control
|  O  .O O| JOINER     %
|     . O | JOINER     <STX>
|     .   | JOINER     <NUL>
|  O  .  O| JOINER     !
|     . OO| JOINER     <ETX>
|    O.  O| JOINER     <HT>
|  O O.O  | JOINER     ,
|     .   | JOINER     <NUL>
|O    .O  | JOINER
| OO  . OO| JOINER     c
|     .  O| JOINER     <SOH>

The output for machine cutting will be in DEC-11-L2PC-PO.dxf
For larger tapes, the output can be chunked into sections which can be cut individually. There are other options to invert, mirror, reposition
the sprocket feed and so on.

If you think you may find it useful, it's fully open source and available at
It will run on Windows (pre-built exe provided) and Linux and Mac (follow building instructions).
The 26-page illustrated User Manual PDF is at


More information about the cctalk mailing list