Skip to content

Instantly share code, notes, and snippets.

View Polaringu's full-sized avatar

Alex Polaringu

  • SoftServe
  • Ukraine
View GitHub Profile
@Polaringu
Polaringu / op.document.resizePages.cs
Last active December 16, 2015 07:52
Resize pages operation code sample
//C#
private void ResizePageToA2(PDFXEdit.IPXV_Document pDoc, PDFXEdit.PXV_Inst pInst)
{
if (pDoc == null)
return;
int nID = pInst.Str2ID("op.document.resizePages", false);
PDFXEdit.IOperation pOp = pInst.CreateOp(nID);
PDFXEdit.ICabNode input = pOp.Params.Root["Input"];
input.v = pDoc;
PDFXEdit.ICabNode options = pOp.Params.Root["Options"];
public bool HasInvalidPaths(PDFXEdit.IPXC_Annotation annot)
{
uint invalidCount = 0;
uint GoTo = pxsInst.StrToAtom("GoTo");
uint GoToR = pxsInst.StrToAtom("GoToR");
uint Launch = pxsInst.StrToAtom("Launch");
PDFXEdit.IPXC_ActionsList actions = annot.get_Actions(PDFXEdit.PXC_TriggerType.Trigger_Up);
for (uint k = 0; k < actions.Count; k++)
{
if ((actions[k].Type == GoTo) || (actions[k].Type == GoToR))
template <typename T>
void ConvertAnnotDataToGrey(T* pData)
{
float r = 0, g = 0, b = 0;
CComPtr<PXC::IColor> pFClr;
CComPtr<PXC::IColor> pSClr;
pData->get_FColor(&pFClr);
if (pFClr == nullptr)
return;
PXC::ColorType nType = PXC::ColorType_None;
private void EmbeddPageAsAnIcon(PDFXEdit.IPXC_Document srcDoc, PDFXEdit.IPXC_Document destDoc, PDFXEdit.IPXV_Inst Inst)
{
if (destDoc.HasAcroForm != false)
{
PDFXEdit.IPXC_FormField ff = destDoc.AcroForm.GetFieldByName("Button1");
if (ff != null)
{
PDFXEdit.IPXC_Annotation annot = ff.Widget[0];
PDFXEdit.IPXC_AnnotData_Widget WData = (PDFXEdit.IPXC_AnnotData_Widget)annot.Data;
PDFXEdit.IPXC_Page srcPage = srcDoc.Pages[0];
public void InitializeTwoControls()
{
//First frame will be with full Control functionality
PDFXEdit.IPXV_MainFrame firstMainFrame = pdfCtl.Inst.MainFrm[0];
PDFXEdit.IPXV_MainView firstMainView = firstMainFrame.View;
PDFXEdit.IPXC_Document doc = pxcInst.OpenDocumentFromFile("D:\\TestFile.pdf", null, null);
firstMainFrame.OpenDocFrom(doc);
firstMainView.CmdPaneTop.Show();
//Setting up preview frame
SourceCtrl.OpenDocFromPath(appRootDir + "\\SP.pdf");
PDFXEdit.IPXV_Document sourceDoc = SourceCtrl.Doc;
DestinationCtrl.OpenDocFromPath(appRootDir + "\\SF.pdf");
EmbeddPageAsAnIcon(sourceDoc.CoreDoc, DestinationCtrl.Doc.CoreDoc, DestinationCtrl.Inst);
private void changeAnnotationScaleToolStripMenuItem_Click(object sender, EventArgs e)
{
PDFXEdit.IPXC_Annotation annot = pdfCtl.Doc.CoreDoc.Pages[0].GetAnnot(0);
PDFXEdit.IPXC_AnnotData_Poly PData = (PDFXEdit.IPXC_AnnotData_Poly)annot.Data;
PDFXEdit.IPXC_MeasureRL measure = (PDFXEdit.IPXC_MeasureRL)PData.Measure;
//We'll set the scale from 33mm to 11m
measure.Ratio = "33 mm = 11 m";
PDFXEdit.IPXC_NumberFormatArray nfa = measure.GetX();
PDFXEdit.IPXC_NumberFormatItem nfi = nfa.CreateNewItem();
nfi.FractionType = PDFXEdit.PXC_MeasureFractionType.MFT_AsDecimal;
private PDFXEdit.PXC_Matrix Multiply(PDFXEdit.PXC_Matrix m1, PDFXEdit.PXC_Matrix m2)
{
double t0 = (double)(m1.a * m2.a + m1.b * m2.c);
double t2 = (double)(m1.c * m2.a + m1.d * m2.c);
double t4 = (double)(m1.e * m2.a + m1.f * m2.c + m2.e);
m1.b = (double)(m1.a * m2.b + m1.b * m2.d);
m1.d = (double)(m1.c * m2.b + m1.d * m2.d);
m1.f = (double)(m1.e * m2.b + m1.f * m2.d + m2.f);
m1.a = t0;
m1.c = t2;
private void addImageOnPageToolStripMenuItem_Click(object sender, EventArgs e)
{
PDFXEdit.IPXC_Document doc = pxcInst.NewDocument();
PDFXEdit.IPXC_Image img = doc.AddImageFromFile("D:\\YourImage.png");
PDFXEdit.PXC_Rect rcMedia;
rcMedia.left = 0;
rcMedia.bottom = 0;
//We will create 200*200 page
rcMedia.top = 200;//img.Height;
rcMedia.right = 200;//img.Width;