Skip to content

Foxit Conversion SDK v3.1.0

Release date: March 31, 2026

Breaking changes

PDF2WordSettingData — parameter and default changes

The parameterized constructor and Set() add a required parameter max_blank_paragraphs_per_page_bottom:

cpp
// v3.0 (4 parameters)
PDF2WordSettingData(bool enable_retain_page_layout,
    bool enable_generate_headers_and_footers,
    bool enable_generate_footnotes_and_endnotes,
    bool enable_generate_page_rendered_break);

// v3.1 (5 parameters)
PDF2WordSettingData(bool enable_retain_page_layout,
    bool enable_generate_headers_and_footers,
    bool enable_generate_footnotes_and_endnotes,
    bool enable_generate_page_rendered_break,
    int max_blank_paragraphs_per_page_bottom);  // new

Action required: Add the new parameter when using the parameterized constructor or Set(). Pass -1 for no limit (same as before). The default constructor plus field assignment is unchanged.

Default changeenable_generate_headers_and_footers changes from false to true. Code using the default constructor will generate headers and footers by default. Set enable_generate_headers_and_footers = false explicitly to keep v3.0 behavior.

PDF2PowerPointSettingData — parameter change

The parameterized constructor and Set() add a required parameter enable_adapt_to_largest_page:

cpp
// v3.0 (1 parameter)
PDF2PowerPointSettingData(bool enable_aggressively_split_sections);

// v3.1 (2 parameters)
PDF2PowerPointSettingData(bool enable_aggressively_split_sections,
    bool enable_adapt_to_largest_page);  // new

Action required: Add the new parameter; pass false to keep v3.0 behavior.

PDF2ExcelSettingData — parameter change

The parameterized constructor and Set() add 2 required parameters:

cpp
// v3.0 (3 parameters)
PDF2ExcelSettingData(String decimal_symbol, String thousands_separator,
    WorkbookSettings workbook_settings);

// v3.1 (5 parameters)
PDF2ExcelSettingData(String decimal_symbol, String thousands_separator,
    WorkbookSettings workbook_settings,
    bool enable_aggressive_table_repair,  // new
    bool include_watermarks);             // new

Action required: Add the two new parameters; pass true, false to keep v3.0 behavior.

PDF2OfficeSettingData — parameter change

The parameterized constructor and Set() add a required parameter enable_matching_system_fonts:

cpp
// v3.0 (9 parameters)
PDF2OfficeSettingData(const wchar_t* metrics_data_folder_path,
    bool enable_ml_recognition, const Range& page_range,
    bool include_pdf_comments,
    const PDF2WordSettingData& word_setting_data,
    const PDF2PowerPointSettingData& power_point_setting_data,
    const PDF2ExcelSettingData& excel_setting_data,
    bool enable_trailing_space, bool include_images);

// v3.1 (10 parameters)
PDF2OfficeSettingData(/* same 9 parameters as above */,
    bool enable_matching_system_fonts);  // new

Action required: Add the new parameter; pass false to keep v3.0 behavior.

PDF to Word default behavior change

PDF to Word now preserves in-document jump links by default. If downstream workflows expect Word output without links, verify results after upgrading.

New features and enhancements

PDF to Office

  • New enable_matching_system_fonts on PDF2OfficeSettingData for precise system font matching in PDF to Word
  • New enable_adapt_to_largest_page on PDF2PowerPointSettingData to scale smaller pages in mixed-size PDFs to the largest slide size
  • New enable_aggressive_table_repair and include_watermarks on PDF2ExcelSettingData for stronger table repair and watermark retention in Excel output
  • PDF to Word: preserve in-document jump links (TOC, cross-references) by default
  • PDF to Word: better performance and lower memory use on complex documents
  • PDF to Word: improved heading recognition and Word heading style mapping
  • PDF to Word: improved paragraph recognition, page breaks, and cross-page table continuity

Office to PDF

  • Linux support for Office2PDFSettingData::is_embed_font
  • Office2PDF::ConvertFromWord supports DOC (Word 97–2003)
  • New e_ErrNotMatchFont error code when fonts are missing in Office to PDF

Platform

  • Linux ARM64 .NET Core support
  • Chinese developer API documentation

Bug fixes

PDF to Word

  • Fixed crash converting certain PDFs to Word on Linux .NET
  • Fixed cases with no output file and no clear error for certain documents
  • Fixed exception (0x77574080 ntdll.dll) in some MFC projects in Debug x86 PDF to Word
  • [Linux] Fixed SimSun rendered as bold/heiti incorrectly in Word output
  • Improved font selection to avoid Segoe UI Light for better WPS Office compatibility
  • Fixed lost font styles (e.g. bold) in Word output
  • Fixed incorrect font sizes causing layout issues
  • Fixed extra spaces between characters within paragraphs
  • Fixed overlapping characters in headings
  • Improved layout stability for translation backfill when longer text breaks later pages
  • Fixed crop marks at page corners affecting third-party translation tools
  • Fixed TOC alignment issues in Word output
  • Fixed layout misalignment in certain files
  • Fixed headers/footers converted as body text instead of Word header/footer regions
  • Fixed extra line breaks at line ends breaking layout during translation backfill
  • Fixed content loss for Arabic PDF to Word
  • Improved quality on large documents: fewer layout issues, smaller output, fewer extra pages
  • Improved rendering consistency between Microsoft Office and WPS Office
  • Fixed faded text, bad tables, content loss, and overlapping text in certain files
  • Fixed missing or broken TOC and unrecognized headings
  • Fixed enable_generate_headers_and_footers = true not taking effect in PDF2WordSettingData

PDF to Excel

  • Fixed cell text placed in drawing shapes instead of editable cells
  • Fixed very long conversion with incorrect table structure and image-only cells
  • Fixed content loss when converting built-in test documents to Excel

Word to PDF

  • Fixed crash in Office2PDF::ConvertFromWord for certain DOCX files
  • Fixed memory spike to 4 GB and hang on certain Word files
  • Fixed missing content in certain table regions
  • Improved character spacing and paragraph layout on Windows
  • Fixed is_embed_font = true not taking effect in Office2PDFSettingData on Windows
  • [Linux] Fixed blank Word to PDF output on Red Hat without Calibri
  • Fixed incorrect line breaks vs. original Word due to character spacing
  • Fixed overly bold text in output PDF
  • Fixed missing last sentence in output PDF for certain documents
  • Fixed shape rendering and text wrapping issues