如何使用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
相关产品推荐
相关产品推荐

