HTML 转 PDF 功能指南
在数字化工作流程中,直接打印或存档内容丰富的 HTML 网页或大型 HTML 文件往往效率低下且效果不佳。福昕 PDF SDK 提供了强大的 API 接口,旨在解决这一难题,支持将在线网页或本地 HTML 文件高效、精准地转换为 PDF 文档,广泛应用于发票、报告等场景,从而简化打印和长期存档流程。更重要的是,转换过程中,福昕 PDF SDK 能够基于 HTML 结构智能创建并添加 PDF 标签,显著提升 PDF 文档的语义化和可访问性。
核心优势:
- 卓越的兼容性: 全面支持 HTML5、CSS3 和 JavaScript,确保转换结果的精确度和完整性,最大程度还原原始网页的视觉效果和数据结构。
- 跨平台支持: 自 7.6 版本起,支持在 Linux 平台上进行 HTML 到 PDF 的转换,满足跨平台开发需求。请注意,Linux 环境下,HTML 转 PDF 引擎依赖于
libnss 3.22
版本。 - 灵活的数据处理: 自 8.1 版本起,支持以文件流的形式输出 HTML2PDF 转换后的文件,便于开发者集成到各类实时数据处理应用中。
快速上手:
开发者可通过查阅详细的 HTML 转 PDF 示例配置与运行指南 ,快速了解配置步骤和运行示例,轻松掌握该功能的使用方法。
代码示例:
以下代码演示如何调用相关接口实现 HTML 转 PDF 功能。
使用 Html2PDF API
c++
#include "include/addon/conversion/fs_convert.h"
foxit::addon::conversion::HTML2PDFSettingData pdf_setting_data;
pdf_setting_data.is_convert_link = true;
pdf_setting_data.is_generate_tag = true;
pdf_setting_data.to_generate_bookmarks = true;
pdf_setting_data.rotate_degrees = foxit::common::e_Rotation0;
pdf_setting_data.page_height = 640;
pdf_setting_data.page_width = 900;
pdf_setting_data.page_mode = foxit::addon::conversion::HTML2PDFSettingData::e_PageModeSinglePage;
pdf_setting_data.scaling_mode = foxit::addon::conversion::HTML2PDFSettingData::e_ScalingModeScale;
pdf_setting_data.to_print_background = true;
pdf_setting_data.to_optimize_tag_tree = false;
pdf_setting_data.media_style = foxit::addon::conversion::HTML2PDFSettingData::e_MediaStyleScreen;
...
foxit::addon::conversion::Convert::FromHTML(url_or_html, engine_path, cookies_path, pdf_setting_data, output_path, time_out);
C
#include "include/fs_basictypes_c.h"
#include "include/fs_convert_c.h"
FSHTML2PDFSettingData pdf_setting_data;
pdf_setting_data.is_convert_link = true;
pdf_setting_data.is_generate_tag = true;
pdf_setting_data.to_generate_bookmarks = true;
pdf_setting_data.rotate_degrees = 0;
pdf_setting_data.page_height = 640;
pdf_setting_data.page_width = 900;
pdf_setting_data.page_mode = e_FSPageModeSinglePage;
pdf_setting_data.scaling_mode = e_FSScalingModeScale;
pdf_setting_data.to_print_background = true;
pdf_setting_data.to_optimize_tag_tree = false;
pdf_setting_data.media_style = e_FSMediaStyleScreen;
...
FSDK_Convert_FromHTML(url_or_html, engine_path, cookies_path, pdf_setting_data, output_path, time_out);
java
import com.foxit.sdk.addon.conversion.HTML2PDFSettingData;
com.foxit.sdk.addon.conversion.HTML2PDFSettingData pdf_setting_data = new com.foxit.sdk.addon.conversion.HTML2PDFSettingData();
pdf_setting_data.setIs_convert_link(true);
pdf_setting_data.setIs_generate_tag(true);
pdf_setting_data.setTo_generate_bookmarks(true);
pdf_setting_data.setRotate_degrees(0);
pdf_setting_data.setPage_width(900);
pdf_setting_data.setPage_height(640);
pdf_setting_data.setPage_mode(HTML2PDFSettingData.e_PageModeSinglePage);
pdf_setting_data.setScaling_mode(HTML2PDFSettingData.e_ScalingModeScale);
pdf_setting_data.setTo_print_background(true);
pdf_setting_data.setTo_optimize_tag_tree(false);
pdf_setting_data.setMedia_style(HTML2PDFSettingData.e_MediaStyleScreen);
...
com.foxit.sdk.addon.conversion.Convert.fromHTML(url_or_html, engine_path, cookies_path, pdf_setting_data, output_pdf_path, timeout);
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 *
...
pdf_setting_data = HTML2PDFSettingData()
pdf_setting_data.is_convert_link = True
pdf_setting_data.is_generate_tag = True
pdf_setting_data.to_generate_bookmarks = True
pdf_setting_data.rotate_degrees = e_Rotation0
pdf_setting_data.page_height = 640
pdf_setting_data.page_width = 900
pdf_setting_data.page_mode = HTML2PDFSettingData.e_PageModeSinglePage
pdf_setting_data.scaling_mode = HTML2PDFSettingData.e_ScalingModeScale
pdf_setting_data.to_print_background = True
pdf_setting_data.to_optimize_tag_tree = False
pdf_setting_data.media_style = HTML2PDFSettingData.e_MediaStyleScreen
...
Convert.FromHTML(url_or_html, engine_path, cookies_path, pdf_setting_data, output_path, time_out)
objc
#include "FSPDFObjC.h"
FSHTML2PDFSettingData *pdf_setting_data=[FSHTML2PDFSettingData new];
pdf_setting_data.is_convert_link = true;
pdf_setting_data.is_generate_tag = true;
pdf_setting_data.to_generate_bookmarks = true;
pdf_setting_data.rotate_degrees = 0;
pdf_setting_data.page_height = 640;
pdf_setting_data.page_width = 900;
pdf_setting_data.page_mode = FSHTML2PDFSettingDataPageModeSinglePage;
pdf_setting_data.scaling_mode = FSHTML2PDFSettingDataScalingModeScale;
pdf_setting_data.to_print_background = true;
pdf_setting_data.to_optimize_tag_tree = false;
pdf_setting_data.media_style = FSHTML2PDFSettingDataMediaStyleScreen;
...
[FSConvert fromHTML:url_or_html engine_path:engine_path cookies_path:cookies_path setting_data:pdf_setting_data saved_pdf_path:output_file_path timeout:time_out];
js
const FSDK = require("@foxitsoftware/foxit-pdf-sdk-node");
...
let pdf_setting_data = new FSDK.HTML2PDFSettingData();
pdf_setting_data.is_convert_link = true;
pdf_setting_data.is_generate_tag = true;
pdf_setting_data.to_generate_bookmarks = true;
pdf_setting_data.rotate_degrees = FSDK.e_Rotation0;
pdf_setting_data.page_height = 640;
pdf_setting_data.page_width = 900;
pdf_setting_data.page_mode = FSDK.HTML2PDFSettingData.e_PageModeSinglePage;
pdf_setting_data.scaling_mode = FSDK.HTML2PDFSettingData.e_ScalingModeScale;
pdf_setting_data.to_print_background = true;
pdf_setting_data.to_optimize_tag_tree = false;
pdf_setting_data.media_style = FSDK.HTML2PDFSettingData.e_MediaStyleScreen;
...
FSDK.Convert.FromHTML(url_or_html, engine_path, cookies_path, pdf_setting_data, output_file_path, time_out);
csharp
using foxit;
foxit.addon.conversion.HTML2PDFSettingData pdf_setting_data = new foxit.addon.conversion.HTML2PDFSettingData();
pdf_setting_data.is_convert_link = true;
pdf_setting_data.is_generate_tag = true;
pdf_setting_data.to_generate_bookmarks = true;
pdf_setting_data.rotate_degrees = 0;
pdf_setting_data.page_height = 640;
pdf_setting_data.page_width = 900;
pdf_setting_data.page_mode = foxit.addon.conversion.HTML2PDFSettingData.HTML2PDFPageMode.e_PageModeSinglePage;
pdf_setting_data.scaling_mode = foxit.addon.conversion.HTML2PDFSettingData.HTML2PDFScaleMode.e_ScalingModeScale;
pdf_setting_data.to_print_background = true;
pdf_setting_data.to_optimize_tag_tree = false;
pdf_setting_data.media_style = foxit.addon.conversion.HTML2PDFSettingData.HTML2PDFMediaStyle.e_MediaStyleScreen;
...
foxit.addon.conversion.Convert.FromHTML(url_or_html, engine_path, cookies_path, pdf_setting_data, output_path, time_out);
从 stream 中获取 HTML 数据并将其转换为 PDF 文件
以 Java 开发语言为例进行说明:
- 定义一个继承自 FileReaderCallback 的 FileRead 类,用于从 stream 或内存中获取 html 数据。并定义一个继承自 FileWriterCallback 的 FileWriter 类,用于文件写入。关于 FileRead 和 FileWriter 类的实现,请参考
\examples\simple_demo\html2pdf
文件夹中的 html2pdf demo。 - 从 stream 中获取 html 数据并设置与源 html 相关的资源。
- 调用
com.foxit.sdk.addon.conversion.Convert.fromHTML
函数将其转换为 PDF 文件。
c++
#include "include/common/fs_common.h"
#include "include/pdf/fs_pdfdoc.h"
#include "include/addon/conversion/fs_convert.h"
// get HTML data from stream
if (isfilestreamload) {
try {
foxit::addon::conversion::HTML2PDFSettingData pdf_setting_data;
pdf_setting_data.page_height = 650;
pdf_setting_data.page_width = 950;
pdf_setting_data.is_to_page_scale = false;
pdf_setting_data.page_margin = RectF(18, 18, 18, 18);
pdf_setting_data.is_convert_link = true;
pdf_setting_data.rotate_degrees = foxit::common::e_Rotation0;
pdf_setting_data.is_generate_tag = true;
foxit::addon::conversion::HTML2PDFSettingData::HTML2PDFPageMode mode =
foxit::addon::conversion::HTML2PDFSettingData::e_PageModeSinglePage;
pdf_setting_data.to_generate_bookmarks = true;
foxit::addon::conversion::HTML2PDFSettingData::HTML2PDFScalingMode scale =
foxit::addon::conversion::HTML2PDFSettingData::e_ScalingModeNone;
pdf_setting_data.encoding_format =
foxit::addon::conversion::HTML2PDFSettingData::e_EncodingFormatDefault;
pdf_setting_data.to_render_images = true;
pdf_setting_data.to_remove_underline_for_link = false;
pdf_setting_data.to_set_headerfooter = false;
pdf_setting_data.headerfooter_title = L"";
pdf_setting_data.headerfooter_url = L"";
pdf_setting_data.bookmark_root_name = L"abcde";
pdf_setting_data.to_resize_objects = true;
pdf_setting_data.to_print_background = false;
pdf_setting_data.to_optimize_tag_tree = false;
pdf_setting_data.media_style = foxit::addon::conversion::HTML2PDFSettingData::e_MediaStyleScreen;
pdf_setting_data.to_load_active_content = false;
WString cookies = L"";
WString output_path = output_directory + L"html2pdf_filestream_result.pdf";
FileWriter* filewrite = new FileWriter();
filewrite->LoadFile(String::FromUnicode(output_path));
// "htmlfile" is the path of the html file to be loaded. For example: "C:/aaa.html". The method of "FromHTML" will load this file as a stream.
WString htmlfile = L"";
FileReader* filereader = new FileReader();
filereader->LoadFile(htmlfile);
foxit::addon::conversion::HTML2PDFRelatedResourceArray html2PDFRelatedResourceArray;
foxit::addon::conversion::HTML2PDFRelatedResource html2PDFRelatedResource;
//"htmlfilepng" is the path of the png resource file to be loaded. For example: "C:/aaa.png". set "htmlfilepng" in the related_resource_file of HTML2PDFRelatedResource.
WString htmlfilepng = L"";
FileReader* filereader1 = new FileReader();
filereader1->LoadFile(htmlfilepng);
html2PDFRelatedResource.related_resource_file = filereader1;
//"relativefilepath" is the resource file's relative path. For example: "./aaa.png".
WString relativefilepath = L"";
html2PDFRelatedResource.resource_file_relative_path = relativefilepath;
html2PDFRelatedResourceArray.Add(html2PDFRelatedResource);
foxit::addon::conversion::Convert::FromHTML(filereader, html2PDFRelatedResourceArray, engine_path,
NULL, pdf_setting_data, filewrite, 30);
cout << "Convert HTML to PDF successfully by filestream." << endl;
} catch (const Exception& e) {
cout << e.GetMessage() << endl;
err_ret = 1;
} catch (...) {
cout << "Unknown Exception" << endl;
err_ret = 1;
}
C
# include "include/fs_basictypes_c.h"
# include "include/fs_common_c.h"
# include "include/fs_pdfdoc_c.h"
# include "include/fs_convert_c.h"
....
// Get HTML data from stream
if (isfilestreamload)
{
FSHTML2PDFSettingData pdf_setting_data;
pdf_setting_data.page_height = 650;
pdf_setting_data.page_width = 950;
pdf_setting_data.is_to_page_scale = false;
FSRectF rectf;
rectf.left = 18;
rectf.bottom = 18;
rectf.right = 18;
rectf.top = 18;
pdf_setting_data.page_margin = rectf;
pdf_setting_data.is_convert_link = true;
pdf_setting_data.rotate_degrees = e_FSRotation0;
pdf_setting_data.is_generate_tag = true;
pdf_setting_data.page_mode = e_FSPageModeSinglePage;
pdf_setting_data.to_generate_bookmarks = true;
pdf_setting_data.scaling_mode = e_FSScalingModeNone;
pdf_setting_data.encoding_format = e_FSEncodingFormatDefault;
pdf_setting_data.to_render_images = true;
pdf_setting_data.to_remove_underline_for_link = false;
pdf_setting_data.to_set_headerfooter = false;
pdf_setting_data.headerfooter_title.str = L"";
pdf_setting_data.headerfooter_title.len = 0;
pdf_setting_data.headerfooter_url.str = L"";
pdf_setting_data.bookmark_root_name.str = L"abcde";
pdf_setting_data.bookmark_root_name.len = wcslen(L"abcde");
pdf_setting_data.to_resize_objects = true;
pdf_setting_data.to_print_background = false;
pdf_setting_data.to_optimize_tag_tree = false;
pdf_setting_data.media_style = e_FSMediaStyleScreen;
pdf_setting_data.to_load_active_content = false;
const wchar_t* cookies = L"";
FILE* filepng = NULL;
FILE* file = NULL;
FILE* file_writer = NULL;
wchar_t output_file[MAX_FILE_PATH];
swprintf_s(output_file, MAX_FILE_PATH, L"%lshtml2pdf_filestream_result.pdf", output_directory);
_wfopen_s(&file_writer, output_file, L"w+b");
filewritercallback->user_data = filewritercallback;
filewritercallback->Flush = gFlushWriter;
filewritercallback->GetSize = gGetSizeWriter;
filewritercallback->WriteBlock = gWriteBlockWriter;
filewritercallback->Release = gReleaseWriter;
// "htmlfile" is the path of the html file to be loaded. For example: "C:/aaa.html". The method of "FromHTML" will load this file as a stream.
const wchar_t* htmlfile = L"";
_wfopen_s(&file, htmlfile, L"rb");
filereadercallback->user_data = filereadercallback;
filereadercallback->GetSize = gGetSize;
filereadercallback->ReadBlock = gReadBlock;
filereadercallback->Release = gRelease;
FSHTML2PDFRelatedResource html2PDFRelatedResource[1];
// “htmlfilepng” is the path of the png resource file to be loaded. For example: “C:/aaa.png”. set it in the related_resource_file of HTML2PDFRelatedResource.
const wchar_t* htmlfilepng = L””;
filereadercallbackpng->user_data = filereadercallbackpng;
filereadercallbackpng->GetSize = gGetSizePng;
filereadercallbackpng->ReadBlock = gReadBlockPng;
filereadercallbackpng->Release = gReleasePng;
_wfopen_s(&filepng, htmlfilepng, L”rb”);
html2PDFRelatedResource[0].related_resource_file = (FSReaderCallback*)filereader1;
//"relativefilepath" is the resource file's relative path. For example: "./aaa.png".
const char_t* relativefilepath = "";
size_t convertedChars = 0;
const char_t* curLocale = setlocale(LC_ALL, NULL);
setlocale(LC_ALL, "chs");
const char* source = relativefilepath;
char_num = sizeof(char)* strlen(relativefilepath) + 1;
desthtmlfilepng = malloc(sizeof(wchar_t) * char_num);
mbstowcs_s(&converted_chars, desthtmlfilepng, char_num, source, _TRUNCATE);
html2PDFRelatedResource[0].resource_file_relative_path.str = desthtmlfilepng;
html2PDFRelatedResource[0].resource_file_relative_path.len = wcslen(desthtmlfilepng);
FSErrorCode error_code = FSDK_Convert_FromHTML2(filereader, html2PDFRelatedResource, 1, engine_path, NULL, pdf_setting_data, filewrite, 15);
free(desthtmlfilepng);
java
import com.foxit.sdk.pdf.PDFDoc;
import com.foxit.sdk.addon.conversion.HTML2PDFSettingData;
import com.foxit.sdk.common.fxcrt.FileReaderCallback;
import com.foxit.sdk.common.fxcrt.FileWriterCallback;
import com.foxit.sdk.addon.conversion.HTML2PDFRelatedResourceArray;
import com.foxit.sdk.addon.conversion.HTML2PDFRelatedResource;
com.foxit.sdk.addon.conversion.HTML2PDFSettingData pdf_setting_data=new com.foxit.sdk.addon.conversion.HTML2PDFSettingData();
pdf_setting_data.setPage_height(650);
pdf_setting_data.setPage_width(950);
pdf_setting_data.setIs_to_page_scale(false);
pdf_setting_data.setPage_margin(new RectF(18, 18, 18, 18));
pdf_setting_data.setIs_convert_link(true);
pdf_setting_data.setRotate_degrees(0);
pdf_setting_data.setIs_generate_tag(true);
pdf_setting_data.setPage_mode(HTML2PDFSettingData.e_PageModeSinglePage);
pdf_setting_data.setScaling_mode(HTML2PDFSettingData.e_ScalingModeScale);
pdf_setting_data.setTo_generate_bookmarks(true);
pdf_setting_data.setEncoding_format(0);
pdf_setting_data.setTo_render_images(true);
pdf_setting_data.setTo_remove_underline_for_link(false);
pdf_setting_data.setTo_set_headerfooter(false);
pdf_setting_data.setHeaderfooter_title("");
pdf_setting_data.setHeaderfooter_url("");
pdf_setting_data.setBookmark_root_name("abcde");
pdf_setting_data.setTo_resize_objects(true);
pdf_setting_data.setTo_print_background(false);
pdf_setting_data.setTo_optimize_tag_tree(false);
pdf_setting_data.setMedia_style(0);
pdf_setting_data.getTo_load_active_content();
String output_path = output_directory + "html2pdf_filestream_result.pdf";
FoxitFileWriter filewrite = new FoxitFileWriter();
filewrite.LoadFile(output_path);
// "htmlfile" is the path of the html file to be loaded. For example: "C:/aaa.html". The method of "FromHTML" will load this file as a stream.
String htmlfile = "";
FileRead filereader = new FileRead();
filereader.loadFile(htmlfile,false);
//"htmlfilepng" is the path of the png resource file to be loaded. For example: "C:/aaa.png". set "htmlfilepng" in the related_resource_file of HTML2PDFRelatedResource.
String htmlfilepng ="";
FileRead filereader1 = new FileRead();
filereader1.loadFile(htmlfilepng,false);
//"relativefilepath" is the resource file's relative path. For example: "./aaa.png".
String relativefilepath = "";
com.foxit.sdk.addon.conversion.HTML2PDFRelatedResourceArray html2PDFRelatedResourceArray = new com.foxit.sdk.addon.conversion.HTML2PDFRelatedResourceArray();
com.foxit.sdk.addon.conversion.HTML2PDFRelatedResource html2PDFRelatedResource = new com.foxit.sdk.addon.conversion.HTML2PDFRelatedResource(filereader1,relativefilepath);
html2PDFRelatedResourceArray.add(html2PDFRelatedResource);
com.foxit.sdk.addon.conversion.Convert.fromHTML(filereader, html2PDFRelatedResourceArray, engine_path, null,
pdf_setting_data, filewrite, 30);
System.out.println("Convert HTML to PDF successfully by filestream!");
py
import sys
import site
if sys.version_info.major == 2:
_PYTHON2_ = True
else:
_PYTHON2_ = False
if _PYTHON2_:
site.addsitedir('../../../')
from FoxitPDFSDKPython2 import *
else:
from FoxitPDFSDKPython3 import *
pdf_setting_data = HTML2PDFSettingData()
pdf_setting_data.is_convert_link = True
pdf_setting_data.is_generate_tag = True
pdf_setting_data.to_generate_bookmarks = True
pdf_setting_data.rotate_degrees = e_Rotation0
pdf_setting_data.page_height = 640
pdf_setting_data.page_width = 900
pdf_setting_data.page_mode = HTML2PDFSettingData.e_PageModeSinglePage
pdf_setting_data.scaling_mode = HTML2PDFSettingData.e_ScalingModeScale
pdf_setting_data = HTML2PDFSettingData()
pdf_setting_data.page_height = 650
pdf_setting_data.page_width = 950
pdf_setting_data.is_to_page_scale = False
pdf_setting_data.page_margin = RectF(18, 18, 18, 18)
pdf_setting_data.is_convert_link = True
pdf_setting_data.rotate_degrees = e_Rotation0
pdf_setting_data.is_generate_tag = True
pdf_setting_data.page_mode = HTML2PDFSettingData.e_PageModeSinglePage
pdf_setting_data.scaling_mode = HTML2PDFSettingData.e_ScalingModeScale
pdf_setting_data.to_generate_bookmarks = True
pdf_setting_data.encoding_format = 0
pdf_setting_data.to_render_images = True
pdf_setting_data.to_remove_underline_for_link = False
pdf_setting_data.to_set_headerfooter = False
pdf_setting_data.headerfooter_title = ""
pdf_setting_data.headerfooter_url = ""
pdf_setting_data.bookmark_root_name = "abcde"
pdf_setting_data.to_resize_objects = True
pdf_setting_data.to_print_background = False
pdf_setting_data.to_optimize_tag_tree = False
pdf_setting_data.media_style = 0
pdf_setting_data.to_load_active_content = False
output_path = output_directory + "html2pdf_filestream_result.pdf"
filewrite = FileWriter()
filewrite.LoadFile(output_path)
#"htmlfile" is the path of the html file to be loaded. For example: "C:/aaa.html". The method of "FromHTML" will load this file as a stream.
htmlfile = ""
filereader = FileReader()
filereader.LoadFile(htmlfile, False)
#"htmlfilepng" is the path of the png resource file to be loaded. For example: "C:/aaa.png". set "htmlfilepng" in the related_resource_file of HTML2PDFRelatedResource.
htmlfilepng = ""
filereader1 = FileReader()
filereader1.LoadFile(htmlfilepng, False)
#"relativefilepath" is the resource file's relative path. For example: "./aaa.png".
relativefilepath = "";
html2PDFRelatedResourceArray = HTML2PDFRelatedResourceArray()
html2PDFRelatedResource = HTML2PDFRelatedResource(filereader1, relativefilepath)
html2PDFRelatedResourceArray.Add(html2PDFRelatedResource)
Convert.FromHTML(filereader, html2PDFRelatedResourceArray, engine_path, None,pdf_setting_data, filewrite, 30)
print("Convert HTML to PDF successfully by filestream.")
objc
#include "FSPDFObjC.h"
FSHTML2PDFSettingData *pdf_setting_data=[FSHTML2PDFSettingData new];
pdf_setting_data.page_height = 650;
pdf_setting_data.page_width = 950;
pdf_setting_data.is_to_page_scale = false;
FSRectF* page_margin=[[FSRectF alloc]init];
page_margin.left = 18;
page_margin.bottom = 18;
page_margin.right = 18;
page_margin.top = 18;
pdf_setting_data.page_margin = page_margin;
pdf_setting_data.is_convert_link = true;
pdf_setting_data.rotate_degrees = 0;
pdf_setting_data.is_generate_tag = true;
pdf_setting_data.page_mode = FSHTML2PDFSettingDataPageModeSinglePage;
pdf_setting_data.scaling_mode = FSHTML2PDFSettingDataScalingModeScale;
pdf_setting_data.to_generate_bookmarks = true;
pdf_setting_data.encoding_format = 0;
pdf_setting_data.to_render_images = true;
pdf_setting_data.to_remove_underline_for_link = false;
pdf_setting_data.to_set_headerfooter = false;
pdf_setting_data.headerfooter_title = @"";
pdf_setting_data.headerfooter_url = @"";
pdf_setting_data.bookmark_root_name = @"abcde";
pdf_setting_data.to_resize_objects = true;
pdf_setting_data.to_print_background = false;
pdf_setting_data.to_optimize_tag_tree = false;
pdf_setting_data.media_style = 0;
pdf_setting_data.to_load_active_content = false;
NSString * cookies = @"";
NSString *output_path = [output_directory stringByAppendingString:@"html2pdf_filestream_result.pdf"];
FSFileWriterCallbackImpl *filewriter = [[FSFileWriterCallbackImpl alloc] init];
[filewriter LoadFile:output_path];
// "htmlfile" is the path of the html file to be loaded. For example: "C:/aaa.html". The method of "FromHTML" will load this file as a stream.
NSString *htmlfile = @""; // NSString *htmlfile = @"html2pdf_filestream.html";
FSFileReader *filereader = [[FSFileReader alloc] init];
[filereader LoadFile:htmlfile];
// "htmlfilepng" is the path of the png resource file to be loaded. For example: "C:/aaa.png". set "htmlfilepng" in the related_resource_file of HTML2PDFRelatedResource.
NSString * htmlfilepng = @"";
FSFileReader *filereader1 = [[FSFileReader alloc] init];
[filereader1 LoadFile:htmlfilepng];
// "relativefilepath" is the resource file's relative path. For example: "./aaa.png".
NSString *relativefilepath = @"";
FSHTML2PDFRelatedResourceArray *html2PDFRelatedResourceArray = [[FSHTML2PDFRelatedResourceArray alloc] init];
FSHTML2PDFRelatedResource *html2PDFRelatedResource = [[FSHTML2PDFRelatedResource alloc] init];
html2PDFRelatedResource.related_resource_file = filereader1;
html2PDFRelatedResource.resource_file_relative_path = relativefilepath;
[html2PDFRelatedResourceArray add:html2PDFRelatedResource];
[FSConvert fromHTMLWithReaderCallbackHTML:filereader html2pdf_related_resource_array:html2PDFRelatedResourceArray engine_path:engine_path cookies_reader:nil setting_data:pdf_setting_data saved_pdf_filestream:filewriter timeout:30];
NSLog(@"Convert HTML to PDF successfully by filestream!");
js
const FSDK = require("@foxitsoftware/foxit-pdf-sdk-node");
let pdf_setting_data = new FSDK.HTML2PDFSettingData();
pdf_setting_data.page_height = 650;
pdf_setting_data.page_width = 950;
pdf_setting_data.is_to_page_scale = false;
pdf_setting_data.page_margin = new FSDK.RectF(18, 18, 18, 18);
pdf_setting_data.is_convert_link = true;
pdf_setting_data.rotate_degrees = FSDK.e_Rotation0;
pdf_setting_data.is_generate_tag = true;
let mode = FSDK.HTML2PDFSettingData.e_PageModeSinglePage;
pdf_setting_data.to_generate_bookmarks = true;
let scale = FSDK.HTML2PDFSettingData.e_ScalingModeNone;
pdf_setting_data.encoding_format = FSDK.HTML2PDFSettingData.e_EncodingFormatDefault;
pdf_setting_data.to_render_images = true;
pdf_setting_data.to_remove_underline_for_link = false;
pdf_setting_data.to_set_headerfooter = false;
pdf_setting_data.headerfooter_title = "";
pdf_setting_data.headerfooter_url = "";
pdf_setting_data.bookmark_root_name = "abcde";
pdf_setting_data.to_resize_objects = true;
pdf_setting_data.to_print_background = false;
pdf_setting_data.to_optimize_tag_tree = false;
pdf_setting_data.media_style = FSDK.HTML2PDFSettingData.e_MediaStyleScreen;
pdf_setting_data.to_load_active_content = false;
let output_path = output_directory + "html2pdf_filestream_result.pdf";
filewrite = new FileWriter();
let write_callback = new FSDK.FileWriterCallback(filewrite);
filewrite.LoadFile(output_path);
// "htmlfile" is the path of the html file to be loaded. For example: "C:/aaa.html". The method of "FromHTML" will load this file as a stream.
let htmlfile = "";
filereader = new FileRead();
filereader.LoadFile(htmlfile);
let read_callback = new FSDK.FileReaderCallback(filereader);
let html2PDFRelatedResourceArray = new FSDK.HTML2PDFRelatedResourceArray;
let html2PDFRelatedResource = new FSDK.HTML2PDFRelatedResource;
// "htmlfilepng" is the path of the png resource file to be loaded. For example: "C:/aaa.png". set "htmlfilepng" in the related_resource_file of HTML2PDFRelatedResource.
let htmlfilepng = "";
let filereader1 = new FileRead();
filereader1.LoadFile(htmlfilepng);
let read_callback1 = new FSDK.FileReaderCallback(filereader1);
html2PDFRelatedResource.related_resource_file = read_callback1;
//"relativefilepath" is the resource file's relative path. For example: "./aaa.png".
let relativefilepath = "";
html2PDFRelatedResource.resource_file_relative_path = relativefilepath;
html2PDFRelatedResourceArray.Add(html2PDFRelatedResource);
FSDK.Convert.FromHTML(read_callback, html2PDFRelatedResourceArray, engine_path, null, pdf_setting_data, write_callback, 30);
csharp
using foxit.common;
using foxit.common.fxcrt;
using foxit.pdf;
using System.IO;
foxit.addon.conversion.HTML2PDFSettingData pdf_setting_data = new foxit.addon.conversion.HTML2PDFSettingData();
pdf_setting_data.page_height = 650;
pdf_setting_data.page_width = 950;
pdf_setting_data.is_to_page_scale = false;
pdf_setting_data.page_margin = new RectF(18, 18, 18, 18);
pdf_setting_data.is_convert_link = true;
pdf_setting_data.rotate_degrees = 0;
pdf_setting_data.is_generate_tag = true;
pdf_setting_data.page_mode = foxit.addon.conversion.HTML2PDFSettingData.HTML2PDFPageMode.e_PageModeSinglePage;
pdf_setting_data.scaling_mode = foxit.addon.conversion.HTML2PDFSettingData.HTML2PDFScalingMode.e_ScalingModeScale;
pdf_setting_data.to_generate_bookmarks = true;
pdf_setting_data.encoding_format = 0;
pdf_setting_data.to_render_images = true;
pdf_setting_data.to_remove_underline_for_link = false;
pdf_setting_data.to_set_headerfooter = false;
pdf_setting_data.headerfooter_title = "";
pdf_setting_data.headerfooter_url = "";
pdf_setting_data.bookmark_root_name = "abcde";
pdf_setting_data.to_resize_objects = true;
pdf_setting_data.to_print_background = false;
pdf_setting_data.to_optimize_tag_tree = false;
pdf_setting_data.media_style = 0;
pdf_setting_data.to_load_active_content = false;
String output_path = output_directory + "html2pdf_filestream_result.pdf";
FileWriter filewrite = new FileWriter();
filewrite.LoadFile(output_path);
// "htmlfile" is the path of the html file to be loaded. For example: "C:/aaa.html". The method of "FromHTML" will load this file as a stream.
String htmlfile = "";
FileRead filereader = new FileRead();
filereader.loadFile(htmlfile, false);
// "htmlfilepng" is the path of the png resource file to be loaded. For example: "C:/aaa.png". set "htmlfilepng" in the related_resource_file of HTML2PDFRelatedResource.
String htmlfilepng = "";
FileRead filereader1 = new FileRead();
filereader1.loadFile(htmlfilepng, false);
//"relativefilepath" is the resource file's relative path. For example: "./aaa.png".
String relativefilepath = "";
foxit.addon.conversion.HTML2PDFRelatedResourceArray html2PDFRelatedResourceArray = new foxit.addon.conversion.HTML2PDFRelatedResourceArray();
foxit.addon.conversion.HTML2PDFRelatedResource html2PDFRelatedResource = new foxit.addon.conversion.HTML2PDFRelatedResource(filereader1, relativefilepath);
html2PDFRelatedResourceArray.Add(html2PDFRelatedResource);
foxit.addon.conversion.Convert.FromHTML(filereader, html2PDFRelatedResourceArray, engine_path, null,
pdf_setting_data, filewrite, 30);
Console.WriteLine("Convert HTML to PDF successfully by filestream!");