GDCMPDF(1)

πŸŽ€ GDCMPDF(1) β€” DICOM Manipulation πŸŽ€

okay bestie, so this is gdcmpdf from the DICOM Manipulation crew, and honestly? it's a lil one-job icon. πŸ’…


✨ NAME ✨

gdcmpdf β€” the tool that turns a PDF into a PDF/DICOM file. that's it, that's the vibe. πŸ¦‹


✨ SYNOPSIS ✨

gdcmpdf [options] file-in file-out

✨ DESCRIPTION ✨

so the gdcmpdf tool converts a PDF file (any PDF version, no gatekeeping 🫢) into an encapsulated PDF/DICOM file. iconic behavior.

by default it's gonna try to read the PDF meta information stored in the PDF and convert that into some specific DICOM fields (peep the mapping section below πŸ‘€). but ngl, it may fail (like, say, a wrong password on an encrypted PDF file 😭) β€” in which case empty values get used. no drama, it just moves on.


✨ PARAMETERS ✨

  • file-in β€” the PDF input filename (your lil PDF bestie)
  • file-out β€” the DICOM output filename (the glow-up result ✨)

✨ OPTIONS ✨

🌸 general options 🌸

  • -h, --help β€” prints this help text and dips. πŸ‘‹
  • -v, --version β€” prints version information and dips. πŸ’–
  • -V, --verbose β€” verbose mode (warning+error). talkative era.
  • -W, --warning β€” warning mode, prints warning information. ⚠️
  • -E, --error β€” error mode, prints error information. πŸ’€
  • -D, --debug β€” debug mode, prints debug information. the main character of log levels πŸ”₯

✨ USAGE EXAMPLE ✨

okay so let's actually do it:

$ wget http://gdcm.sourceforge.net/gdcm.pdf
$ gdcmpdf gdcm.pdf gdcm.dcm

and if you ever need to re-extract the encapsulated PDF file (round trip!! we love a return journey 🧚):

$ gdcmraw -i gdcm.dcm -t 42,11 -o gdcm.dcm.pdf
$ diff gdcm.pdf gdcm.dcm.pdf

✨ PDF INFO MAPPING ✨

here's how the PDF info gets mapped to DICOM information β€” this is a typical pdfinfo output, no cap:

Title:          GDCM Reference Manual
Subject:        Grassroots DICOM API reference
Keywords:       GDCM,DICOM,JPEG,Lossless JPEG,JPEG-LS,J2K,JPEG 2000,RLE
Author:         Mathieu Malaterre and co.
Creator:        LaTeX with hyperref package
Producer:       pdfeTeX-1.21a
CreationDate:   Tue Apr 28 15:34:26 2009
Tagged:         no
Pages:          1188
Encrypted:      no
Page size:      612 x 792 pts (letter)
File size:      13756841 bytes
Optimized:      yes
PDF version:    1.4

converted to DICOM, this leads to:

# Dicom-Data-Set
# Used TransferSyntax: Little Endian Explicit
(0008,0005) CS [ISO_IR 100]                             #  10, 1 SpecificCharacterSet
(0008,0012) DA [20090428]                               #   8, 1 InstanceCreationDate
(0008,0013) TM [182550.302631]                          #  14, 1 InstanceCreationTime
(0008,0016) UI =EncapsulatedPDFStorage                  #  30, 1 SOPClassUID
(0008,0018) UI [1.2.826.0.1.3680043.2.1143.776842935192792959289022034349197114] #  64, 1 SOPInstanceUID
(0008,0020) DA [20090428]                               #   8, 1 StudyDate
(0008,0023) DA [20090428]                               #   8, 1 ContentDate
(0008,002a) DT [20090428153437.000000]                  #  22, 1 AcquisitionDateTime
(0008,0030) TM [182550.302160]                          #  14, 1 StudyTime
(0008,0033) TM [153426.000000]                          #  14, 1 ContentTime
(0008,0050) SH (no value available)                     #   0, 0 AccessionNumber
(0008,0060) CS [OT]                                     #   2, 1 Modality
(0008,0064) CS [WSD]                                    #   4, 1 ConversionType
(0008,0070) LO [LaTeX with hyperref package]            #  28, 1 Manufacturer
(0008,0090) PN (no value available)                     #   0, 0 ReferringPhysiciansName
(0010,0010) PN [Mathieu Malaterre and co.]              #  26, 1 PatientsName
(0010,0020) LO (no value available)                     #   0, 0 PatientID
(0010,0030) DA (no value available)                     #   0, 0 PatientsBirthDate
(0010,0040) CS (no value available)                     #   0, 0 PatientsSex
(0018,1020) LO [pdfeTeX-1.21a]                          #  14, 1 SoftwareVersions
(0020,000d) UI [1.2.826.0.1.3680043.2.1143.1868121832223417351654232480755123133] #  64, 1 StudyInstanceUID
(0020,000e) UI [1.2.826.0.1.3680043.2.1143.1330099150825746617507846107663964311] #  64, 1 SeriesInstanceUID
(0020,0010) SH (no value available)                     #   0, 0 StudyID
(0020,0011) IS [1]                                      #   2, 1 SeriesNumber
(0020,0013) IS [1]                                      #   2, 1 InstanceNumber
(0028,0301) CS [YES]                                    #   4, 1 BurnedInAnnotation
(0040,a043) SQ (Sequence with explicit length #=0)      #   0, 1 ConceptNameCodeSequence
(fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem
(0042,0010) ST [GDCM Reference Manual]                  #  22, 1 DocumentTitle
(0042,0011) OB 25\\50\\44\\46\\2d\\31\\2e\\34\\0a\\25\\e7\\f3\\cf\\d3\\0a\\33\\32\\30\\37\\37\\20\\30... # 13756842, 1 EncapsulatedDocument
(0042,0012) LO [application/pdf]                        #  16, 1 MIMETypeOfEncapsulatedDocument

and here's the stat on the source PDF because receipts matter 🧾:

$ stat gdcm.pdf
  File: `gdcm.pdf'
  Size: 13756841        Blocks: 26912      IO Block: 4096   regular file
Device: fe01h/65025d    Inode: 2675750     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1002/mmalaterre)   Gid: ( 1002/mmalaterre)
Access: 2009-04-28 16:05:00.000000000 +0200
Modify: 2009-04-28 15:34:37.000000000 +0200
Change: 2009-04-28 16:05:00.000000000 +0200

πŸ¦‹ explanation for the different Date/Time mappings πŸ¦‹

so why are all the dates doing their own thing? let me break it down bestie:

  • Study Date/Time and Instance Creation Date/Time are both equal to the current time the gdcmpdf tool was run. right here, right now. ⏰
  • Acquisition Date Time is set to the Modify Time of the actual PDF file. the file's own lore. πŸ“„
  • Content Date/Time are set from the actual PDF header info: CreationDate. straight from the source, iykyk. πŸ’œ

✨ SEE ALSO ✨

gdcmconv(1), gdcmraw(1), pdfinfo(1) β€” go give them a follow, they're all in the same friend group 🫢


✨ AUTHOR ✨

Mathieu Malaterre β€” Main developer πŸ‘‘


Copyright Β© 2006, 2011 Mathieu Malaterre


lowkey obsessed with how much this tiny tool does. no notes. 🌈

and that's the whole page, bestie β€” brought to you by GDCM 3.0.24, dated 12/25/2025. happy converting πŸ’–βœ¨πŸŽ€