op.document.exportToImages
From PDF XChange PDF SDK
Overview
The operation allows to export document pages to the image files with given DPI, zoom factor and specified format.
Parameters
| Name | Type | Description |
|---|---|---|
| Input | Array | Array of IUnknown-based objects.
|
| Output | Array | Array of IUnknown-based objects.
|
| Options | Dictionary | Dictionary with options of the operation. |
Sample
//C#
private void ExportToImages(PDFXEdit.IPXV_Document Doc, PDFXEdit.PXV_Inst Inst)
{
int nID = Inst.Str2ID("op.document.exportToImages", false);
PDFXEdit.IOperation Op = Inst.CreateOp(nID);
PDFXEdit.ICabNode input = Op.Params.Root["Input"];
input.Add().v = Doc;
PDFXEdit.ICabNode options = Op.Params.Root["Options"];
options["PagesRange.Type"].v = "Exact";
options["PagesRange.Text"].v = "1-3";
options["DestFolder"].v = "D:\\TestFolder\\"; //Output folder
options["ExportMode"].v = "AllToMutliPage";
options["Zoom"].v = 150;
//Saving as tiff
PDFXEdit.ICabNode fmtParams = options["FormatParams"];
//Compression type
fmtParams["COMP"].v = 5; //LZW compression
//X DPI
fmtParams["DPIX"].v = 150;
//Y DPI
fmtParams["DPIY"].v = 150;
//Image format
fmtParams["FMT"].v = 1414088262; //TIFF
//Image type
fmtParams["ITYP"].v = 16; //24 TrueColor
//Use Predictor
fmtParams["PRED"].v = 1; //Yes
//Thumbnail
fmtParams["THUM"].v = 0; //No
Op.Do();
}
//C++
#define MAKE_ID(a, b, c, d) ((a) << 24) | ((b) << 16) | ((c) << 8) | (d)
#define FMT_BMP_ID MAKE_ID('B', 'M', 'P', ' ')
#define FMT_GIF_ID MAKE_ID('G', 'I', 'F', ' ')
#define FMT_TIFF_ID MAKE_ID('T', 'I', 'F', 'F')
#define FMT_JPG_ID MAKE_ID('J', 'P', 'G', ' ')
#define FMT_PNG_ID MAKE_ID('P', 'N', 'G', ' ')
HRESULT ExportToImages(PXV::IPXV_Document* pVDoc, PXV::IPXV_Inst* pInst)
{
if ((pVDoc == nullptr) || (pInst == nullptr))
return E_FAIL;
HRESULT hr = S_OK;
//Export to images
do
{
LONG opID = -1;
pInst->Str2ID(L"op.document.exportToImages", false, &opID);
if (opID < 0)
break;
CComPtr<PXV::IOperation> pOp;
hr = pInst->CreateOp(opID, &pOp);
if (FAILED(hr))
break;
//Getting parameters
CComPtr<PXV::ICab> pParams;
hr = pOp->get_Params(&pParams);
if (FAILED(hr))
break;
CComPtr<PXV::ICabNode> pRoot;
hr = pParams->get_Root(&pRoot);
if (FAILED(hr))
break;
//Setting input document
CComPtr<PXV::ICabNode> pInput;
hr = pRoot->get_SubNode(CComVariant("Input"), PXV::dt_Array, &pInput);
if (FAILED(hr))
break;
CComPtr<PXV::ICabNode> pDocNode;
hr = pInput->Add(PXV::dt_IUnknown, &pDocNode);
if (FAILED(hr))
break;
hr = pDocNode->put_Unknown(pVDoc);
if (FAILED(hr))
break;
//Setting options
CComPtr<PXV::ICabNode> pOptions;
hr = pRoot->get_SubNode(CComVariant("Options"), PXV::dt_Undefined, &pOptions);
if (FAILED(hr))
break;
pOptions->SetString(L"PagesRange.Type", L"Exact");
pOptions->SetString(L"PagesRange.Text", L"1-3");
pOptions->SetString(L"DestFolder", L"D:\\TestFolder\\");
pOptions->SetString(L"ExportMode", L"AllToMutliPage");
pOptions->SetInt(L"Zoom", 150);
//Image format parameters
CComPtr<PXV::ICabNode> pFmtParams;
hr = pOptions->get_SubNode(CComVariant("FormatParams"), PXV::dt_Undefined, &pFmtParams);
if (FAILED(hr))
break;
//Compression type
pFmtParams->SetInt(L"COMP", 5); //LZW compression
//X DPI
pFmtParams->SetInt(L"DPIX", 150);
//Y DPI
pFmtParams->SetInt(L"DPIY", 150);
//Image format
pFmtParams->SetInt(L"FMT", FMT_TIFF_ID); //TIFF
//Image type
pFmtParams->SetInt(L"ITYP", 16); //24 TrueColor
//Use Predictor
pFmtParams->SetInt(L"PRED", 1); //Yes
//Thumbnail
pFmtParams->SetInt(L"THUM", 0); //No
hr = pOp->Do(0);
} while (false);
return hr;
}