IPXV_FormatConverter Interface

From Tracker Software PDF SDK
Revision as of 05:24, 23 April 2015 by Dsbot (Talk | contribs) (Automatic page editing by robot)

Jump to: navigation, search


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