Q: I have a query about the methods available to extract different
image formats. We were able to extract the bmp, gif, png and jpg images
from the attached pdf by testing the imageType and using the utility
Image::export function to write a png/jpg image from the PDF for each
I was not able to extract the svg, wmf and emf files. Is this possible
PDF format does not reference these specifications, so it is not
possible to directly embed svg, wmf, emf, and other vector formats in
PDF content stream. Instead these formats (like raster images) are
converted to PDF content (e.g. via a print driver, PDF creation API
such as the one available in PDFNet, or using a stand-alone converter).
To go from PDF to vector formats (svg, wmf, emf, etc) you could use
ElementReader class (as illustrated in ElementReaderAvd sample project:
keep in mind that unless you identify the page sub-region to be
exported in vector format you will most likely end up converting the
entire PDF page to svg, wmf or emf.
Using PDFNet (on Windows platforms) it is also possible to directly
convert PDF pages to EMF/WMF using GDI+ rasterizer (in PDFDraw class
call pdfdraw.SetRasterizerType( PDFRasterizer.Type.e_GDIPlus) ) and
meta-file device context. You may want to take a look at the following
article for some extra information on how to create metafile device
If you are working with .NET, you can obtain metafile HDC using
GetHDC() on 'Graphics' object (don't forget to call ReleaseHDC() when
you are done with PDF conversion).
For PDF to SVG conversion we offer a separate SDK
(http://www.pdftron.com/pdf2svg) that can be used to directly convert
PDF to high-quality SVG.