Как добавить метаданные в PDF в Objective C?

#objective-c #iphone #pdf #metadata

#objective-c #iPhone #PDF #метаданные

Вопрос:

Как добавить метаданные в PDF в Objective C? Я наткнулся на метод класса с именем CGPDFContextAddDocumentMetadata , но не смог найти никакой документации о том, как его достичь.

Ответ №1:

Метаданные, которые можно добавить с помощью этого метода, — это метаданные XMP. Он основан на XML и выглядит следующим образом (это полностью задокументировано здесь: http://www.adobe.com/products/xmp /):

 <?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.1-c041">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
<rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <dc:format>application/pdf</dc:format>
  <dc:title>
    <rdf:Alt>
      <rdf:li />
    </rdf:Alt>
  </dc:title>
  <dc:description>
    <rdf:Alt>
      <rdf:li />
    </rdf:Alt>
  </dc:description>
  <dc:creator>
    <rdf:Seq>
      <rdf:li />
    </rdf:Seq>
  </dc:creator>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
  <pdf:Keywords />
  <pdf:Producer />
</rdf:Description>
<rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/">
  <xmp:CreatorTool />
  <xmp:CreateDate>2011-02-10T11:41:05 02:00</xmp:CreateDate>
  <xmp:ModifyDate>2011-02-10T11:41:06 02:00</xmp:ModifyDate>
</rdf:Description></rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
  

Метод выглядит следующим образом:

 void CGPDFContextAddDocumentMetadata(CGContextRef context,CFDataRef metadata);
  

‘context’ — это ваш контекст pdf, metadata — это ваши метаданные XMP. Вы можете создать метаданные в объекте NSString (переменная xmpString ниже), а затем преобразовать NSString в CFDataRef:

 CFDataRef xmpDataRef = (CFDataRef)[xmpString dataUsingEncoding:NSUTF8StringEncoding];
  

Комментарии:

1. Еще раз спасибо… На самом деле я хотел добавить аннотации или примечания, которые я делаю в PDF из своего приложения для iPhone, чтобы они были видны и редактировались другим приложением для чтения PDF. Кто-нибудь может сказать мне, как я могу этого добиться.