如何向PDDocument中添加Measure字典以生成GeoPDF
用PDFBox给GeoPDF添加Measure字典的方法
要把你创建好的Measure字典写入GeoPDF,核心是将它关联到PDF的根目录(Catalog),并确保字典被加入文档的对象池,具体Kotlin代码如下:
// 加载你已创建好基础内容的目标PDF文档 val targetDoc = PDDocument.load(File("your-target-pdf.pdf")) val catalog = targetDoc.documentCatalog // 假设你已经构建好符合要求的measureDictionary(COSDictionary类型) val measureDictionary = COSDictionary() // 这里填充Measure字典的各项地理参考参数,比如Units、CTM等 // 将Measure字典绑定到根Catalog catalog.cosDictionary.setItem(COSName.getPDFName("Measure"), measureDictionary) // 把新建的字典加入文档对象池,确保保存时会被写入PDF targetDoc.document.addObject(measureDictionary) // 保存并关闭文档 targetDoc.save(File("output-geopdf.pdf")) targetDoc.close()
关键注意点
- GeoPDF的Measure字典必须作为根Catalog的直接条目存在,PDF阅读器才能识别并启用地理测量功能
- 如果是全新创建的COSDictionary,必须调用
addObject方法将其注册到文档的对象集合中,否则该字典不会被写入最终的PDF文件 - 如果你是从现有GeoPDF提取Measure字典后修改复用,也要执行绑定到Catalog的操作,确保目标文档能识别到该字典
内容的提问来源于stack exchange,提问作者mipa
相关产品推荐
相关产品推荐

