Office 转 PDF (第三方转换引擎)
福昕 PDF SDK 提供强大的 Office 转 PDF 功能,支持将 Office 文档(Word、Excel 和 PowerPoint)转换为高质量 PDF 文件。本节将详细介绍如何使用第三方引擎实现此功能。
功能演进
Windows 平台转换功能支持:
- v7.3 版本起,提供 Word 和 Excel 文件的 PDF 转换支持。
- v7.4 版本起,扩展提供 PowerPoint 文件的 PDF 转换支持。
Linux 平台转换功能支持:
- v8.4 版本起,提供 Word、Excel 和 PowerPoint 文件的 PDF 转换支持。
使用前须知
在使用此功能之前,请先查阅 Office 转 PDF 示例配置与运行指南,获取详细信息,包括系统要求、运行环境配置、转换引擎参数配置、示例运行等,快速准确掌握该功能的使用方法。
以下是示例代码,演示了如何使用福昕 PDF SDK 的 Office2PDF 模块,通过调用第三方引擎,将不同类型的 Office 文档转换为 PDF 文件。
LibreOffice 转 PDF 多线程实现(Linux x86/x64)
在 Linux x86/x64 架构下,福昕 PDF SDK 提供专用的 LibreOffice 二进制程序,支持多线程转换 Office 文档至 PDF。
实现方式:
只需将对应架构的专用二进制引擎路径赋值给 engine_path
参数,即可启用多线程转换。
代码示例:
c++
WString engine_path = L"/resource-folder/x64/fxoffice2pdf"; // 请替换为正确的引擎路径。
foxit::addon::conversion::Convert::FromWord(word_file_path, L"", output_path, engine_path, word_convert_setting_data);
详细信息:
请参阅以下信息,获取更多关于 LibreOffice 转 PDF 资源包获取和示例运行的详细信息:
将 Word 文档转换为 PDF 文档
c++
#include "include/addon/conversion/fs_convert.h"
…
// Make sure that SDK has already been initialized successfully.
WString word_file_path = L"test.doc";
WString output_path = L"saved.pdf";
// Use default Word2PDFSettingData values.
foxit::addon::conversion::Word2PDFSettingData word_convert_setting_data;
#if defined(_WIN32) || defined(_WIN64)
foxit::addon::conversion::Convert::FromWord(word_file_path, L"", output_path, word_convert_setting_data);
#else
foxit::addon::conversion::Convert::FromWord(word_file_path, L"", output_path, engine_path, word_convert_setting_data);
#endif
C
#include "include/fs_basictypes_c.h"
#include "include/fs_convert_c.h"
…
// Make sure that SDK has already been initialized successfully.
const wchar_t* word_file_path = L"test.doc";
const wchar_t* output_path = L"saved.pdf";
// Use default Word2PDFSettingData values.
FSWord2PDFSettingData word_convert_setting_data;
word_convert_setting_data.include_doc_props = false;
word_convert_setting_data.optimize_option = e_FSConvertOptimizeOptionForPrint;
word_convert_setting_data.content_option = e_FSConvertContentOptionOnlyContent;
word_convert_setting_data.bookmark_option = e_FSConvertBookmarkOptionNone;
word_convert_setting_data.convert_to_pdfa = false;
FSDK_Convert_FromWord(word_file_path, L"", output_path, word_convert_setting_data);
java
// Windows
import com.foxit.sdk.addon.conversion.Word2PDFSettingData;
import com.foxit.sdk.addon.conversion.Convert;
// Make sure that SDK has already been initialized successfully.
String word_file_path = "test.doc";
String saved_pdf_path = "saved.pdf";
// Use default Word2PDFSettingData values.
Word2PDFSettingData word_convert_setting_data = new Word2PDFSettingData();
Convert.fromWord(word_file_path, "", saved_pdf_path, word_convert_setting_data);
// Linux (x86 and x64)
import com.foxit.sdk.addon.conversion.Word2PDFSettingData;
import com.foxit.sdk.addon.conversion.Convert;
// Make sure that SDK has already been initialized successfully.
String word_file_path = "test.doc";
String saved_pdf_path = "saved.pdf";
// Use default Word2PDFSettingData values.
Word2PDFSettingData word_convert_setting_data = new Word2PDFSettingData();
Convert.fromWord(word_file_path, "", saved_pdf_path, engine_path, word_convert_setting_data);
py
import sys
import site
if sys.version_info.major == 2:
_PYTHON2_ = True
else:
_PYTHON2_ = False
if _PYTHON2_:
# replace with the python2 lib path
site.addsitedir(‘../../../’)
from FoxitPDFSDKPython2 import *
else:
from FoxitPDFSDKPython3 import *
...
# Make sure that SDK has already been initialized successfully.
word_file_path = "test.doc"
output_path = "saved.pdf"
# Use default Word2PDFSettingData values.
word_convert_setting_data = Word2PDFSettingData()
if sys.platform == "linux":
Convert.FromWord(word_file_path, "", output_path, engine_path, word_convert_setting_data)
else:
Convert.FromWord(word_file_path, "", output_path, word_convert_setting_data)
js
const FSDK = require("@foxitsoftware/foxit-pdf-sdk-node");
...
// Make sure that SDK has already been initialized successfully.
let word_file_path = "test.doc";
let output_path = "saved.pdf";
// Use default Word2PDFSettingData values.
let word_convert_setting_data = new FSDK.Word2PDFSettingData();
if (process.platform === 'win32') {
FSDK.Convert.FromWord(word_file_path, "", output_path, word_convert_setting_data);
} else {
engine_path = ""; // Please fill in the correct engine path. For example, "/usr/lib/libreoffice/program".
FSDK.Convert.FromWord(word_file_path, "", output_path, engine_path, word_convert_setting_data);
}
csharp
using foxit;
…
// Make sure that SDK has already been initialized successfully.
string word_file_path = "test.doc";
string saved_pdf_path = "saved.pdf";
// Use default Word2PDFSettingData values.
using (foxit.addon.conversion.Word2PDFSettingData word_convert_setting_data = new foxit.addon.conversion.Word2PDFSettingData())
{
foxit.addon.conversion.Convert.FromWord(word_file_path, "", saved_pdf_path, word_convert_setting_data);
}
将 Excel 文件转换为 PDF 文档
c++
#include "include/addon/conversion/fs_convert.h"
…
// Make sure that SDK has already been initialized successfully.
WString excel_file_path = L"test.xls";
WString output_path = L"saved.pdf";
// Use default Excel2PDFSettingData values.
foxit::addon::conversion::Excel2PDFSettingData excel_convert_setting_data;
#if defined(_WIN32) || defined(_WIN64)
foxit::addon::conversion::Convert::FromExcel(excel_file_path, L"", output_path, excel_convert_setting_data);
#else
foxit::addon::conversion::Convert::FromExcel(excel_file_path, L"", output_path, engine_path, excel_convert_setting_data);
#endif
C
#include "include/fs_basictypes_c.h"
#include "include/fs_convert_c.h"
…
// Make sure that SDK has already been initialized successfully.
const wchar_t* excel_file_path = L"test.xls";
const wchar_t* output_path = L"saved.pdf";
// Use default Excel2PDFSettingData values.
FSExcel2PDFSettingData excel_convert_setting_data;
excel_convert_setting_data.include_doc_props = false;
excel_convert_setting_data.quality = e_FSConvertQualityStandard;
excel_convert_setting_data.ignore_print_area = true;
excel_convert_setting_data.scale_type = e_FSScaleTypeNone;
excel_convert_setting_data.convert_to_pdfa = false;
FSDK_Convert_FromExcel(excel_file_path, L"", output_path, excel_convert_setting_data);
java
// Windows
import com.foxit.sdk.addon.conversion.Word2PDFSettingData;
import com.foxit.sdk.addon.conversion.Convert;
// Make sure that SDK has already been initialized successfully.
String excel_file_path = "test.xls";
String saved_pdf_path = "saved.pdf";
// Use default Excel2PDFSettingData values.
Excel2PDFSettingData excel_convert_setting_data = new Excel2PDFSettingData();
Convert.fromExcel(excel_file_path, "", saved_pdf_path, excel_convert_setting_data);
// Linux (x86 and x64)
import com.foxit.sdk.addon.conversion.Word2PDFSettingData;
import com.foxit.sdk.addon.conversion.Convert;
// Make sure that SDK has already been initialized successfully.
String excel_file_path = "test.xls";
String saved_pdf_path = "saved.pdf";
// Use default Excel2PDFSettingData values.
Excel2PDFSettingData excel_convert_setting_data = new Excel2PDFSettingData();
Convert.fromExcel(excel_file_path, "", saved_pdf_path, engine_path, excel_convert_setting_data);
py
import sys
import site
if sys.version_info.major == 2:
_PYTHON2_ = True
else:
_PYTHON2_ = False
if _PYTHON2_:
# replace with the python2 lib path
site.addsitedir(‘../../../’)
from FoxitPDFSDKPython2 import *
else:
from FoxitPDFSDKPython3 import *
...
# Make sure that SDK has already been initialized successfully.
excel_file_path = "test.xls"
output_path = "saved.pdf"
# Use default Excel2PDFSettingData values.
excel_convert_setting_data = Excel2PDFSettingData()
if sys.platform == "linux":
Convert.FromExcel(excel_file_path, "", output_path, engine_path, excel_convert_setting_data)
else:
Convert.FromExcel(excel_file_path, "", output_path, excel_convert_setting_data)
js
const FSDK = require("@foxitsoftware/foxit-pdf-sdk-node");
...
// Make sure that SDK has already been initialized successfully.
let excel_file_path = "test.xlsx";
let output_path = "saved.pdf";
// Use default Excel2PDFSettingData values.
let excel_convert_setting_data = new FSDK.Excel2PDFSettingData();
if (process.platform === 'win32') {
FSDK.Convert.FromExcel(excel_file_path, "", output_path, excel_convert_setting_data);
} else {
FSDK.Convert.FromExcel(excel_file_path, "", output_path, engine_path, excel_convert_setting_data);
}
csharp
using foxit;
…
// Make sure that SDK has already been initialized successfully.
string excel_file_path= "test.xls";
string saved_pdf_path = "saved.pdf";
// Use default Excel2PDFSettingData values.
using (foxit.addon.conversion.Excel2PDFSettingData excel_convert_setting_data = new foxit.addon.conversion.Excel2PDFSettingData())
{
foxit.addon.conversion.Convert.FromExcel(excel_file_path, "", saved_pdf_path, excel_convert_setting_data);
}
将 PowerPoint 文件转换为 PDF 文档
c++
#include "include/addon/conversion/fs_convert.h"
// Make sure that SDK has already been initialized successfully.
WString ppt_file_path = L"test.ppt";
WString output_path = L"saved.pdf";
// Use default PowerPoint2PDFSettingData values.
foxit::addon::conversion::PowerPoint2PDFSettingData ppt_convert_setting_data;
#if defined(_WIN32) || defined(_WIN64)
foxit::addon::conversion::Convert::FromPowerPoint(ppt_file_path, L"", output_path, ppt_convert_setting_data);
#else
foxit::addon::conversion::Convert::FromPowerPoint(ppt_file_path, L"", output_path, engine_path, ppt_convert_setting_data);
#endif
C
#include "include/fs_basictypes_c.h"
#include "include/fs_convert_c.h"
…
// Make sure that SDK has already been initialized successfully.
const wchar_t* ppt_file_path = L"test.ppt";
const wchar_t* output_path = L"saved.pdf";
// Use default PowerPoint2PDFSettingData values.
FSPowerPoint2PDFSettingData ppt_convert_setting_data;
ppt_convert_setting_data.intent = e_FSConvertIntentPrint;
ppt_convert_setting_data.frame_output_slides = false;
ppt_convert_setting_data.output_type = e_FSOutputSlides;
ppt_convert_setting_data.handout_order = e_FSHandoutOrderVerticalFirst;
ppt_convert_setting_data.output_hidden_slides = false;
ppt_convert_setting_data.include_doc_props = false;
FSDK_Convert_FromPowerPoint(ppt_file_path, L"", output_path, ppt_convert_setting_data);
java
// Windows
import com.foxit.sdk.addon.conversion.PowerPoint2PDFSettingData;
import com.foxit.sdk.addon.conversion.Convert;
// Make sure that SDK has already been initialized successfully.
String ppt_file_path = "test.ppt";
String saved_pdf_path = "saved.pdf";
// Use default PowerPoint2PDFSettingData values.
PowerPoint2PDFSettingData ppt_convert_setting_data = new PowerPoint2PDFSettingData();
Convert.fromPowerPoint(ppt_file_path, "", saved_pdf_path, ppt_convert_setting_data);
// Linux (x86 and x64)
import com.foxit.sdk.addon.conversion.PowerPoint2PDFSettingData;
import com.foxit.sdk.addon.conversion.Convert;
// Make sure that SDK has already been initialized successfully.
String ppt_file_path = "test.ppt";
String saved_pdf_path = "saved.pdf";
// Use default PowerPoint2PDFSettingData values.
PowerPoint2PDFSettingData ppt_convert_setting_data = new PowerPoint2PDFSettingData();
Convert.fromPowerPoint(ppt_file_path, "", saved_pdf_path, engine_path, ppt_convert_setting_data);
py
import sys
import site
if sys.version_info.major == 2:
_PYTHON2_ = True
else:
_PYTHON2_ = False
if _PYTHON2_:
# replace with the python2 lib path
site.addsitedir(‘../../../’)
from FoxitPDFSDKPython2 import *
else:
from FoxitPDFSDKPython3 import *
...
# Make sure that SDK has already been initialized successfully.
ppt_file_path = "test.ppt"
output_path = "saved.pdf"
# Use default PowerPoint2PDFSettingData values.
ppt_convert_setting_data = PowerPoint2PDFSettingData()
if sys.platform == "linux":
Convert.FromPowerPoint(ppt_file_path, "", output_path, engine_path, ppt_convert_setting_data)
else:
Convert.FromPowerPoint(ppt_file_path, "", output_path, ppt_convert_setting_data)
js
const FSDK = require("@foxitsoftware/foxit-pdf-sdk-node");
...
// Make sure that SDK has already been initialized successfully.
let ppt_file_path = "test.pptx";
let output_path = "saved.pdf";
// Use default PowerPoint2PDFSettingData values.
let ppt_convert_setting_data = new FSDK.PowerPoint2PDFSettingData();
if (process.platform === 'win32') {
FSDK.Convert.FromPowerPoint(ppt_file_path, "", output_path, ppt_convert_setting_data);
} else {
FSDK.Convert.FromPowerPoint(ppt_file_path, "", output_path, engine_path, ppt_convert_setting_data);
}
csharp
using foxit;
…
// Make sure that SDK has already been initialized successfully.
string ppt_file_path = "test.ppt";
string saved_pdf_path = "saved.pdf";
// Use default PowerPoint2PDFSettingData values.
using (foxit.addon.conversion.PowerPoint2PDFSettingData ppt_convert_setting_data = new foxit.addon.conversion.PowerPoint2PDFSettingData())
{
foxit.addon.conversion.Convert.FromPowerPoint(ppt_file_path, "", saved_pdf_path, ppt_convert_setting_data);
}