我正在做一个项目,我需要在 PDF 上创建和设置我自己的元数据(以便将 GUID 直接设置到文件中)。
我目前能够设置经典元数据(例如创建者、关键字...等),但我不知道如何添加自定义字段。
这是我设置元数据的方式:
CFMutableDictionaryRef auxInfo = CFDictionaryCreateMutable(kCFAllocatorDefault, 1, NULL, NULL);
CFDictionaryAddValue(auxInfo, kCGPDFContextCreator, CFSTR("John doo"));
CFDictionaryAddValue(auxInfo, kCGPDFContextAuthor, CFSTR("foo bar"));
CFDictionaryRef auxillaryInformation = CFDictionaryCreateCopy(kCFAllocatorDefault, auxInfo);
CFRelease(auxInfo);
// create a context to draw into
CGContextRef graphicContext = CGPDFContextCreate(PDFDataConsumer, &mediaRect, auxillaryInformation);
CFRelease(auxillaryInformation);
CGDataConsumerRelease(PDFDataConsumer);
我尝试用自定义名称替换 kCGPDFContextThing ,但是当我阅读元数据时,它根本没有出现。
为了阅读我使用的元数据
CGPDFDictionaryRef dict = CGPDFDocumentGetInfo(*pdfDoc);
CGPDFDictionaryGetString(dict, "Creator", &objectValue);
我也尝试添加一个 meta :
NSString* str= @"Hello World";
NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];
CFDataRef cfdata = CFDataCreate(NULL, [data bytes], [data length]);
CGPDFContextAddDocumentMetadata(graphicContext, cfdata);
但它似乎也不起作用,我不确定我是否正确理解那里做了什么。
我也在使用 PDFNet SDK 来帮助编辑,但它似乎没有提供关于元数据的任何帮助,所以我使用的是quartz。
任何帮助或建议或任何东西都会受到欢迎,我很迷茫,我根本不是 iOS 专家!!!