PDF Core Library

From PDF XChange PDF SDK
Jump to: navigation, search
Line 4: Line 4:
  
 
== Introduction ==
 
== Introduction ==
'''PDF Core Library''' is one of the layer of ''PDF-XChange Editor SDK'' and ''PDF-XChange Core PDF SDK''. Interfaces of this layer provides an access to high level objects of PDF file, such as [[PXV:IPXC_Document|document]], [[PXV:IPXC_Page|pages]], [[PXV:IPXC_Annotation|annotations]], [[PXV:IPXC_FormField|form fields]], etc.
+
'''PDF Core Library''' is one layer of the ''PDF-XChange Editor SDK'' and ''PDF-XChange Core PDF SDK''. Interfaces of this layer provide access to high level objects of a PDF file, such as [[PXV:IPXC_Document|document]], [[PXV:IPXC_Page|pages]], [[PXV:IPXC_Annotation|annotations]], [[PXV:IPXC_FormField|form fields]], etc.
  
It allows creation of new document as well as modification of existing documents. It also contains method to render PDF pages to [[PXV:IPXC_Page_DrawToDevice|devices]] or to [[PXV:IPXC_Page_DrawToIXCPage|image]].
+
The creation of new documents as well as modification to existing documents ia supported. Further a means to render PDF pages to [[PXV:IPXC_Page_DrawToDevice|devices]] or to [[PXV:IPXC_Page_DrawToIXCPage|image]] to display content to a users screen is available.
  
 
== PDF-XChange Core SDK ==
 
== PDF-XChange Core SDK ==
  
If ''PDF-XChange Core PDF SDK'' is used, it '''must''' be initialized by call [[PXV:IPXC_Inst_Init|IPXC_Inst::Init]] method and should be finalized by call [[PXV:IPXC_Inst_Finalize|IPXC_Inst::Finalize]] method.
+
If the ''PDF-XChange Core PDF SDK'' is used, it '''must''' be initialized calling [[PXV:IPXC_Inst_Init|IPXC_Inst::Init]] method and should be finalized by calling the  [[PXV:IPXC_Inst_Finalize|IPXC_Inst::Finalize]] method.
This method will have no effect in ''PDF-XChange Editor SDK''.
+
This method will have no effect within the ''PDF-XChange Editor SDK''.
  
''PDF-XChange Core SDK'' consists of one DLL and can be used without registration it as COM server. To start using the ''PDF-XChange Core SDK'' developer must create an instance of '''[[PXV:IPXC_Inst|IPXC_Inst]]''' object. There are several ways to do that.
+
''PDF-XChange Core SDK'' consists of one DLL and can be used without registration as a COM server. To use the ''PDF-XChange Core SDK'' a developer must create an instance of the '''[[PXV:IPXC_Inst|IPXC_Inst]]''' object. There are several ways to do this.
 
* If ''PDF-XChange Core SDK'' is used as registered COM server, '''IPXC_Inst''' object should be created using '''CoCreateInstance''' call:
 
* If ''PDF-XChange Core SDK'' is used as registered COM server, '''IPXC_Inst''' object should be created using '''CoCreateInstance''' call:
 
<pre class="brush:cpp">
 
<pre class="brush:cpp">
Line 25: Line 25:
  
  
* If ''PDF-XChange Core SDK'' without registration COM server, function '''PXC_GetInstance''', exported by SDK's DLL, should be called to get '''IPXC_Inst''' object:
+
* If using the ''PDF-XChange Core SDK'' without registration as a COM server, the function '''PXC_GetInstance''', exported by the SDK's DLL, should be called to get the '''IPXC_Inst''' object:
 
<pre class="brush:cpp">
 
<pre class="brush:cpp">
 
typedef HRESULT (WINAPI *fnPXC_GetInstance)(IPXC_Inst** ppInst);
 
typedef HRESULT (WINAPI *fnPXC_GetInstance)(IPXC_Inst** ppInst);
Line 43: Line 43:
 
</pre>
 
</pre>
  
When '''IPXC_Inst''' is received, its method [[PXV:IPXC_Inst_Init|Init]] '''must''' be called to initialize the SDK and pass proper serial key. Witout this call the SDK will not work.
+
When '''IPXC_Inst''' is received, its method [[PXV:IPXC_Inst_Init|Init]] '''must''' be called to initialize the SDK and pass optionally a valid serial key. Use without first making this call with a valid serial key will result in the SDK functioning in 'Evaluation' mode.
  
 
== PDF-XChange Editor SDK ==
 
== PDF-XChange Editor SDK ==
  
In the ''PDF-XChange Editor SDK'' the '''IPXC_Inst''' is initialized by the SDK itself and methods '''Init''' and '''Finalize''' should not be used. '''IPXC_Inst''' object can be retrieved from '''PDF-XChange Editor SDK's''' main object in the following way:
+
In the ''PDF-XChange Editor SDK'' the '''IPXC_Inst''' is initialized by the SDK itself and methods '''Init''' and '''Finalize''' should not be used. '''IPXC_Inst''' object can be retrieved from the '''PDF-XChange Editor SDK's''' main object in the following way:
 
<pre class="brush:cpp">
 
<pre class="brush:cpp">
 
HRESULT fGetInst(IPXV_Inst* pVInst, CComPtr<IPXC_Inst>& inst)
 
HRESULT fGetInst(IPXV_Inst* pVInst, CComPtr<IPXC_Inst>& inst)

Revision as of 11:14, 5 June 2015


Introduction

PDF Core Library is one layer of the PDF-XChange Editor SDK and PDF-XChange Core PDF SDK. Interfaces of this layer provide access to high level objects of a PDF file, such as document, pages, annotations, form fields, etc.

The creation of new documents as well as modification to existing documents ia supported. Further a means to render PDF pages to devices or to image to display content to a users screen is available.

PDF-XChange Core SDK

If the PDF-XChange Core PDF SDK is used, it must be initialized calling IPXC_Inst::Init method and should be finalized by calling the IPXC_Inst::Finalize method. This method will have no effect within the PDF-XChange Editor SDK.

PDF-XChange Core SDK consists of one DLL and can be used without registration as a COM server. To use the PDF-XChange Core SDK a developer must create an instance of the IPXC_Inst object. There are several ways to do this.

  • If PDF-XChange Core SDK is used as registered COM server, IPXC_Inst object should be created using CoCreateInstance call:
HRESULT fGetInst(CComPtr<IPXC_Inst>& inst)
{
  inst = nullptr;
  HRESULT hr = CoCreateInstance(__uuidof(PXC_Inst), nullptr, CLSCTX_INPROC_SERVER, __uuidof(IPXC_Inst), (void**)&inst);
  return hr;
}


  • If using the PDF-XChange Core SDK without registration as a COM server, the function PXC_GetInstance, exported by the SDK's DLL, should be called to get the IPXC_Inst object:
typedef HRESULT (WINAPI *fnPXC_GetInstance)(IPXC_Inst** ppInst);

HRESULT fGetInst(CComPtr<IPXC_Inst>& inst)
{
  inst = nullptr;
  HMODULE hSDKInst = LoadLibrary(_T("PDFXCoreAPI.x64.dll"));
  if (hSDKInst == nullptr)
    return E_FAIL;
  fnPXC_GetInstance pfn = (fnPXC_GetInstance)GetProcAddress(hSDKInst, "PXC_GetInstance");
  if (pfn == nullptr)
    return E_FAIL;
  HRESULT hr = pfn(&inst);
  return hr;
}

When IPXC_Inst is received, its method Init must be called to initialize the SDK and pass optionally a valid serial key. Use without first making this call with a valid serial key will result in the SDK functioning in 'Evaluation' mode.

PDF-XChange Editor SDK

In the PDF-XChange Editor SDK the IPXC_Inst is initialized by the SDK itself and methods Init and Finalize should not be used. IPXC_Inst object can be retrieved from the PDF-XChange Editor SDK's main object in the following way:

HRESULT fGetInst(IPXV_Inst* pVInst, CComPtr<IPXC_Inst>& inst)
{
  inst = nullptr;
  if (pVInst == nullptr)
    return E_INVALIDARG;
  CComPtr<IUnknown> pExt;
  HRESULT hr = pVInst->GetExtension(L"PXC", &pExt);
  if (FAILED(hr))
    return hr;
  hr = pExt->QueryInterface<IPXC_Inst>(&inst);
  return hr;
}

References