How to convert a dicom medical image to a pdf document
- Step 1Export one DICOM frame from your PACS or workstation — Retrieve the single image (one
.dcminstance) you want to share. If your study is a multi-frame object or a stack of slices, pick the one representative frame — this tool converts one frame, not a whole series. Export it as uncompressed DICOM (Implicit/Explicit VR Little Endian) if your PACS offers transfer-syntax options; compressed pixel data (JPEG2000, JPEG-LS, RLE) will not render correctly here. - Step 2Open the DICOM to PDF converter — Drop the
.dcmor.dicomfile onto the dropzone above. The tool accepts the.dcmand.dicomextensions and theapplication/dicomMIME type. One file at a time — this is a single-file tool, not a batch converter. - Step 3Let it render — there are no options to set — Conversion starts automatically the moment the file is read. There is no page-size selector, no rendering-mode toggle, and no window/level slider; the page is fixed A4 portrait and the windowing comes straight from the file's
WindowCenter/WindowWidthtags (falling back to C 128 / W 256 when those tags are absent). - Step 4Check the metadata block on the rendered page — The bottom of the page lists Patient, Patient ID, Modality, Study Date, Study, Series, the image dimensions and bit depth, and the window values used. Confirm the patient identifiers are correct — and remember that these identifiers are now printed into the PDF, so treat the output as PHI.
- Step 5Download the PDF — Click Download. The file is named after your source with a
.dicom-to-pdf.pdfsuffix. Everything stayed in the browser — the result panel shows 0 bytes uploaded. - Step 6Share, or scrub identifiers first — Attach the PDF to an email, a portal upload, or the patient record. If the recipient should not see the patient name or ID that this tool renders into the page, redact them afterward with the PII redactor — note the metadata block is rendered image-style text, so the metadata scrubber only clears document properties, not the caption drawn on the page.
What the converter does to your DICOM
Exactly what is read, applied, and rendered. Everything is derived from the file — none of it is configurable in the UI.
| Step | Behaviour | Source / default |
|---|---|---|
| Parse | Dataset parsed with dicom-parser; tags read for geometry, photometric, rescale, and window | Throws "Could not parse DICOM file" if the bytes aren't valid DICOM |
| Frames converted | One frame → one page. Pixel loop covers Rows × Columns once; additional frames in a multi-frame object are not paged out | First/only frame; single A4 page (595 × 842 pt) |
| Grayscale rendering | MONOCHROME2 shown normally; MONOCHROME1 inverted (white-on-black flipped to match clinical convention) | Photometric interpretation from x00280004 |
| Windowing | Pixel values rescaled (slope/intercept) then mapped through window center/width to 0–255 | WindowCenter / WindowWidth from file; defaults C 128 / W 256 if absent |
| Colour rendering | SamplesPerPixel = 3 treated as straight RGB; YBR colour spaces are not converted | Uncompressed RGB only |
| Image embed | Canvas exported to JPEG at quality 0.95 and embedded; scaled to fit the page width with aspect preserved | JPEG, fixed quality |
| Metadata caption | Patient, Patient ID, Modality, Study Date, Study, Series, dimensions, bit depth, window — drawn as text below the image | Helvetica; PHI rendered into the page |
Accepted input and tier limits
What you can drop in and how big it can be. The PDF-family file-size cap applies because DICOM output is a PDF.
| Constraint | Free | Pro | Notes |
|---|---|---|---|
| File extension / MIME | .dcm, .dicom (application/dicom) | Same | Other extensions are rejected before processing |
| Max file size | 2 MB | 50 MB | Uncompressed CT/MR/CR frames often exceed 2 MB — those need Pro |
| Files per run | 1 | 1 | Single-file tool; no batch queue |
| Page limit | Not applied | Not applied | The 50-page PDF cap doesn't gate DICOM input (it isn't parsed as a PDF) |
| Output | One-page PDF | One-page PDF | Named <source>.dicom-to-pdf.pdf |
Cookbook
Common single-image conversion scenarios. Pixel values and identifiers are illustrative.
A chest X-ray (single CR frame) to PDF
A computed-radiography chest film is one large monochrome frame. The file's own window/level renders the lung fields and mediastinum the way they were stored. Output is one page.
Input: chest_pa.dcm 1.4 MB, CR, 2022x2022, MONOCHROME2
Action: drop on converter (auto-runs)
Output: chest_pa.dicom-to-pdf.pdf 1 page
image + caption: Modality CR, Window C 2048 / W 4096Multi-frame object yields ONE page (not a series)
A multi-frame ultrasound or enhanced-CT object packs many frames into a single instance. This tool renders the first frame only — it is not a series-to-pages exporter. Pick the frame you want to share before exporting from PACS.
Input: us_loop.dcm 8 frames, single instance Action: drop on converter Output: us_loop.dicom-to-pdf.pdf 1 page (first frame) Want a page per frame? Export the frames you need separately, convert each, then combine with PDF Merge.
File over the 2 MB free cap
Uncompressed CT and MR frames frequently land between 2 and 6 MB once you include the full 16-bit pixel matrix. On free tier the drop is blocked before rendering with a size message.
Input: ct_axial.dcm 4.1 MB, CT, 512x512, 16-bit
Free tier: blocked — "4.1 MB ... Free handles files
up to 2 MB per job. Pro unlocks larger files."
Pro tier: renders to a one-page PDF (cap 50 MB)Pixel data missing or unreadable → metadata placeholder
If the instance has no pixel data, or Rows/Columns are zero, the tool still produces a PDF — a placeholder page that carries the patient and modality so the conversion isn't a dead end.
Input: sr_report.dcm (Structured Report, no image)
Output: sr_report.dicom-to-pdf.pdf
"DICOM file imported - pixel data could not be
rendered" + Patient + Modality linesCombine several single-image PDFs for one recipient
Because each conversion is one page, the way to assemble a multi-image packet is to convert each frame and then merge. Keep the originals for diagnosis.
Convert: ap.dcm -> ap.dicom-to-pdf.pdf
lat.dcm -> lat.dicom-to-pdf.pdf
Merge: PDF Merge -> views_combined.pdf (2 pages)
Share the merged PDF; archive the .dcm originals.Edge cases and what actually happens
Multi-frame DICOM renders only the first frame
By designThe pixel loop processes Rows × Columns once, so a multi-frame instance (enhanced CT/MR, ultrasound cine, multi-frame X-ray) yields a single page from the first frame — not a page per frame. To assemble several images, export the frames you want individually, convert each, and combine with PDF Merge.
Compressed (encapsulated) pixel data
Renders incorrectlydicom-parser does not decompress encapsulated transfer syntaxes — JPEG2000, JPEG-LS, JPEG Baseline, and RLE pixel data are read as raw bytes and produce noise rather than an image. Re-export from PACS as uncompressed (Implicit or Explicit VR Little Endian) before converting.
File is not valid DICOM
ErrorIf the bytes can't be parsed, the tool throws "Could not parse DICOM file" with the parser's reason. A common cause is a file that was renamed to .dcm but is actually a JPEG/PNG export — for ordinary images use Image to PDF instead.
No pixel data / zero dimensions
PlaceholderStructured Reports, Presentation States, and other image-free objects have no PixelData element (or zero Rows/Columns). Rather than fail, the tool emits a placeholder PDF reading "DICOM file imported — pixel data could not be rendered" plus the patient name and modality.
File larger than the tier cap
BlockedDICOM output is a PDF, so the PDF-family size limit applies: 2 MB on free, 50 MB on Pro. Uncompressed CR/CT/MR frames often exceed 2 MB, so the drop is blocked on free tier with a size message. Upgrade for the 50 MB ceiling, or export a smaller/compressed representation from PACS (note compressed pixel data won't render — see above).
YBR colour ultrasound looks wrong
Color shiftColour images with SamplesPerPixel = 3 are read as straight RGB. If the photometric interpretation is a YBR space (YBR_FULL_422 etc.), no colour-space conversion is applied, so the image renders with shifted colours. Grayscale modalities are unaffected. Export as RGB if your workstation allows.
Identifiers are printed into the PDF
PHI exposureThe metadata caption renders Patient name, Patient ID, Study Date and descriptions onto the page. That text is part of the rendered image content, so the metadata scrubber (which clears document properties) won't remove it. To de-identify the output, redact the caption with the PII redactor after conversion.
No window/level stored in the file
Default appliedWhen WindowCenter / WindowWidth are absent, the converter falls back to C 128 / W 256. For 16-bit modalities this default may look flat or washed out compared to your PACS view. If your export tool can bake a window into the instance (or write VOI LUT tags), do that first.
MONOCHROME1 inversion
PreservedMONOCHROME1 images store white as the low value; the converter inverts them so they display the same way clinical viewers show them (dark background, bright anatomy). This is automatic and matches MONOCHROME2 output visually.
Run in a server/Node context
Metadata onlyThe renderer needs a browser canvas. In a non-browser context (the API/runner path executes in the browser-equivalent client environment, but a bare Node call) it returns a metadata-only placeholder PDF rather than a rendered image. In normal use the tool runs in your browser tab and renders fully.
Frequently asked questions
Does the PDF preserve DICOM metadata?
Key fields are rendered as a text caption beneath the image: Patient name, Patient ID, Modality, Study Date, Study and Series description, image dimensions, bit depth, and the window values used. They are drawn onto the page, not stored as PDF document properties — so they are human-readable but treat them as PHI.
Can I convert a whole multi-frame study to a multi-page PDF?
No — this tool converts one frame to one page. A multi-frame object renders its first frame only. To build a multi-page packet, export the individual frames you need, convert each, and combine them with PDF Merge.
What window/level does it use?
The WindowCenter and WindowWidth stored in the DICOM file, with RescaleSlope / RescaleIntercept applied first (so CT renders in Hounsfield-aware terms). If those tags are missing it defaults to center 128 / width 256. There is no slider to change it in the tool — set the window in the file before exporting.
Are there any settings to configure?
No. The converter runs automatically when you drop the file. There is no page-size selector, no rendering option, and no window/level control — the page is fixed A4 portrait and everything is derived from the file. If you need a different page size afterward, use PDF Resize.
Why does my compressed DICOM look like static?
The underlying parser doesn't decompress encapsulated pixel data (JPEG2000, JPEG-LS, JPEG Baseline, RLE). Those bytes get read raw and render as noise. Re-export the instance as uncompressed (Implicit or Explicit VR Little Endian) and try again.
What file types does it accept?
.dcm and .dicom files with the application/dicom MIME type. One file per run. If your file is actually a JPEG or PNG that was renamed, use Image to PDF instead.
How big a file can I convert?
Free tier allows up to 2 MB per file; Pro raises it to 50 MB. Because uncompressed CT/MR/CR frames are often 2–6 MB, those typically need Pro. The DICOM tool shares the PDF-family size limits.
Is patient data uploaded anywhere?
No. Parsing and rendering happen entirely in your browser tab using dicom-parser and pdf-lib. The pixel data and identifiers never reach a server — the result panel confirms 0 bytes uploaded.
Is this suitable for diagnosis?
No. The output is a JPEG-compressed visual reproduction at a single window setting on an A4 page — fine for communication and records, not for primary reading. Diagnostic interpretation must use the full DICOM data on a calibrated clinical display.
How do I remove the patient name from the output?
The caption is rendered onto the page, so document-property scrubbing won't touch it. Run the result through the PII redactor to black out the name and ID, or de-identify the DICOM at the source before converting.
Does it support colour images?
Uncompressed RGB (SamplesPerPixel = 3) renders as colour. YBR colour spaces are not converted, so YBR ultrasound may show shifted colours — export as RGB if you can. Grayscale modalities (X-ray, CT, MR) are the primary supported case.
Can I automate this in a pipeline?
Yes. dicom-to-pdf is exposed to the @jadapps/runner as a runner-builtin (Pro): fetch the schema with GET /api/v1/tools/dicom-to-pdf, pair the runner once, then POST the file to 127.0.0.1:9789/v1/tools/dicom-to-pdf/run. Processing stays local on your machine.
Privacy first
All PDF processing runs locally in your browser using PDF-lib and pdf.js. No file is ever uploaded — only metadata counters are saved for signed-in dashboard stats.