You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PDFix SDK 8.5.4 C++ API生成PDF文档为空问题求助

PDFix SDK 8.5.4 C++生成PDF无可见内容的解决方法

你的代码存在几个关键问题,导致生成的PDF页面看不到文本:

  1. 未设置文本填充颜色
    PDF页面背景默认是白色,若未指定文本填充色,部分情况下默认也会是白色,导致文字和背景重合无法显示。必须显式设置文本填充色为黑色。

  2. 未提交内容修改
    在将内容设置回页面之前,需要调用content->Close(),确保所有内容对象的修改都被正确提交到页面中。

  3. 冗余的TextState设置
    AddNewText方法已经传入了字体和变换矩阵,后续重复设置TextState属于冗余操作,可能引发潜在配置冲突,建议移除。

修改后的代码如下:

int main() {
    // 1.Init PDFix.dll
    if (!Pdfix_init(Pdfix_MODULE_NAME)) {
        return -1;
    }

    // 2.Get PDFix object.
    Pdfix* pdfix = GetPdfix();
    if (!pdfix) {
        return -1;
    }

    // 3.Create Doc Object.
    PdfDoc* doc = pdfix->CreateDoc();
    if (!doc) {
        return -1;
    }

    // 4.Define A4 page size (595 x 842 pt)
    PdfRect media_box = { 0, 0, 595, 842 };
    PdfPage* page = doc->CreatePage(-1, &media_box);
    if (!page) {
        return -1;
    }

    PdsContent* content = page->GetContent();
    if (!content) {
        return -1;
    }

    // 5.Load system font
    PsSysFont* sys_font = pdfix->FindSysFont(L"Arial", false, false);
    if (!sys_font) {
        return -1;
    }

    PdfFont* font = doc->CreateFont(sys_font, kFontAnsiCharset, false);
    if (!font) {
        return -1;
    }

    // 6.Define text transform matrix: font size 12pt, position (100, 750)
    PdfMatrix matrix = {12, 0, 0, 12, 100, 750};
    PdsText* text_obj = content->AddNewText(-1, font, &matrix);
    if (!text_obj) {
        return -1;
    }

    text_obj->SetText(L"Hello from PDFix 8.5.4!");
    
    // 设置文本填充色为黑色
    PdfColor fill_color = {0, 0, 0}; // RGB 黑色
    text_obj->SetFillColor(&fill_color);

    // 关闭内容对象,提交所有修改
    content->Close();

    // 7.Finalize content
    page->SetContent();  

    if (!doc->Save(L"output.pdf", kSaveFull)) {
        return -1;
    }

    doc->Close();
    pdfix->Destroy();
    return 0;
}

额外建议:在每一步错误返回时添加日志输出,方便排查具体环节的问题(比如系统是否真的存在Arial字体,避免因字体加载失败导致的隐性错误)。

内容的提问来源于stack exchange,提问作者alpha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 19:45:03