pdfResetMPDeviceNChannelList

Get the name of a DeviceN color channel (multi-pass DeviceN API).
void pdfResetMPDeviceNChannelList(PDFHandle pdf)
This function removes the color channel list that controls multi-pass rasterization by the pdfConvertPageToDeviceNImage, pdfConvertPageToDeviceNImageWithAlpha, pdfConvertRegionToDeviceNImage, and pdfConvertRegionToDeviceNImageWithAlpha functions. I.e., this resets the DeviceN rasterization functions to use the regular one-pass approach, where any color channels beyond the first 32 are converted to CMYK.

To enable multi-pass rasterization, call pdfAddMPDeviceNChannel one or more times after pdfResetMPDeviceNChannelList.

C:
// Print the list of all channels used on <page>. // This list may contain more than 32 channels. pdfLoadMPDeviceNChannels(pdf, page); nChannels = pdfGetNumMPDeviceNChannels(pdf); for (i = 0; i < nChannels; ++i) { printf("channel %2d: %s\n", i, pdfGetMPDeviceNChannelName(pdf, i)); } // All rasterizations include CMYK as the first four channels, and // the limit is 32 channels, which means we can rasterize 28 spot // channels per run. For the first run we write the CMYK bitmaps; // for subsequent runs we skip them (they'll be identical). i = 4; do { // rasterize CMYK (channels 0..3) + spot channels i .. i+28 pdfResetMPDeviceNChannelList(pdf); for (j = i; j < i + 28 && j < nChannels; ++j) { pdfAddMPDeviceNChannel(pdf, pdfGetMPDeviceNChannelName(pdf, j)); } err = pdfConvertPageToDeviceNImage(pdf, page, dpi); if (err != pdfOk) { ... } for (j = (i == 4) ? 0 : 4; j < pdfGetNumDeviceNChannels(pdf); ++j) { channelName = pdfGetDeviceNChannelName(pdf, j); pdfGetDeviceNBitmap(pdf, j, 1, 0, &hdr, &bits); ... use the bitmap for <channelName> ... pdfFreeMemory(bits); } pdfClearDeviceNImage(pdf); i += 28; } while (i < nChannels);
pdfLoadMPDeviceNChannels
pdfGetNumMPDeviceNChannels
pdfGetMPDeviceNChannelName
pdfAddMPDeviceNChannel
pdfConvertPageToDeviceNImage
pdfConvertPageToDeviceNImageWithAlpha
pdfConvertRegionToDeviceNImage
pdfConvertRegionToDeviceNImageWithAlpha