Cocoa 在PDFDocument中添加自定义元数据
我正在桌面和手持设备之间发送一个文档,我想向PDF添加一个元数据头,如下所示Cocoa 在PDFDocument中添加自定义元数据,cocoa,pdf,metadata,Cocoa,Pdf,Metadata,我正在桌面和手持设备之间发送一个文档,我想向PDF添加一个元数据头,如下所示 <CUSTOM_HEADER>\n {"fileInfoEncodedInJson\": {"filename":"My Print Out", "filesize\":"630", "filedesc":"",} }\n </CUSTOM_HEADER>\n … file contents … 我到处寻找,发现了几个类似的问题(比如在cocoadev上),但没有答案。
<CUSTOM_HEADER>\n
{"fileInfoEncodedInJson\":
{"filename":"My Print Out",
"filesize\":"630",
"filedesc":"",}
}\n
</CUSTOM_HEADER>\n
… file contents …
我到处寻找,发现了几个类似的问题(比如在cocoadev上),但没有答案。是否有人知道将自定义(即不是文档属性键下提供的8个预定义常量)标题存储到PDF文件的方法 我实际上并没有编辑预先存在的标题,我只是创建了一个NSMutableData对象,先添加文本数据,然后添加PDF数据,然后将这些数据保存到我想要的路径
NSString *header = [NSString stringWithFormat:@"<CUSTOM_HEADER>\n {\"fileInfoEncodedInJson\": {\"filename\":\"My Print Out\", \"filesize\":\"630\",\"filedesc\":\"\",} }\n </CUSTOM_HEADER>\n"];
// Append header to PDF data
NSMutableData *data = [NSMutableData dataWithData:[header dataUsingEncoding:NSWindowsCP1252StringEncoding]];
[data appendData:[doc dataRepresentation]];
[data writeToFile:@"/Users/username/Desktop/UPDATEDfile.pdf" atomically:NO];
NSString*header=[NSString stringWithFormat:@“\n{”fileInfoEncodedInJson\”:{“filename\”:“我的打印输出”、“filesize\”:“630\”,“filedesc\”:“\”,}}\n\n”];
//将标题附加到PDF数据
NSMutableData*data=[NSMutableData dataWithData:[标头数据使用编码:NSWindowsCP1252StringEncoding]];
[数据附件数据:[单据数据表示]];
[数据写入文件:@”/Users/username/Desktop/UPDATEDfile.pdf“原子:否];
这将导致在Adobe for me中打开一个PDF文件,并且在查看时标题不可见。在这种情况下,对象偏移量将不正确,文件将损坏。Adobe Reader可以打开该文件(它修复了交叉引用),但其他PDF处理程序可能会对此抱怨。如果你的目标只是AdobeReader,那么你很好,你是对的。在我的具体案例中,我们将文件发送到需要此标题的移动应用程序,并将文档推送到Adobe Reader应用程序,但感谢您的提醒。
NSString *header = [NSString stringWithFormat:@"<CUSTOM_HEADER>\n {\"fileInfoEncodedInJson\": {\"filename\":\"My Print Out\", \"filesize\":\"630\",\"filedesc\":\"\",} }\n </CUSTOM_HEADER>\n"];
// Append header to PDF data
NSMutableData *data = [NSMutableData dataWithData:[header dataUsingEncoding:NSWindowsCP1252StringEncoding]];
[data appendData:[doc dataRepresentation]];
[data writeToFile:@"/Users/username/Desktop/UPDATEDfile.pdf" atomically:NO];