gpt4 book ai didi

cocoa - 在 PDFDocument 中添加自定义元数据

转载 作者:行者123 更新时间:2023-12-03 17:57:37 25 4
gpt4 key购买 nike

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

<CUSTOM_HEADER>\n
{"fileInfoEncodedInJson\":
{"filename":"My Print Out",
"filesize\":"630",
"filedesc":"",}
}\n
</CUSTOM_HEADER>\n
… file contents …

我一直在使用 PDFKit 和 PDFDocument,它们提供 documentAttributessetDocumentAttributes 方法,但由于它是自定义 header ,因此它似乎不会持续存在我设置属性并保存文件:

NSURL *path = [NSURL fileURLWithPath:@"/Users/username/Desktop/file.pdf"];
PDFDocument *document = [[PDFDocument alloc] initWithURL:path];

NSDictionary *docAttributes = [self.document documentAttributes];
NSMutableDictionary *newAttributes = [[NSMutableDictionary alloc] initWithDictionary:docAttributes];
[newAttributes setObject: @"Custom header contents" forKey:@"Custom header"];
docAttributes = [[NSDictionary alloc] initWithDictionary: newAttributes];

[document setDocumentAttributes: docAttributes];

//Here Custom Header is an entry in the dictionary

[self.document writeToFile:@"/Users/username/Desktop/UPDATEDfile.pdf"];

//Here the UPDATEDfile.pdf does not contain the custom header

我一直在寻找,发现了几个类似的问题(例如 cocoadev 上的 here ),但没有答案。有谁知道如何将自定义(即不是文档属性键下提供的 8 个预定义常量) header 存储到 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];

这会生成一个可以在 Adob​​e 中打开的 PDF 文件,并且在查看时标题是不可见的。

关于cocoa - 在 PDFDocument 中添加自定义元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11055988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com