首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个OS绘图程序应该如何在它的PasteBoard文件中存储自定义数据?

一个OS绘图程序应该如何在它的PasteBoard文件中存储自定义数据?
EN

Stack Overflow用户
提问于 2009-10-13 22:38:29
回答 4查看 376关注 0票数 4

一点历史。在卓越的Mac矢量剪贴板风格是PICT的日子里,程序可以将自己的数据插入到PICT中。PICT可以粘贴到另一个应用程序中。在以后的某个日期,可以选择相同的绘图并将其放在剪贴板上,然后粘贴回原始程序中。原始程序将提取其自定义数据,并重新生成用于实时编辑的原始选择。

如今,主流的矢量化剪贴板风格是PDF,这是一种很好的格式,但Apple没有提供任何方法来使用Apple的PDF生成API将自定义数据放入PDF中。(如果我说错了,请告诉我。)只有标题、作者等标准字符串。如果选择的内容只包含原始图形,新应用程序似乎通常不会费心将原始图形放回剪贴板。此外,像Word这样的应用程序只保留粘贴的PDF的第一页。

今天有没有什么事情可以让我的应用程序到任意的其他应用程序进行“往返”编辑?话虽如此,苹果和其他应用程序支持的理想解决方案是什么?它应该像PICT一样,成为嵌入到PDF中的标准自定义供应商blob,还是应该有一个独立的供应商粘贴板类型,让应用程序与可见图形并行保存?如果是前者,blob应该保留在文档级别还是页面级别?我不喜欢尝试任何老生常谈的东西,比如将XML塞到作者字段中。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-04 07:02:02

似乎有一个新的应用程序接口将在10.7中可用(并且已经在iOS中可用),它允许包含任意的(基于XML的)元数据。

代码语言:javascript
复制
void CGPDFContextAddDocumentMetadata (CGContextRef context, CFDataRef metadata) CG_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_0);

这将插入从根字典引用的压缩元数据流。这里我要做的就是在CGPDFContext.h头文件中神奇地出现的API调用。显然,这不能帮助我支持10.7之前的OS版本,但这似乎是一个长期的解决方案,同时我们可以破解PDF以匹配这一点。

Here's a blog entry I wrote up on the subject.

票数 0
EN

Stack Overflow用户

发布于 2009-10-26 16:55:31

另一个技巧是使用PDFKit添加带有额外数据的注释--我不确定目标程序是否能正确地复制/粘贴这些注释,但值得一试。

Reference

Example Code

-W

票数 2
EN

Stack Overflow用户

发布于 2009-10-13 23:32:03

为什么你的应用程序需要绘制的任何东西都不能以PDF格式表示并隐藏?尽管有很多人抱怨PDF在印前行业的令人讨厌的局限性,但苹果与此无关,事实是,它在制作漂亮的图片方面非常擅长在屏幕和纸张上显示。

您正在查看哪个API?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1563334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档