I am using PDFBox lib to render content of PDF. There are some limitations (Type1 fonts are not supported, CMYK images are not supported, operators MP, PD, BMC, BDC and EMC are not implemented).
How should I interpret the operators MP, PD, BMC, BDC and EMC?
Updated:
operator: BDC args: [COSName{EmbeddedDocument}, COSName{MC1}]
operator: BDC args: [COSName{Document}, COSName{MC2}]
operator: gs args: [COSName{GS9}]
operator: cs args: [COSName{Pattern}]
operator: scn args: [COSName{P1}]
operator: re args: [COSInt{66}, COSFloat{570.302}, COSFloat{432.5}, COSFloat{23.278}]
operator: f args: [] // fill path
operator: k args: [COSInt{0}, COSInt{0}, COSInt{0}, COSInt{1}] // black color
operator: m args: [COSFloat{92.458}, COSFloat{559.601}] // move
operator: l args: [COSFloat{93.769}, COSFloat{559.601}]
operator: l args: [COSFloat{94.699}, COSFloat{562.331}]
....
....
operator: l args: [COSFloat{88.003}, COSFloat{582.385}]
operator: l args: [COSFloat{92.467}, COSFloat{576.433}]
operator: l args: [COSFloat{88.196}, COSFloat{571.038}]
operator: f* args: []
operator: gs args: [COSName{GS10}]
operator: w args: [COSFloat{0.216}]
operator: M args: [COSFloat{2.613}]
operator: m args: [COSFloat{88.196}, COSFloat{571.038}]
operator: l args: [COSFloat{92.659}, COSFloat{571.038}] // add line to path
operator: l args: [COSFloat{94.624}, COSFloat{574.24}]
operator: l args: [COSFloat{96.545}, COSFloat{571.038}]
operator: l args: [COSFloat{102.076}, COSFloat{571.038}]
operator: l args: [COSFloat{97.507}, COSFloat{577.119}]
operator: l args: [COSFloat{101.649}, COSFloat{582.385}]
operator: l args: [COSFloat{97.186}, COSFloat{582.385}]
operator: l args: [COSFloat{95.328}, COSFloat{579.462}]
operator: l args: [COSFloat{93.513}, COSFloat{582.385}]
operator: l args: [COSFloat{88.003}, COSFloat{582.385}]
operator: l args: [COSFloat{92.467}, COSFloat{576.433}]
operator: l args: [COSFloat{88.196}, COSFloat{571.038}]
operator: h args: []
operator: S args: [] // stroke
operator: EMC args: []
operator: EMC args: []
These are metadata related operators, they have no effect on rendering except when they are used with optional content. You can interpret them if they parameters have any logical meaning to your application, otherwise you can ignore them.