Skip to content

Print-ready graphics: what a printer needs from your logo

Sending a logo to print raises three concerns that are easy to mix up: resolution, file format, and colour space. Each is answered by a short command-line conversion from the vector source you already have; none needs a redesign.

TL;DR

  • SVG is a vector format and has no resolution. “Not high-res enough” misreads what a vector is: the same file scales to a 2 m banner and to a business card.
  • The PNG half of the complaint holds. A raster logo has fixed pixels, and blown up to banner size it softens.
  • “We need .ai” is a format preference. Print shops standardise on Adobe tooling and their prepress pipeline may not ingest SVG cleanly; a print-ready PDF carries the same vectors.
  • CMYK conversion is the vendor’s job, and converting it yourself with a generic profile can make colour accuracy worse.
  • Two commands (rsvg-convert, then optionally ghostscript) produce everything a printer needs. A <text> element referencing a font the converter does not have breaks the result without an error.
ConcernWhat it isWho owns it
ResolutionVector (SVG, PDF) has none; raster (PNG) has a fixed pixel gridYou, only if the source is raster
File format.ai / .eps / PDF vs SVG - a tooling-pipeline preferenceVendor converts, or you convert to PDF
Colour spaceRGB (screen) vs CMYK (ink) - a real print concernThe printer, at their RIP, with their ICC profile

A pull-up banner at roughly 850 x 2000 mm is the case vector was built for: the printer places a vector PDF at any size with no resampling. A request for “high-res” usually means the shop does not want to deal with an SVG.

Why the PNG complaint is real but the SVG one is not

Section titled “Why the PNG complaint is real but the SVG one is not”

A PNG at 1000 px wide printed across a 300 mm logo area is about 85 DPI, which is visibly soft. The fix is to use the vector; a bigger PNG from a resampling tool interpolates pixels and still looks soft at the edges where a vector stays crisp.

The SVG has no such floor. It is a list of paths and curves, and the renderer rasterises it at whatever resolution the output device needs: a print RIP at 2400 DPI and a web browser at 96 DPI both render the same SVG correctly.

.ai is Adobe Illustrator’s native format. Modern .ai files are PDF-compatible containers with Illustrator-private metadata on top. Print vendors ask for it because their prepress tooling (pre-flight, imposition, trapping) is built around Adobe products and historically handled .ai/.eps/PDF natively while treating SVG as a web format.

A print-ready PDF is accepted by nearly every print workflow and carries the identical vector data. The formal press-ready forms are the ISO-standardised PDF/X variants - X-1a for older workflows, X-4 for modern ones1 - which constrain fonts, colour and transparency so the file is predictable at the RIP. A plain vector PDF is usually enough for a logo asset, because it gets placed into the banner layout rather than going to press on its own. If a vendor insists on .ai, the conversion is opening the PDF or SVG in Illustrator and re-saving: a minute of work, and theirs to do.

These go wrong when an SVG goes to print; none of them are about resolution.

Fonts: if the logo text is a live <text> element referencing a font, the converter and the printer both need that font installed, or the text renders in a fallback font without any warning. Convert text to outlines (paths) before handoff; most brand logos are already distributed this way. Check first:

Terminal window
grep -c '<text' logo.svg # 0 = all paths, no font dependency. Good.

RGB colour space: SVGs are authored in RGB (sRGB) and a press prints in CMYK. Left to the RIP this converts automatically; done carelessly by hand it can shift a brand colour.

Effects and transparency: SVG filters (blur, blend modes) do not always translate to PDF cleanly. Flat logos with solid fills are unaffected; if the logo uses filters, render a proof before sending.

Bleed: bleed and trim are properties of the banner document. The designer places the logo into the banner layout and sets bleed there, which is the composite step the PDF/X presets exist for.2 A logo file never carries bleed.

CMYK: who converts, and why it is usually not you

Section titled “CMYK: who converts, and why it is usually not you”

A press uses CMYK ink and a screen uses RGB light, so a conversion has to happen before ink hits vinyl; the question is whose conversion is accurate.

The printer’s RIP converts using an ICC profile matched to their press, ink set and substrate, calibrated to that hardware, so it is more accurate than a generic conversion. Converting to CMYK yourself with a generic profile (e.g. Ghostscript’s default) bakes in a conversion tuned for no particular press, and if the vendor’s RIP then re-converts, the colour drifts twice.

Hand over the RGB vector and let the printer convert. Convert to CMYK yourself only when the vendor asks for a CMYK file, and in that case say that the conversion is generic.

A brand colour that must match exactly is the exception. Some vivid colours fall outside the CMYK gamut and process ink cannot reproduce them. If an exact match matters on a long print run, use a spot colour (Pantone), a pre-mixed ink on its own plate, instead of a CMYK conversion. That decision belongs to the printer, with the brand hex value in hand.3

Producing the print pack from the command line

Section titled “Producing the print pack from the command line”

From an SVG source, two tools cover the deliverables. rsvg-convert (librsvg) turns SVG into PDF or PNG at any size; Ghostscript handles the optional CMYK pass.

Terminal window
# Vector PDF - the master quality deliverable
rsvg-convert -f pdf -o logo.pdf logo.svg
# High-res transparent PNG fallback (~300 DPI at 30 cm printed width)
rsvg-convert -w 3600 -f png -o logo-3600px.png logo.svg
# CMYK variant - only if the vendor explicitly asks for CMYK
gs -dBATCH -dNOPAUSE \
-sColorConversionStrategy=CMYK -dProcessColorModel=/DeviceCMYK \
-sDEVICE=pdfwrite -o logo-cmyk.pdf logo.pdf

Check that the vector PDF has no font dependencies (so it cannot break on the printer’s machine) and that a CMYK file is CMYK:

Terminal window
pdffonts logo.pdf # empty table = all outlines, no fonts. Good.
gs -o - -sDEVICE=inkcov logo-cmyk.pdf # "0.08 0.03 0.08 0.01 CMYK OK" = real CMYK
strings logo-cmyk.pdf | grep -oE '/DeviceCMYK|/DeviceRGB' | sort | uniq -c
# want only /DeviceCMYK; a leftover /DeviceRGB means the conversion missed something

The handoff bundle for a vendor asking for a “high-res logo”:

  • The vector PDF (RGB), as the master. Say this is the preferred file and that their RIP will handle colour.
  • The CMYK PDF, for the colour-critical variant only, and only if they ask.
  • A high-res transparent PNG, as a raster fallback for tooling that cannot take vector.
  • The original SVG, as the source of truth.
  • A README stating the brand colour hex, that there are no fonts (all outlines), and that bleed is set on the banner document rather than on this asset.
  1. Hybrid Helix, “PDF/X-1a vs PDF/X-4: What’s the difference - and which should you use in 2025?” https://blog.hybridhelix.com/pdf-x-1a-vs-pdf-x-4-whats-the-difference-and-which-should-you-use-in-2025/ ↩

  2. Allied Printing, “File Setup 101: How to Send Us Print-Ready Artwork.” https://alliedprintinghsv.com/file-setup-101-print-ready-artwork/ ↩

  3. PrintingForLess, “Complete Guide to Creating Press Ready Print Files.” https://www.printingforless.com/resources/complete-guide-to-creating-press-ready-print-files/ ↩