IPXV_FormatConverter Interface

From PDF XChange PDF SDK
Jump to: navigation, search
m (Automatic page editing by robot)
Line 1: Line 1:
 
[[Category:Editor]]
 
[[Category:Editor]]
 
{{#customTitle:IPXV_FormatConverter Interface}}
 
{{#customTitle:IPXV_FormatConverter Interface}}
 
+
{{ToWrite}}
The interface of object of PDF-XChange Editor SDK.
+
{{ToReview}}
  
 
=== XXX => PDF ===
 
=== XXX => PDF ===
Line 43: Line 43:
 
ShowPrefsDlg(NULL, NULL, PrefsDlg.HWND);
 
ShowPrefsDlg(NULL, NULL, PrefsDlg.HWND);
 
</pre>
 
</pre>
 +
  
 
== Methods ==
 
== Methods ==
{| class="wikitable sortable collapsible" style="width: 100%"
+
{| class="wikitable methods"
|-
+
! style="text-align: left" scope="col" width="15%" | Method
+
! style="text-align: left" scope="col" class="unsortable" | Description
+
 
|-
 
|-
 
| [[PXV:IPXV_FormatConverter_CreateParams|CreateParams]]
 
| [[PXV:IPXV_FormatConverter_CreateParams|CreateParams]]
| ...
 
|-
 
 
| [[PXV:IPXV_FormatConverter_ShowPrefsDlg|ShowPrefsDlg]]
 
| [[PXV:IPXV_FormatConverter_ShowPrefsDlg|ShowPrefsDlg]]
| ...
+
|  
 +
|
 
|}
 
|}
  
 
== Properties ==
 
== Properties ==
{| style="width: 100%" class="wikitable sortable collapsible"
+
{| class="wikitable properties"
|-
+
! style="text-align: left" scope="col" width="15%" | Property
+
! style="text-align: center" scope="col" width="5%" | Access Type
+
! style="text-align: left" scope="col"  class="unsortable" | Description
+
 
|-
 
|-
 
| [[PXV:IPXV_FormatConverter_Description|Description]]
 
| [[PXV:IPXV_FormatConverter_Description|Description]]
| style="text-align: center" | R
+
| [[PXV:IPXV_FormatConverter_FilterName|FilterName]]
| .
+
| [[PXV:IPXV_FormatConverter_Icon|Icon]]
 +
| [[PXV:IPXV_FormatConverter_Name|Name]]
 
|-
 
|-
 
| [[PXV:IPXV_FormatConverter_Extensions|Extensions]]
 
| [[PXV:IPXV_FormatConverter_Extensions|Extensions]]
| style="text-align: center" | R
 
| .
 
|-
 
| [[PXV:IPXV_FormatConverter_FilterName|FilterName]]
 
| style="text-align: center" | R
 
| .
 
|-
 
 
| [[PXV:IPXV_FormatConverter_Flags|Flags]]
 
| [[PXV:IPXV_FormatConverter_Flags|Flags]]
| style="text-align: center" | R
 
| .
 
|-
 
| [[PXV:IPXV_FormatConverter_Icon|Icon]]
 
| style="text-align: center" | R
 
| .
 
|-
 
 
| [[PXV:IPXV_FormatConverter_MIME|MIME]]
 
| [[PXV:IPXV_FormatConverter_MIME|MIME]]
| style="text-align: center" | R
+
|  
| .
+
|-
+
| [[PXV:IPXV_FormatConverter_Name|Name]]
+
| style="text-align: center" | R
+
| .
+
 
|}
 
|}

Revision as of 02:27, 21 April 2015


XXX => PDF

IAFS_File* pInputFile;
  1. маючи pInputFile беремо в нього розширення через його Name. якщо нема, то на п.4
  2. по цьому розширенню шукаємо конвертер. якщо нема то на п.4
  3. питаємо в конвертера через CheckFormat валідність файла. якщо результат CheckFormatResult_OK, то на п.6
  4. послідовно викликаємо CheckFormat у зареєстрованих конвертерів для пошуку конветера якщо може опрацювати файл
  5. якщо жодної форматки не підібрано - вихід з помилкою "Unknown File Format"
  6. нехай наш конвертер - pConverter; викликаємо в нього CreateParams(&pParams);
  7. pConverter->Prepare(pInputFile, pParams, hWndParent); викликається в головному потоці
  8. pConverter->Convert(pInputFile, pParams, pProgress, &pOutFile); може викликатись в окремому потоці. pOutFile може бути: IStream, IAFS_File, або повністю готовий IPXC_Document;
  9. якщо pOutFile не є IPXC_Document, то вважаємо що в pOutFile нормальний PDF file, який і пробуємо відкрити

PDF => XXX

IPXC_Document* pSource;
  1. при Save As (Export) будуємо стрічку для фільтра для діалога
  2. світимо діалог з кнопкою "Settings..." на діалозі
  3. при натисканні Settings, викликається Callback (який знає про pSource, про вибрану на данний момент форматку):
    1. в форматки викликається CreateParams(&pParams)
    2. викликається ShowPrefsDlg(pSource, pParams, SaveDlg.HWND)
    3. параметри що повернулись зберігаються до переключення форматки і використовуються при наступному натисканні Settings та при конвертації
  4. отримавши IDOK від діалога, якщо в нас немає ще pParams, то беремо їх в вибраного конвертера через CreateParams(&pParams)
  5. викликаємо в головному потоці pConverter->Prepare(pSource, pParams, DocView.HWND);
  6. pConverter->Convert(pSource, pParams, pProgress, NULL); передаємо останнім параметром NULL оскільки нам непотрібні результуючі файли

Preferences

  1. використовуючи get_Name, get_Description, etc, показуємо список зареєстрованих конвертерів.
  2. при виборі конвертера зі списку дивимось його флажки і якщо встановлено HasPreferences, то дозволяється "Settings..." кнопка, при натисканні якої викликаємо
ShowPrefsDlg(NULL, NULL, PrefsDlg.HWND);


Methods

CreateParams ShowPrefsDlg

Properties

Description FilterName Icon Name
Extensions Flags MIME