op.document.exportToImages
From PDF XChange PDF SDK
(→Sample) |
|||
Line 59: | Line 59: | ||
Op.Do(); | Op.Do(); | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | == Sample == | ||
+ | <pre>//C++ | ||
+ | HRESULT ExportToImages(PXV::IPXV_Document pDoc, PXV::IPXV_Inst pInst) | ||
+ | { | ||
+ | if ((pDoc == 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", 1414088262); //TIFF | ||
+ | //Image type | ||
+ | pFmtParams->SetInt(L"ITYP", 16); //24 TrueColor | ||
+ | //Use Predictor | ||
+ | pFmtParams->SetInt(L"PRED", 1); //Yes | ||
+ | //Thumbnail | ||
+ | pFmtParams->SetInt(L"ITYP", 0); //No | ||
+ | |||
+ | hr = pOp->Do(0); | ||
+ | |||
+ | } while (false); | ||
+ | return hr; | ||
} | } | ||
</pre> | </pre> |
Revision as of 05:44, 22 February 2016
Contents
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["ITYP"].v = 0; //No Op.Do(); }
Sample
//C++ HRESULT ExportToImages(PXV::IPXV_Document pDoc, PXV::IPXV_Inst pInst) { if ((pDoc == 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", 1414088262); //TIFF //Image type pFmtParams->SetInt(L"ITYP", 16); //24 TrueColor //Use Predictor pFmtParams->SetInt(L"PRED", 1); //Yes //Thumbnail pFmtParams->SetInt(L"ITYP", 0); //No hr = pOp->Do(0); } while (false); return hr; }