Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 在PDFDocument中添加自定义元数据_Cocoa_Pdf_Metadata - Fatal编程技术网

Cocoa 在PDFDocument中添加自定义元数据

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上),但没有答案。

我正在桌面和手持设备之间发送一个文档,我想向PDF添加一个元数据头,如下所示

<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];