PDF para HTML

功能说明

将PDF文档转换为HTML文档


bool ConvertToHtml(const wchar_t* pdf_path, const wchar_t* dest_dir) {
    PDF2Html pdf_to_html;
    auto open_result = pdf_to_html.Open(pdf_path);
    if (open_result == PDF2Html::kOpenSuccess) {
        return pdf_to_html.Save(dest_dir);
}
return false;
}

 

方法:PDF2Html::Open

  • 方法说明:打开PDF文档
  • 调用参数说明:

参数

类型

必须

说明

file_path

const char*或

const wchar_t*

PDF文档路径。

password

const unsigned char*

密码

password_length

size_t

密码长度

返回类型:

类型

说明

/**

* @brief 打开结果

*/

enum OpenResult {

kOpenFailed,

kOpenSuccess,

kOpenNeedPassword = 4,

};

打开是否成功。


PDF2Html pdf_to_html;
unsigned char pwd[100] = {  "123456" };
auto open_result = pdf_to_html.Open(L"F:\\source\\test.pdf", pwd, 6u);
if (open_result != PDF2Html::kOpenSuccess) {
    switch (open_result) {
        case PDF2Html::kOpenFailed:
            std::cerr << "打开文档失败." << std::endl;
            break;
        case PDF2Html::kOpenNeedPassword:
            std::cerr << "文档需要密码." << std::endl;
        default:
            break;
    }
}

 

方法:PDF2Html::AddPageRange

  • 方法说明:添加转换页面范围,默认转换全部页面
  • 调用参数说明:

参数

类型

必须

说明

start

unsigned int

起始页面

end

unsigned int

结束页面

step

unsigned int

步进,默认值是1

返回类型:

类型

说明

Void


PDF2Html pdf_to_html;
auto open_result = pdf_to_html.Open(L"F:\\source\\test.pdf");
if (open_result == PDF2Html::kOpenSuccess) {
    pdf_to_html.AddPageRange(2u,5u);
}

 

方法:PDF2Html::SetRegion

  • 方法说明:设置转换页面矩形区域
  • 调用参数说明:

参数

类型

必须

说明

left

float

矩形区域左上角x轴坐标值

top

float

矩形区域左上角y轴坐标值

right

float

矩形区域右下角x轴坐标值

bottom

float

矩形区域右下角y轴坐标值

返回类型:

类型

说明

Void


PDF2Html pdf_to_html;
auto open_result = pdf_to_html.Open(L"F:\\source\\test.pdf");
if (open_result == PDF2Html::kOpenSuccess) {
    pdf_to_html.SetRegion(100,300,200,200);
}

 

方法:PDF2Html::GetIgnoreImage

  • 方法说明:获取忽略页面中的图片,默认为否

返回类型:

类型

说明

Bool

是否忽略页面中的图片


PDF2Html pdf_to_html;
auto open_result = pdf_to_html.Open(L"F:\\source\\test.pdf");
if (open_result == PDF2Html::kOpenSuccess) {
pdf_to_html.SetIgnoreImage(true);
if (pdf_to_html.GetIgnoreImage()) {
    std::cout << "忽略图片." << std::endl;
}
}

 

方法:PDF2Html::GetImageOfEntirePage

  • 方法说明:获取是否将每一页转换为一张图片,默认为否

返回类型:

类型

说明

bool

是否将每一页转换为一张图片


PDF2Html pdf_to_html;
auto open_result = pdf_to_html.Open(L"F:\\source\\test.pdf");
if (open_result == PDF2Html::kOpenSuccess) {
pdf_to_html.SetImageOfEntirePage(true);
if (pdf_to_html.GetImageOfEntirePage()) {
    std::cout << "整个页面转换为图片." << std::endl;
}
}

 

方法:PDF2Html::GetImageDpi

  • 方法说明:获取文档中图片的DPI

返回类型:

类型

说明

float

DPI值


PDF2Html pdf_to_html;
auto open_result = pdf_to_html.Open(L"F:\\source\\test.pdf");
if (open_result == PDF2Html::kOpenSuccess) {
    std::cout <<“DPI:”<< pdf_to_html.GetImageDpi() << std::endl;
}

 

方法:PDF2Html::SetIgnoreImage

  • 方法说明:设置忽略页面中的图片
  • 调用参数说明:

参数

类型

必须

说明

ignore_image

bool

忽略页面中的图片

返回类型:

类型

说明

Void


PDF2Html pdf_to_html;
auto open_result = pdf_to_html.Open(L"F:\\source\\test.pdf");
if (open_result == PDF2Html::kOpenSuccess) {
pdf_to_html.SetIgnoreImage(true);
}

 

方法:PDF2Html::SetImageOfEntirePage

  • 方法说明:设置是否将每一页转换为一张图片
  • 调用参数说明:

参数

类型

必须

说明

image_of_entire_page

Bool

是否将每一页转换为一张图片

返回类型:

类型

说明

Void


PDF2Html pdf_to_html;
auto open_result = pdf_to_html.Open(L"F:\\source\\test.pdf");
if (open_result == PDF2Html::kOpenSuccess) {
pdf_to_html.SetImageOfEntirePage(true);
}

 

方法:PDF2Html::SetImageDpi

  • 方法说明:设置转换后图片的DPI
  • 调用参数说明:

参数

类型

必须

说明

dpi

float

图片的DPI

返回类型:

类型

说明

Void


PDF2Html pdf_to_html;
auto open_result = pdf_to_html.Open(L"F:\\source\\test.pdf");
if (open_result == PDF2Html::kOpenSuccess) {
pdf_to_html.SetImageDpi(90);
}

 

方法:PDF2Html::GetIgnoreLink

  • 方法说明:获取是否忽略页面中的超链接

返回类型:

类型

说明

bool

是否忽略页面中的超链接


PDF2Html pdf_to_html;
auto open_result = pdf_to_html.Open(L"F:\\source\\test.pdf");
if (open_result == PDF2Html::kOpenSuccess) {
pdf_to_html.SetIgnoreLink(true);
if (pdf_to_html.GetIgnoreLink()) {
    std::cout << "忽略超链接." << std::endl;
}

 

方法:PDF2Html::SetIgnoreLink

  • 方法说明:设置是否忽略页面中的超链接
  • 调用参数说明:

参数

类型

必须

说明

ignore_link

bool

是否忽略页面中的超链接

返回类型:

类型

说明

Void


PDF2Html pdf_to_html;
auto open_result = pdf_to_html.Open(L"F:\\source\\test.pdf");
if (open_result == PDF2Html::kOpenSuccess) {
pdf_to_html.SetIgnoreLink(true);
}

 

方法:PDF2Html::GetZipOutput

  • 方法说明:获取是否压缩输出文档

返回类型:

类型

说明

bool

是否压缩输出文档


PDF2Html pdf_to_html;
auto open_result = pdf_to_html.Open(L"F:\\source\\test.pdf");
if (open_result == PDF2Html::kOpenSuccess) {
pdf_to_html.SetZipOutput(true);
if (pdf_to_html.GetZipOutput()) {
    std::cout << "压缩输出文档." << std::endl;
}
}

 

方法:PDF2Html::SetZipOutput

  • 方法说明:设置是否忽略页面中的超链接
  • 调用参数说明:

参数

类型

必须

说明

zip_output

bool

是否压缩输出文档

返回类型:

类型

说明

Void


PDF2Html pdf_to_html;
auto open_result = pdf_to_html.Open(L"F:\\source\\test.pdf");
if (open_result == PDF2Html::kOpenSuccess) {
pdf_to_html.SetZipOutput(true);
}

 

方法:PDF2Html::Save

  • 方法说明:保存转换的文档
  • 调用参数说明:

参数

类型

必须

说明

dest_path

const char*或

const wchar_t*

目标文件路径

progress

Progress

保存进度通知对象,默认为空

返回类型:

类型

说明

Void


PDF2Html pdf_to_html;
auto open_result = pdf_to_html.Open(L"F:\\source\\test.pdf");
if (open_result == PDF2Html::kOpenSuccess) {
pdf_to_html.SetZipOutput(true);
pdf_to_html.Save(L"F:\\output\\test.zip");
}