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

使用JagPDF库加载PDF格式图片时抛出异常的技术求助

解决JagPDF加载PDF格式文件时抛出异常的问题

问题背景

使用JagPDF库通过C++生成计算结果PDF报告,库文档说明支持PNG、JPG及原生PDF格式的内容嵌入。加载JPG格式文件时程序正常运行,但尝试加载PDF格式文件时抛出异常。

问题原因

你误用了加载光栅图像的API来处理PDF文档:image_load_file()仅适用于PNG、JPG这类光栅图像,而PDF属于矢量文档,JagPDF对其有专门的导入处理逻辑,不能当作普通图片加载。

解决方案

要嵌入PDF文档,需要使用JagPDF的页面导入功能,步骤如下:

  • 使用import_pages()方法导入目标PDF文件的页面
  • 通过导入的页面对象,使用canvas().page()将其绘制到当前页面中

修正后的代码

#include <jagpdf/api.h>

using namespace jag;

int main()
{
    int pagewidth = 766;
    int pageheight = 589;
    pdf::Document doc(pdf::create_file("report.pdf"));
    doc.page_start(pagewidth, pageheight);

    // 导入目标PDF的页面,参数为PDF文件路径
    pdf::PageImport imp = doc.import_pages("example1.pdf");
    // 获取导入的第一页(索引从0开始)
    pdf::Page imported_page = imp.page(0);

    int posx = 0;
    int posy = 0;
    // 将导入的PDF页面绘制到当前页面指定位置
    doc.page().canvas().page(imported_page, posx, posy);

    doc.page_end();
    doc.finalize();
    return 0;
}

关键说明

  • import_pages():用于导入外部PDF的所有页面,返回一个PageImport对象
  • imp.page(n):获取导入的第n个页面(索引从0开始)
  • canvas().page():将导入的PDF页面绘制到当前文档的页面上,可指定位置坐标

内容的提问来源于stack exchange,提问作者Diego Fernando Pava

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 19:20:00