Skip to content

Releases: Boffo90/cardwright

v2.17.4 — duplex cut guides, and copies stop being files

Choose a tag to compare

@Boffo90 Boffo90 released this 06 Aug 18:47

Cutting

Duplex offset now moves the cut guides with the cards. Setting a back offset shifted the back page's cards but left its guides on the front's grid, so they missed the cards by exactly the drift the offset was correcting — the more carefully you dialled the offset in, the more crooked the guides became. Cutting the back by them came out wrong. Back rotation had the same fault.

Cards and guides are now drawn under one transform. Registration marks stay square to the page on purpose: the cutter's sensor hunts for them at a fixed inset.

The preview's Backs view shows the offset and rotation too. It used to draw backs on the unshifted grid, which is why a wrong offset only turned up at the cut. The sheet caption now names the correction in force — backs, mirrored · offset +4/−3 mm — so a crooked preview reads as a crooked setting rather than a broken preview.

Fixed

A crash in the export preview. Whenever registration marks cost a card slot — A4 3×3, anything on Letter — the preview stopped redrawing. Present in every release from 2.16.0 to 2.17.3.

Pasted Gatherer links stop failing on two whole classes of card. Both ended in the same "Could not find a Gatherer image id":

  • Gatherer's set codes are not Scryfall's. Urza's Saga is UZ on Gatherer and usg on Scryfall, so a link like UZ/en-us/291/copper-gnomes never resolved — for a card both sites have. Links carry the card's name too, and that is the part they agree on, so it is now the fallback lookup. The Gatherer image still comes from Gatherer.
  • Secret Lairs, promos and foils have no Gatherer entry at all. The decklist import already fell back to the Scryfall image; a link pasted straight into the box still failed. Now it falls back the same way.

A link fails only when neither site recognises the card.

Copies

A copy of a card is no longer a file on disk. Quantity wrote one PNG per copy, so a 4-of left four identical images in the output folder, and Duplicate in the preview wrote another every time you used it. Copies are now just copies: the sheet prints the same image as many times as you asked, and your output folder stays clean.

Reordering, removing and assigning a back still act on the single copy you clicked. Deleting a card's file now removes every copy of it from the sheet, and tells you how many before asking.

Note: black-border treatment is now per image rather than per copy. That was always true of the exported PDF — the preview just let you believe otherwise.

Printing

New FAQ entry for "insufficient memory" printer errors, reported with a Brother 3240 CDW. A 1200 DPI sheet is around 217 MB and that printer has 128 MB to rasterise it in. The fix is Adobe Reader's Print as Image — and set its resolution dropdown to 600 or 1200, because it defaults to 300 and would throw away the resolution you came here for.

Cardwright v2.17.3 — custom card sizes

Choose a tag to compare

@Boffo90 Boffo90 released this 02 Aug 18:01

Custom card sizes

The Card size dropdown now ends with "Custom size…". Enter the printed
width and height in millimetres — 20 to 200 a side — and it's remembered,
appearing in the list alongside the built-in sizes from then on.

It drives the AI upscale target as well as the sheet layout, so set it before
you run the cards rather than after. If the grid you picked won't fit that size
on your page, the export says so instead of producing something wrong — use a
bigger paper or a smaller grid.

Reachable from the main window and from Export, since both show the picker.

Requested on r/mtgproxies.

Fixed

  • Exporting a selection of sheets measured progress against the whole queue, so
    printing sheet 1 of a 90-card deck read "Placing card 3/90" while nine cards
    were going into the PDF. It counts what is actually being placed now. The PDF
    itself was always correct — only the message was wrong.

Downloads

  • Cardwright.exe — portable, no install needed.
  • Cardwright_Setup-2.17.3.exe — installer.

Existing installs will pick this up through the built-in updater.

Cardwright v2.17.2 — Gatherer imports stop dropping cards

Choose a tag to compare

@Boffo90 Boffo90 released this 02 Aug 16:55

If you import decklists with Gatherer selected, this one matters.

Gatherer imports no longer drop cards

Gatherer has no entry for Secret Lairs, promos, or any foil printing
Scryfall numbers foils with a star (198 is the normal card, 198★ the foil)
and gives the starred one no Gatherer id, because Gatherer never catalogued
foils separately.

Those cards were being rejected outright. One real 100-card import came back
missing 24 cards and a wall of red.

They now fall back to the Scryfall image and are listed as substitutions —
an ordinary notice, not an error, the same way a card with no printing in your
chosen language is handled. You get the whole deck; only the cards Gatherer
genuinely lacks come from the other source.

There is a new FAQ entry explaining the star, under the Help button.

Downloads

  • Cardwright.exe — portable, no install needed.
  • Cardwright_Setup-2.17.2.exe — installer.

Existing installs will pick this up through the built-in updater.

Cardwright v2.17.1 — repeated cards no longer overwrite each other

Choose a tag to compare

@Boffo90 Boffo90 released this 31 Jul 23:42

A data-loss fix. Worth updating for if you import MPC Autofill orders or add
several artworks of the same card.

Repeated cards were overwriting each other

Each card is downloaded to a file named after it. When two entries produced the
same filename, the second silently replaced the first — you simply ended up
with fewer cards than you asked for, and the ones that survived carried the
wrong artwork.

MPC Autofill orders were the worst case. An order names every entry by card
alone, so a deck with 2 Plains, 3 Islands and 2 Arcane Signets — all different
arts — collapsed to one of each. A real 89-card order came out as 85 files.

The order's slot number is now part of the filename, so every entry is
distinct.

The card gallery had the same flaw, just harder to hit: two Yu-Gi-Oh
artworks from the same set, or two MPC arts by the same contributor, share a
name and a source. Picks now carry the catalogue's own id. Three Dark Magician
artworks used to become one file; now they are three.

Nothing else changed. If you have already imported an order and some cards look
like the wrong version, re-import it after updating.

Downloads

  • Cardwright.exe — portable, no install needed.
  • Cardwright_Setup-2.17.1.exe — installer.

Existing installs will pick this up through the built-in updater.

Cardwright v2.17.0 — help, tokens, and more ways in

Choose a tag to compare

@Boffo90 Boffo90 released this 31 Jul 23:23

A Help window, three new ways to get cards in, bigger paper, and tokens.

Help: FAQ and About

New Help button in the header. The FAQ answers the questions people have
actually been asking since the launch — why registration marks cost you card
slots and which inset fixes it, which paper and layout to use with a cutting
machine, why a Pokémon card comes out less sharp, why a card came back in
English, which black border mode to use, the "unknown publisher" warning, and
where the log file lives.

Tokens

"Also add the tokens these cards make" in the decklist importer. Taken from
Scryfall's own data, so it's exact — a card that makes no tokens contributes
none, and every card in the deck is checked, not just the commander.

Reprints collapse: three goblin-makers give you one Goblin, not three. Tokens
that merely share a name do not — "Elemental" has 26 genuinely different
versions, and you get the ones your deck actually makes.

Two more ways in

  • Import a decklist with the art coming from Gatherer instead of Scryfall.
  • Load an MPC Autofill order .xml and get exactly the art you already
    picked over there — something a name search can't reproduce. Quantities come
    from the slot count.

Bigger paper, bigger grids

  • New page sizes: A3, Legal, Tabloid and A5 alongside A4 and Letter.
  • New 3×4 and 4×4 layouts, because a bigger sheet with the old 3×3 grid
    still printed 9 cards. A3 and Tabloid now hold 16.

Manual bleed override

"Trim MPC bleed" becomes Auto-detect / Assume bleed / Assume none. Turning
the old switch off covered "this was wrongly detected", but there was no way to
say "this does carry bleed the proportions can't see". Now there is.

Fixed

  • The registration square was a millimetre too small. silhouette-card-maker
    strokes its square with the mark thickness, so theirs is 6 mm across at the
    1 mm default while ours was a flat 5 mm. Thanks to trevorstarick for
    spotting it and for the exact command to compare against.

Downloads

  • Cardwright.exe — portable, no install needed.
  • Cardwright_Setup-2.17.0.exe — installer.

Existing installs will pick this up through the built-in updater.

Cardwright v2.16.0 — Moxfield decks, and your card slots back

Choose a tag to compare

@Boffo90 Boffo90 released this 29 Jul 14:05

Moxfield decks import directly now, and registration marks stop costing you
cards.

Moxfield deck import

Paste a Moxfield deck URL and it imports, the way Archidekt links already did.
Commanders, companions and sideboards come along; the maybeboard stays out.

The app used to refuse Moxfield links and send you to their Export button.
That still works, and if the import ever stops working the app will point you
back at it rather than just failing.

Get your card slots back

Registration marks are corner brackets, so what costs you a card slot is a
mark landing on a corner card. Moving the marks outward frees them — and
the floor stopping you from doing that was the app's own, not the machine's.

The mark inset can now go down to 3.5 mm (it was locked at 10). The effect
is bigger than it sounds:

  • Letter 4×2: 6 usable cards → 8, by dropping the inset to 9.5 mm. Half a
    millimetre.
  • Letter 7-card: 6 → 7, same 9.5 mm.
  • A4 3×3: 7 → 9 at 6 mm.

The default stays at 10 mm, so nothing changes unless you reach for it.
And when marks do cost you slots, the preview now tells you the exact inset
that keeps them all, picking the largest one that works — a mark further from
the paper edge is the safer one. If no inset helps, it names a layout that
does.

3.5 mm is the floor because most inkjets can't print closer than about 3 mm to
the paper edge; below that the mark just gets clipped off.

10 mm came from Silhouette Studio's documented minimum. silhouette-card-maker
ships 3.5 mm for its borderless layouts, which is what prompted the recheck.

Downloads

  • Cardwright.exe — portable, no install needed.
  • Cardwright_Setup-2.16.0.exe — installer.

Existing installs will pick this up through the built-in updater.

Thanks to the folks on r/mtgproxies who reported the Letter registration-mark
problem — you were right that it was margins, and it was ours.

Cardwright v2.15.0 — Pokémon cards

Choose a tag to compare

@Boffo90 Boffo90 released this 28 Jul 21:41

Pokémon cards are in, and small sources upscale noticeably better.

Pokémon

  • New Pokémon tab in the card gallery, powered by TCGdex.
    No API key, no account — search a card name and pick the printing you want,
    same as every other source.
  • The Card language picker drives it too: six languages carry real images
    (English, French, German, Spanish, Italian, Portuguese).
  • Pokémon cards are 63×88 mm, the same size as Magic cards, so nothing needs
    changing to print them.

TCGdex was picked over pokemontcg.io after measuring both. Their image ceiling
is identical (600×825, and that is the ceiling everywhere — not a limit of
either service), so what decided it was that TCGdex needs no API key, is open
source, and pokemontcg.io has been folded into a commercial product.

Small sources upscale better now

A source too small for one AI pass to reach the card is resized up to
exactly the right size before the pass
, so the AI lands on the card instead
of leaving a plain stretch to do afterwards. Measured on a 600×825 scan,
sharpness improves by 56% for half a second and no extra memory.

This helps Pokémon and Gatherer images. Magic cards from Scryfall are
untouched — they already clear the target in one pass.

Fixed

  • Pokémon cards came out cropped. The MPC bleed trim decides by aspect
    ratio, and TCGdex images land inside the MPC window, so every Pokémon card
    lost 4.4% off each side — its border. The trim now only runs on sources that
    can actually carry a bleed.
  • Errors arrived empty. Failures reached you as "Search failed: None" with
    nothing useful in the log, because the exception was being lost before the
    message was built. Seven places fixed — errors now say what went wrong and
    the log carries a full traceback.
  • The card language picker is labelled "Card language" again. Shortened to
    "Language" in the last release, it read like the app's own language and
    people looking for cards in French did not find it.

Downloads

  • Cardwright.exe — portable, no install needed.
  • Cardwright_Setup-2.15.0.exe — installer.

Existing installs will pick this up through the built-in updater.

Cardwright v2.14.0 — contrast-edges border mode

Choose a tag to compare

@Boffo90 Boffo90 released this 28 Jul 14:18

A second way to fix a washed-out black border — one that doesn't have to guess
where the border is.

New "Contrast edges" mode, now the default

The existing border treatment measures how deep a card's dark frame runs and
snaps it to black. That measurement is the part that can go wrong on artwork
reaching the cut edge.

Contrast edges detects nothing. The band is a fixed fraction of the card's
shorter side (8% by default), so there is no judgement to get wrong. Three
things keep it off the artwork:

  • Quadratic falloff to the inner edge of the band, so there is no seam.
  • Tone weighting — only pixels below 140/255 are pushed, so bright art
    inside the band keeps its brightness.
  • A contrast curve rather than a binary snap to black.

The previous behaviour is still there as "Auto-detect", just no longer the
default. Off is unchanged. Three new fields in Export → Image let you dial
the band: edge width, edge contrast and edge brightness.

Reimplemented from the approach Proxxied
uses (MIT). Their code is GLSL; this is a numpy reimplementation, not a copy.

Apply to, per source

New checkboxes decide which catalogues get border treatment at all.
MPC Autofill and card backs are off by default — MPC art already carries a
true black edge, so running the effect over it is risk with no upside.

A per-card override (left-click in the preview) still wins over the source
rule, and the preview now resolves modes exactly the way the export does, so
what you see is what prints.

Note for existing users

The auto mode was renamed, and your saved setting is migrated automatically —
if you had border deepening on, it stays on as "Auto-detect". Switch to
"Contrast edges" to try the new one; they can be compared on the same card.

Downloads

  • Cardwright.exe — portable, no install needed.
  • Cardwright_Setup-2.14.0.exe — installer.

Existing installs will pick this up through the built-in updater.

Cardwright v2.13.0 — card languages, printing gallery, Studio-accurate marks

Choose a tag to compare

@Boffo90 Boffo90 released this 28 Jul 13:39

The biggest release so far: cards in other languages, a printing gallery you
can browse before committing, sharper source selection, and a round of fixes
that came straight out of feedback on r/mtgproxies.

Cards in other languages

  • New Card language picker. It applies to card-name lookups and decklist
    imports — the two paths that used to be English-only.
  • Cards with no printing in the chosen language are added in English and
    listed separately, because that is normal, not a failure: promos, Secret
    Lairs and older sets frequently only ever existed in English.
  • A link that already names a language still wins over the picker.

Pick the version you actually want

  • Typing a bare card name now opens a gallery of that card's printings
    with thumbnails, instead of silently queueing whichever one came back first.
  • A Source switcher flips the same search between Scryfall,
    Gatherer, MPC Autofill and Yu-Gi-Oh without leaving the dialog.
  • New Best scan switch (on by default) picks the sharpest printing of a
    searched name, keeping the same artwork. Every Scryfall image is the same
    745×1040, so it compares real image data rather than pixel dimensions.
  • Pasting a link or a decklist line is untouched — you already chose.

Cutting

  • Registration marks now match Silhouette Studio's own geometry. The mark
    length was defaulting to 5 mm where Studio expects 8.89 mm, so marks printed
    shorter than a Studio-built template's and would not line up with one.
  • Turning guides off now actually removes every guide. The dark tick marks
    in the margins ignored the setting entirely and kept printing.
  • Nothing is drawn inside a registration mark's clear area any more. On A4 at
    the default inset, several margin ticks were landing right beside a mark,
    where a stray line can throw off the cutter's optical scan.

Interface

  • Top bar down to three buttons: Browse cards… / Add files… / Import list….
    Every catalogue lives in the gallery now.
  • Options panel rebuilt as an aligned grid; footer buttons share one height.

Reporting bugs just got possible

  • New Log button in the header. The app now writes a real log file, and
    failures record the full traceback instead of a truncated line in a queue
    row. If something breaks, attach it — it makes reports actionable.

Downloads

  • Cardwright.exe — portable, no install needed.
  • Cardwright_Setup-2.13.0.exe — installer.

Existing installs will pick this up through the built-in updater.

Thanks to everyone on r/mtgproxies who reported things — several fixes here
are direct results.

Cardwright v2.12.1 — crisper copyright microtext

Choose a tag to compare

@Boffo90 Boffo90 released this 27 Jul 21:56

Patch release on top of v2.12.0.

Fixed

  • Copyright microtext stays crisp. Border deepening was crushing the
    anti-aliasing of the white microtext in the bottom band (copyright /
    collector line), so it printed with thicker strokes and the counters in
    o / a / e closed up. Measured across 5 cards, preserved anti-aliasing
    went from 45-62% to 100% — and the frame still snaps to solid black.

Downloads

  • Cardwright.exe — portable, no install needed.
  • Cardwright_Setup-2.12.1.exe — installer.

Existing installs will pick this up through the built-in updater.