以下代码创建一个包含两个单词的PDF文件并将其保存:

#include "hpdf.h"
#include <iostream>

void error_handler (HPDF_STATUS error_no, HPDF_STATUS detail_no, void *user_data) {
    std::cerr << "error! " << error_no << " " << detail_no << '\n';
    throw std::exception();
}

int main() {
    HPDF_Doc pdf = HPDF_New (error_handler, NULL);
    if (!pdf) {
        std::cerr << "Error: Cannot create pdf object" << '\n';
        return 1;
    }
    try {
        HPDF_Page page = HPDF_AddPage(pdf);
        HPDF_Page_BeginText (page);
        HPDF_Page_TextOut (page, 0,0,"sample text");
        HPDF_Page_EndText(page);
        HPDF_SaveToFile (pdf, "test.pdf");
        std::cout << "file save: " << '\n';
    } catch (const std::exception& e) {
        e.what();
        HPDF_Free(pdf);
        return 1;
    }
    HPDF_Free(pdf);
}


当这行:

HPDF_Page_TextOut (page, 0,0,"sample text");


被执行,我得到:

error! 4174 0


我在libHaru文档中找不到关于错误代码4174的任何信息,有人可以解释这是什么意思吗?

最佳答案

您的错误处理程序以十进制输出错误代码,而文档将其以十六进制形式列出。

4174(十进制)等于0x104e(十六进制)。

该错误代码在libharu文档中列为HPDF_PAGE_FONT_NOT_FOUND

请参阅有关如何解决此问题的文档。

关于c++ - 无法使用libHaru在PDF文件中写入文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29586518/

10-11 02:06