IPXV_FormatConverter Interface
From PDF XChange PDF SDK
(Automatic page editing by robot) |
|||
Line 3: | Line 3: | ||
The interface of object of PDF-XChange Editor SDK. | The interface of object of PDF-XChange Editor SDK. | ||
+ | |||
+ | === XXX => PDF === | ||
+ | |||
+ | <pre class="brush:cpp; gutter:false"> | ||
+ | IAFS_File* pInputFile; | ||
+ | </pre> | ||
+ | |||
+ | # маючи pInputFile беремо в нього розширення через його Name. якщо нема, то на п.4 | ||
+ | # по цьому розширенню шукаємо конвертер. якщо нема то на п.4 | ||
+ | # питаємо в конвертера через CheckFormat валідність файла. якщо результат CheckFormatResult_OK, то на п.6 | ||
+ | # послідовно викликаємо CheckFormat у зареєстрованих конвертерів для пошуку конветера якщо може опрацювати файл | ||
+ | # якщо жодної форматки не підібрано - вихід з помилкою "Unknown File Format" | ||
+ | # нехай наш конвертер - pConverter; викликаємо в нього <code>CreateParams(&pParams);</code> | ||
+ | # <code>pConverter->Prepare(pInputFile, pParams, hWndParent);</code> викликається в головному потоці | ||
+ | # <code>pConverter->Convert(pInputFile, pParams, pProgress, &pOutFile);</code> може викликатись в окремому потоці. pOutFile може бути: IStream, IAFS_File, або повністю готовий IPXC_Document; | ||
+ | # якщо pOutFile не є IPXC_Document, то вважаємо що в pOutFile нормальний PDF file, який і пробуємо відкрити | ||
+ | |||
+ | === PDF => XXX === | ||
+ | |||
+ | <pre class="brush:cpp; gutter:false"> | ||
+ | IPXC_Document* pSource; | ||
+ | </pre> | ||
+ | |||
+ | # при Save As (Export) будуємо стрічку для фільтра для діалога | ||
+ | # світимо діалог з кнопкою "Settings..." на діалозі | ||
+ | # при натисканні Settings, викликається Callback (який знає про pSource, про вибрану на данний момент форматку): | ||
+ | ## в форматки викликається CreateParams(&pParams) | ||
+ | ## викликається ShowPrefsDlg(pSource, pParams, SaveDlg.HWND) | ||
+ | ## параметри що повернулись зберігаються до переключення форматки і використовуються при наступному натисканні Settings та при конвертації | ||
+ | # отримавши IDOK від діалога, якщо в нас немає ще pParams, то беремо їх в вибраного конвертера через <code>CreateParams(&pParams)</code> | ||
+ | # викликаємо в головному потоці <code>pConverter->Prepare(pSource, pParams, DocView.HWND);</code> | ||
+ | # <code>pConverter->Convert(pSource, pParams, pProgress, NULL);</code> передаємо останнім параметром NULL оскільки нам непотрібні результуючі файли | ||
+ | |||
+ | === Preferences === | ||
+ | # використовуючи get_Name, get_Description, etc, показуємо список зареєстрованих конвертерів. | ||
+ | # при виборі конвертера зі списку дивимось його флажки і якщо встановлено <code>HasPreferences</code>, то дозволяється "Settings..." кнопка, при натисканні якої викликаємо | ||
+ | |||
+ | <pre class="brush:cpp; gutter:false"> | ||
+ | ShowPrefsDlg(NULL, NULL, PrefsDlg.HWND); | ||
+ | </pre> | ||
== Methods == | == Methods == |
Revision as of 01:47, 21 March 2015
The interface of object of PDF-XChange Editor SDK.
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
Method | Description |
---|---|
CreateParams | ... |
ShowPrefsDlg | ... |
Properties
Property | Access Type | Description |
---|---|---|
Description | R | . |
Extensions | R | . |
FilterName | R | . |
Flags | R | . |
Icon | R | . |
MIME | R | . |
Name | R | . |