Skip to content

Image / text / XML conversion ​

This section covers foxit::addon::conversion::Convert APIs that do not require deploying an additional conversion engine: image → PDF, TXT → PDF, and PDF → XML. Microsoft Office, LibreOffice, WPS, and standalone HTML / DWG engine directories are not required.

Engine-backed Office / HTML / DWG paths are listed in Conversion capabilities overview.

Rendering PDF pages to images, or writing images into PDF with Image / Renderer, is documented under Image conversion (not the Conversion module).

Image → PDF ​

Use Convert::FromImage to convert common bitmap files directly to PDF.

c++
#include "include/addon/conversion/fs_convert.h"
using namespace foxit::addon::conversion;

// Make sure that SDK has already been initialized successfully.
Convert::FromImage(L"input.png", L"output.pdf");
java
import com.foxit.sdk.addon.conversion.Convert;

// Make sure that SDK has already been initialized successfully.
Convert.fromImage("input.png", "output.pdf");
python
from FoxitPDFSDKPython3 import *

# Make sure that SDK has already been initialized successfully.
Convert.FromImage("input.png", "output.pdf")
csharp
using foxit.addon.conversion;

// Make sure that SDK has already been initialized successfully.
Convert.FromImage("input.png", "output.pdf");

Stream overloads via ReaderCallback / WriterCallback are described in the API Reference.

TXT → PDF ​

Use Convert::FromTXT with TXT2PDFSettingData (page size, margins, font, size, color, line spacing, page break on 0x0c, and more).

c++
#include "include/common/fs_common.h"
#include "include/addon/conversion/fs_convert.h"
using namespace foxit;
using namespace foxit::common;
using namespace foxit::addon::conversion;

// Make sure that SDK has already been initialized successfully.
TXT2PDFSettingData setting_data;
setting_data.page_width = 595;
setting_data.page_height = 842;
setting_data.page_margin = RectF(36, 36, 36, 36);
setting_data.font = Font(L"Arial", Font::e_StyleFixedPitch, Font::e_CharsetANSI, 0);
setting_data.text_size = 10;
setting_data.text_color = 0xFF000000;
setting_data.linespace = 2;
setting_data.is_break_page = false;

Convert::FromTXT(L"input.txt", L"output.pdf", setting_data);
java
import com.foxit.sdk.common.Font;
import com.foxit.sdk.common.fxcrt.RectF;
import com.foxit.sdk.addon.conversion.Convert;
import com.foxit.sdk.addon.conversion.TXT2PDFSettingData;

// Make sure that SDK has already been initialized successfully.
TXT2PDFSettingData settingData = new TXT2PDFSettingData();
settingData.setPage_width(595);
settingData.setPage_height(842);
settingData.setPage_margin(new RectF(36, 36, 36, 36));
settingData.setFont(new Font("Arial", Font.e_StyleFixedPitch, Font.e_CharsetANSI, 0));
settingData.setText_size(10);
settingData.setText_color(0xFF000000);
settingData.setLinespace(2);
settingData.setIs_break_page(false);

Convert.fromTXT("input.txt", "output.pdf", settingData);
python
from FoxitPDFSDKPython3 import *

# Make sure that SDK has already been initialized successfully.
setting_data = TXT2PDFSettingData()
setting_data.page_width = 595
setting_data.page_height = 842
setting_data.page_margin = RectF(36, 36, 36, 36)
setting_data.font = Font("Arial", Font.e_StyleFixedPitch, Font.e_CharsetANSI, 0)
setting_data.text_size = 10
setting_data.text_color = 0xFF000000
setting_data.linespace = 2
setting_data.is_break_page = False

Convert.FromTXT("input.txt", "output.pdf", setting_data)
csharp
using foxit.common;
using foxit.addon.conversion;

// Make sure that SDK has already been initialized successfully.
TXT2PDFSettingData settingData = new TXT2PDFSettingData();
settingData.page_width = 595;
settingData.page_height = 842;
settingData.page_margin = new RectF(36, 36, 36, 36);
settingData.font = new Font("Arial", Font.Styles.e_StyleFixedPitch, Font.Charsets.e_CharsetANSI, 0);
settingData.text_size = 10;
settingData.text_color = 0xFF000000;
settingData.linespace = 2;
settingData.is_break_page = false;

Convert.FromTXT("input.txt", "output.pdf", settingData);

PDF → XML ​

Use Convert::ToXML to export structured XML. If the input is not a Tagged PDF, is_force_to_tagged_pdf controls whether the document is tagged first; when false and the document is untagged, conversion fails.

Images written during export can go to a specified folder; when empty, they default to an images folder beside the output XML.

c++
#include "include/addon/conversion/fs_convert.h"
using namespace foxit::addon::conversion;

// Make sure that SDK has already been initialized successfully.
bool ok = Convert::ToXML(
    L"input.pdf",
    L"",                 // password; empty if none
    L"output.xml",
    L"",                 // image folder; empty -> default "images" beside XML
    true);               // force tag when input is not tagged
if (!ok) {
  // Handle conversion failure (e.g. untagged input when force-tag is false).
  return;
}
java
import com.foxit.sdk.addon.conversion.Convert;

// Make sure that SDK has already been initialized successfully.
boolean ok = Convert.toXML(
    "input.pdf",
    "",
    "output.xml",
    "",
    true);
if (!ok) {
  // Handle conversion failure (e.g. untagged input when force-tag is false).
  return;
}
python
from FoxitPDFSDKPython3 import *

# Make sure that SDK has already been initialized successfully.
ok = Convert.ToXML("input.pdf", "", "output.xml", "", True)
if not ok:
    # Handle conversion failure (e.g. untagged input when force-tag is false).
    raise RuntimeError("Convert.ToXML failed")
csharp
using foxit.addon.conversion;

// Make sure that SDK has already been initialized successfully.
bool ok = Convert.ToXML(
    "input.pdf",
    "",
    "output.xml",
    "",
    true);
if (!ok) {
  // Handle conversion failure (e.g. untagged input when force-tag is false).
  return;
}

Note: This is not form data Form::ExportToXML / ImportFromXML. See AcroForm.