op.annots.setProps
From PDF XChange PDF SDK
(→Sample) |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 25: | Line 25: | ||
| Dictionary with options of the operation. | | Dictionary with options of the operation. | ||
|} | |} | ||
+ | |||
+ | == Sample == | ||
+ | <pre class="brush:c#">//C# | ||
+ | private void SetAnnotationsProperties(PDFXEdit.IPXV_Document Doc, PDFXEdit.IPXV_Inst Inst) | ||
+ | { | ||
+ | PDFXEdit.IPXS_Inst pSInt = (PDFXEdit.IPXS_Inst)Inst.GetExtension("PXS"); | ||
+ | uint nWidgetAtom = pSInt.StrToAtom("Widget"); | ||
+ | int nID = Inst.Str2ID("op.annots.setProps", false); | ||
+ | PDFXEdit.IOperation Op = Inst.CreateOp(nID); | ||
+ | PDFXEdit.ICabNode input = Op.Params.Root["Input"]; | ||
+ | //Get widget annotations from the first page | ||
+ | PDFXEdit.IPXC_Page page = Doc.CoreDoc.Pages[0]; | ||
+ | uint nPageCount = page.GetAnnotsCount(); | ||
+ | for (uint i = 0; i < nPageCount; i++) | ||
+ | { | ||
+ | PDFXEdit.IPXC_Annotation annot = page.GetAnnot(i); | ||
+ | if (annot.Type == nWidgetAtom) | ||
+ | { | ||
+ | if ((annot.Field != null) && (annot.Field.Type == PDFXEdit.PXC_FormFieldType.FFT_Text)) | ||
+ | input.Add().v = annot; | ||
+ | } | ||
+ | } | ||
+ | if (input.Count == 0) | ||
+ | return; | ||
+ | PDFXEdit.ICabNode options = Op.Params.Root["Options"]; | ||
+ | options["ContentRotation"].v = 90; | ||
+ | options["MaskEx"].v = 0x00000400; // widgets will be modified | ||
+ | Op.Do(); | ||
+ | } | ||
+ | |||
+ | private void SetLineWidthProfile(PDFXEdit.IPXV_Document Doc, PDFXEdit.IPXV_Inst Inst) | ||
+ | { | ||
+ | PDFXEdit.IPXS_Inst pSInt = (PDFXEdit.IPXS_Inst)Inst.GetExtension("PXS"); | ||
+ | int nID = Inst.Str2ID("op.annots.setProps", false); | ||
+ | PDFXEdit.IOperation Op = Inst.CreateOp(nID); | ||
+ | PDFXEdit.ICabNode input = Op.Params.Root["Input"]; | ||
+ | //Get widget annotations from the first page | ||
+ | PDFXEdit.IPXC_Page page = Doc.CoreDoc.Pages[0]; | ||
+ | uint nPageCount = page.GetAnnotsCount(); | ||
+ | for (uint i = 0; i < nPageCount; i++) | ||
+ | { | ||
+ | PDFXEdit.IPXC_Annotation annot = page.GetAnnot(i); | ||
+ | input.Add().v = annot; | ||
+ | } | ||
+ | if (input.Count == 0) | ||
+ | return; | ||
+ | PDFXEdit.ICabNode options = Op.Params.Root["Options"]; | ||
+ | options["LineWidthProfile"].v = Inst.Str2ID("pencil.varProfile.5"); | ||
+ | options["MaskEx"].v = 0x00008000; | ||
+ | Op.Do(); | ||
+ | } | ||
+ | </pre> |
Latest revision as of 05:32, 29 January 2021
Overview
The operation allows to set properties of the given annotations.
Parameters
Name | Type | Description |
---|---|---|
Input | Array | Array of IUnknown -based objects containing the IPXC_Annotation objects which will have their properties modified. Note that all of the annotations must belong to one document.
|
Output | Array | Not yet implemented. |
Options | Dictionary | Dictionary with options of the operation. |
Sample
//C# private void SetAnnotationsProperties(PDFXEdit.IPXV_Document Doc, PDFXEdit.IPXV_Inst Inst) { PDFXEdit.IPXS_Inst pSInt = (PDFXEdit.IPXS_Inst)Inst.GetExtension("PXS"); uint nWidgetAtom = pSInt.StrToAtom("Widget"); int nID = Inst.Str2ID("op.annots.setProps", false); PDFXEdit.IOperation Op = Inst.CreateOp(nID); PDFXEdit.ICabNode input = Op.Params.Root["Input"]; //Get widget annotations from the first page PDFXEdit.IPXC_Page page = Doc.CoreDoc.Pages[0]; uint nPageCount = page.GetAnnotsCount(); for (uint i = 0; i < nPageCount; i++) { PDFXEdit.IPXC_Annotation annot = page.GetAnnot(i); if (annot.Type == nWidgetAtom) { if ((annot.Field != null) && (annot.Field.Type == PDFXEdit.PXC_FormFieldType.FFT_Text)) input.Add().v = annot; } } if (input.Count == 0) return; PDFXEdit.ICabNode options = Op.Params.Root["Options"]; options["ContentRotation"].v = 90; options["MaskEx"].v = 0x00000400; // widgets will be modified Op.Do(); } private void SetLineWidthProfile(PDFXEdit.IPXV_Document Doc, PDFXEdit.IPXV_Inst Inst) { PDFXEdit.IPXS_Inst pSInt = (PDFXEdit.IPXS_Inst)Inst.GetExtension("PXS"); int nID = Inst.Str2ID("op.annots.setProps", false); PDFXEdit.IOperation Op = Inst.CreateOp(nID); PDFXEdit.ICabNode input = Op.Params.Root["Input"]; //Get widget annotations from the first page PDFXEdit.IPXC_Page page = Doc.CoreDoc.Pages[0]; uint nPageCount = page.GetAnnotsCount(); for (uint i = 0; i < nPageCount; i++) { PDFXEdit.IPXC_Annotation annot = page.GetAnnot(i); input.Add().v = annot; } if (input.Count == 0) return; PDFXEdit.ICabNode options = Op.Params.Root["Options"]; options["LineWidthProfile"].v = Inst.Str2ID("pencil.varProfile.5"); options["MaskEx"].v = 0x00008000; Op.Do(); }