IPXV_FormatConverter Interface
From PDF XChange PDF SDK
m (Automatic page editing by robot) |
|||
Line 1: | Line 1: | ||
[[Category:Editor]] | [[Category:Editor]] | ||
{{#customTitle:IPXV_FormatConverter Interface}} | {{#customTitle:IPXV_FormatConverter Interface}} | ||
− | + | {{ToWrite}} | |
− | + | {{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 | + | {| class="wikitable methods" |
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
| [[PXV:IPXV_FormatConverter_CreateParams|CreateParams]] | | [[PXV:IPXV_FormatConverter_CreateParams|CreateParams]] | ||
− | |||
− | |||
| [[PXV:IPXV_FormatConverter_ShowPrefsDlg|ShowPrefsDlg]] | | [[PXV:IPXV_FormatConverter_ShowPrefsDlg|ShowPrefsDlg]] | ||
− | | | + | | |
+ | | | ||
|} | |} | ||
== Properties == | == Properties == | ||
− | {| | + | {| class="wikitable properties" |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
| [[PXV:IPXV_FormatConverter_Description|Description]] | | [[PXV:IPXV_FormatConverter_Description|Description]] | ||
− | | | + | | [[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]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| [[PXV:IPXV_FormatConverter_Flags|Flags]] | | [[PXV:IPXV_FormatConverter_Flags|Flags]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| [[PXV:IPXV_FormatConverter_MIME|MIME]] | | [[PXV:IPXV_FormatConverter_MIME|MIME]] | ||
− | | | + | | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|} | |} |
Revision as of 02:27, 21 April 2015
XXX => PDF
IAFS_File* pInputFile;
- маючи pInputFile беремо в нього розширення через його Name. якщо нема, то на п.4
- по цьому розширенню шукаємо конвертер. якщо нема то на п.4
- питаємо в конвертера через CheckFormat валідність файла. якщо результат CheckFormatResult_OK, то на п.6
- послідовно викликаємо CheckFormat у зареєстрованих конвертерів для пошуку конветера якщо може опрацювати файл
- якщо жодної форматки не підібрано - вихід з помилкою "Unknown File Format"
- нехай наш конвертер - pConverter; викликаємо в нього
CreateParams(&pParams);
-
pConverter->Prepare(pInputFile, pParams, hWndParent);
викликається в головному потоці -
pConverter->Convert(pInputFile, pParams, pProgress, &pOutFile);
може викликатись в окремому потоці. pOutFile може бути: IStream, IAFS_File, або повністю готовий IPXC_Document; - якщо pOutFile не є IPXC_Document, то вважаємо що в pOutFile нормальний PDF file, який і пробуємо відкрити
PDF => XXX
IPXC_Document* pSource;
- при Save As (Export) будуємо стрічку для фільтра для діалога
- світимо діалог з кнопкою "Settings..." на діалозі
- при натисканні Settings, викликається Callback (який знає про pSource, про вибрану на данний момент форматку):
- в форматки викликається CreateParams(&pParams)
- викликається ShowPrefsDlg(pSource, pParams, SaveDlg.HWND)
- параметри що повернулись зберігаються до переключення форматки і використовуються при наступному натисканні Settings та при конвертації
- отримавши IDOK від діалога, якщо в нас немає ще pParams, то беремо їх в вибраного конвертера через
CreateParams(&pParams)
- викликаємо в головному потоці
pConverter->Prepare(pSource, pParams, DocView.HWND);
-
pConverter->Convert(pSource, pParams, pProgress, NULL);
передаємо останнім параметром NULL оскільки нам непотрібні результуючі файли
Preferences
- використовуючи get_Name, get_Description, etc, показуємо список зареєстрованих конвертерів.
- при виборі конвертера зі списку дивимось його флажки і якщо встановлено
HasPreferences
, то дозволяється "Settings..." кнопка, при натисканні якої викликаємо
ShowPrefsDlg(NULL, NULL, PrefsDlg.HWND);
Methods
CreateParams | ShowPrefsDlg |
Properties
Description | FilterName | Icon | Name |
Extensions | Flags | MIME |