01
Place characters
Pick Text, click any cell, then type. At 1× one CP437 character occupies one cell. Arrow keys move, Backspace clears, and Enter starts the next row. Pasting box-art or text fills cells from the cursor at 1×; type or paint to use a larger glyph size.
02
Paint box characters
Choose a glyph from the palette; the editor switches to Paint. Drag to draw at 1×. Hold Shift while painting to erase, or Alt-click a cell to sample its glyph. Box glyphs tile exactly at cell edges.
03
Draw whole frames
Use Box and drag a rectangle. Single, double, or ASCII rules are available. Lines join automatically where they meet existing box characters, and holding Shift keeps the frame square.
04
Size a character
With Text or Paint active, choose 1×, 2×W, 2×H or 2×2 under Glyph size. Typed characters advance by the selected footprint, the cursor outline previews it, and Enter advances by the selected height. Painting with a sized glyph places one glyph per click; drag painting is the 1× behavior. Erasing any covered cell removes the whole sized glyph. Variable fields and sized glyphs cannot overlap; the printer file uses the matching ESC/P double-size commands. Text mode also has a Bold toggle for typed glyphs; bold uses ESC/P emphasized mode and is not applied to Paint, pasted text, fields or table cells.
05
Place variable fields
Choose Variable to manage text fields. Set a name, row and column, width × height, alignment, character size and value. Text wraps or clips inside the exact cell boundary; lines beyond the field height are hidden. Double-width and double-height settings use the printer's real ESC/P commands and make each character consume two columns and/or rows. Drag a field on the page to move it. Select it and drag any of its eight edge/corner handles to resize it. Use the Edit button in the selected field's label (or double-click it) to open the editor, or Copy to duplicate it under a unique parameter name. The dashed frame is an editing guide and does not print — only the field text is baked into printer and text exports.
06
Add data tables
Choose Table, then set its column count, each column's width in characters and header/item alignment, the table style and minimum item rows. A width of 10 means the cell can display 10 characters; its padding spaces and the table rules are additional. The editor reserves the table's minimum area and draws the frame and header. Drag a table on the page to move it. Select it for Edit or Copy in its green label, or double-click it to edit. Item rows arrive later from the template API under the table name. Rows may grow the table downward; the API rejects growth that would run off the page or collide with a variable, text box, sized glyph or another table.
07
Add static text boxes
Choose Text box to create a bounded block of static text that is not an API parameter. Set its name, size, position, alignment, character size, wrapping and value. Drag the box on the page to move it; select it and drag any of its eight edge/corner handles to resize it. Use the Edit button in its selected label (or double-click it) to open the editor, or Copy to duplicate the static box. Text boxes mask the cells beneath them and cannot overlap variables, tables, sized glyphs or other boxes. Their text is baked into printer and text exports, while the dashed boundary is only an editing guide.
08
Save and open templates
Save stores the current layout in the local SQLite template database. The first save assigns a UUID/GUID; later saves update that same record. Save as creates a separate template record with a new name and links the layout to it, leaving the previous record unchanged. Open lists saved templates and can also import a project .json. Export still downloads .prn, .txt, or a project backup.
Keyboard
CtrlZUndo
CtrlShiftZRedo
CtrlSSave template
CtrlShiftSSave as new template
CtrlOOpen template
CtrlEExport
Ctrl0Fit page
Alt1–7Switch tool
EscExit preview / cancel box
About the output
Export produces a raw ESC/P byte stream with the selected pitch and line spacing. The page is 80 × 66 cells by default, which is 8 × 11 inches at 10 CPI and 6 LPI. The Page panel's physical presets convert inches to columns and rows using the current CPI/LPI; changing pitch alone keeps the grid, so choose the preset again to hold the same physical size. CP437 puts every box-drawing character in a single byte, so the file stays compact. Variable fields and static text boxes are resolved into their aligned cell positions before export; their editing frames and field names are not written. Always test a new printer setup on scrap paper: top and left print margins are determined by the printer hardware, not this file.
CP437 glyphs use the Modern DOS 8x16 bitmap font by Jayvee Enaguas (CC0), extracted with PC Face by Susam Pal (MIT). Sign-in is protected by the WMM Engine Authenticator for the ESC/P Studio app. Everything runs locally and no layout data leaves this machine.