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

如何使用C++从PDF文件中获取UserUnit值?

在C++中获取PDF的UserUnit值

你可以使用**iText 7 for C++**实现该功能,这是和你所用的iTextSharp对应的C++版本。先附上你已有的C#实现代码作为参考:

PdfReader reader = new iTextSharp.text.pdf.PdfReader(filename);
for (int i = 1; i <= reader.NumberOfPages; i++)
{
    PdfDictionary pageDict = reader.GetPageN(i);
    PdfNumber userUnit = pageDict.GetAsNumber(PdfName.USERUNIT);
}

C++实现代码

#include <iostream>
#include <itextpdf/itextpdf.h>

using namespace iText::Kernel::Pdf;

int main() {
    std::string filename = "your_pdf_file.pdf";
    PdfReader reader(filename);
    int numPages = reader.GetNumberOfPages();
    
    for (int i = 1; i <= numPages; ++i) {
        // 获取当前页的PDF字典对象
        PdfDictionary pageDict = reader.GetPage(i)->GetPdfObject();
        // 查找UserUnit对应的数值
        PdfNumber userUnit = pageDict.GetAsNumber(PdfName::UserUnit);
        
        if (userUnit != nullptr) {
            std::cout << "第" << i << "页的UserUnit值: " << userUnit.GetValue() << std::endl;
        } else {
            std::cout << "第" << i << "页未设置UserUnit" << std::endl;
        }
    }
    
    return 0;
}

关键说明

  • 核心逻辑和C#版本一致:遍历每一页,获取页面字典,通过UserUnit键提取对应数值
  • 若使用旧版iText 5 for C++,API会有细微差异,但核心思路不变
  • 编译时需确保正确配置iText 7 for C++的头文件路径与链接库

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 15:32:16