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
gdcmpdftool 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 β¨
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 πβ¨π
π¦ where this page comes from
- opensuse-leap 16.0: gdcm-applications 3.0.24-bp160.2.1 Β· BSD-3-Clause
- opensuse-leap 16.0: gdcm-applications 3.0.24-bp160.2.1 Β· BSD-3-Clause
- opensuse-leap 16.0: gdcm-applications 3.0.24-bp160.2.1 Β· BSD-3-Clause
- opensuse-leap 16.0: gdcm-applications 3.0.24-bp160.2.1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms