HTML to PDF
In digital workflows, directly printing or archiving rich HTML web pages or large HTML files is often inefficient and ineffective. Foxit PDF SDK provides powerful The API interface is designed to solve this problem and support the efficient and accurate conversion of online web pages or local HTML files to PDF. Documents are widely used in invoices, reports and other scenarios to simplify printing and long-term archiving processes. More importantly, during the conversion process, Foxit PDF SDK can intelligently create and add PDF tags significantly improve the semantics and accessibility of PDF documents.
Core advantages:
- Excellent compatibility: Full support for HTML5, CSS3 and JavaScript, ensuring the accuracy and integrity of the conversion results, and restoring the visual effects and data structure of the original web page to the greatest extent.
- Cross-platform support: Starting from version 7.6, HTML to PDF conversion is supported on the Linux platform to meet cross-platform development needs. Please note that in Linux environment, HTML to The PDF engine depends on
libnss 3.22version. - Flexible data processing: Since version 8.1, it supports outputting HTML2PDF converted files in the form of file streams, making it easier for developers to integrate into various real-time data processing applications.
Getting started:
See the detailed HTML to PDF example configuration and run guide to learn the setup steps and run the sample so you can get up to speed quickly.
Code examples:
The following code demonstrates how to call the relevant APIs to convert HTML to PDF.
Using the 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("@fuxinsoft/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);go
import (
. "foxit.com/fsdk"
)
...
pdf_setting_data := NewHTML2PDFSettingData()
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(E_Rotation0)
pdf_setting_data.SetPage_height(640)
pdf_setting_data.SetPage_width(900)
pdf_setting_data.SetPage_mode(HTML2PDFSettingDataE_PageModeSinglePage)
pdf_setting_data.SetScaling_mode(HTML2PDFSettingDataE_ScalingModeScale)
pdf_setting_data.SetTo_print_background(true)
pdf_setting_data.SetTo_optimize_tag_tree(false)
pdf_setting_data.SetMedia_style(HTML2PDFSettingDataE_MediaStyleScreen)
...
ConvertFromHTML(url_or_html, engine_path, cookies_path, pdf_setting_data, output_path, time_out)Read HTML from a stream and convert it to PDF
The following uses Java as an example:
- Define a
FileReadclass that extendsFileReaderCallbackto read HTML data from a stream or memory, and aFileWriterclass that extendsFileWriterCallbackfor file output. For implementations ofFileReadandFileWriter, see the html2pdf demo in the\examples\simple_demo\html2pdffolder. - Read HTML data from the stream and configure resources related to the source HTML.
- Call
com.foxit.sdk.addon.conversion.Convert.fromHTMLto convert the HTML to a PDF file.
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("@fuxinsoft/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!");go
import (
. "foxit.com/fsdk"
“fmt”
)
pdf_setting_data := NewHTML2PDFSettingData()
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(E_Rotation0)
pdf_setting_data.SetPage_height(640)
pdf_setting_data.SetPage_width(900)
pdf_setting_data.SetPage_mode(HTML2PDFSettingDataE_PageModeSinglePage)
pdf_setting_data.SetScaling_mode(HTML2PDFSettingDataE_ScalingModeScale)
pdf_setting_data := NewHTML2PDFSettingData()
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(NewRectF(18, 18, 18, 18))
pdf_setting_data.SetIs_convert_link(true)
pdf_setting_data.SetRotate_degrees(E_Rotation0)
pdf_setting_data.SetIs_generate_tag(true)
pdf_setting_data.SetPage_mode(HTML2PDFSettingDataE_PageModeSinglePage)
pdf_setting_data.SetScaling_mode(HTML2PDFSettingDataE_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.SetTo_load_active_content(false)
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.SetTo_load_active_content(false)
output_path := output_directory + "html2pdf_filestream_result.pdf"
filewrite := FileWriter{}
filewrite.LoadFile(output_path)
filewrite_ := NewDirectorFileWriterCallback(filewrite)
# "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)
filereader_ := NewDirectorFileReaderCallback(filereader)
# "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)
filereader1_ := NewDirectorFileReaderCallback(filereader1)
# "relativefilepath" is the resource file's relative path. For example: "./aaa.png".
relativefilepath := ""
html2PDFRelatedResourceArray := NewHTML2PDFRelatedResourceArray()
html2PDFRelatedResource := NewHTML2PDFRelatedResource(filereader1_, relativefilepath)
html2PDFRelatedResourceArray.Add(html2PDFRelatedResource)
ConvertFromHTML(filereader_, html2PDFRelatedResourceArray, engine_path, None,pdf_setting_data, filewrite_, 30)
fmt.Printf("Convert HTML to PDF successfully by filestream.")