0

i am trying to set a custom metadata to my pdf but i dont find much about how to do it

this is what i have tried for now, but idk how to properly set the xmpPdfMetadata String or if there is a better way to set up a custom metadata

    func createPDF() -> Data {

      let pageWidth = 8.5 * 72.0
      let pageHeight = 11 * 72.0
      let pageRect = CGRect(x: 0, y: 0, width: pageWidth, height: pageHeight)
   
      let renderer = UIGraphicsPDFRenderer(bounds: pageRect)
     
      let data = renderer.pdfData { (context) in
          
          context.beginPage()
          
          _ = addImage(pageRect: pageRect, imageTop: 30.0)
          
          // Custom metadata
          let pdfContext = UIGraphicsGetCurrentContext()
          let xmpPdfMetadata = "<test>test</test>"
          let metaData = xmpPdfMetadata.data(using: .utf8) as CFData?
          pdfContext?.addDocumentMetadata(metaData)
      }
   
      return data
    }

adobe custom properties

whit this as xmpPdfMetadata it works and i can see them in additional metadata, but if i go to custom properties, "Referencia" dont appear there. Didnt find any solution for that yet

let xmpPdfMetadata = """
                <?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
                    <x:xmpmeta xmlns:x="adobe:ns:meta" x:xmptk="Adobe XMP Core 5.6-c016 91.163616, 2018/10/29-16:58:49">
                       <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
                            <rdf:Description rdf:about=""
                                xmlns:xmp="http://ns.adobe.com/xap/1.0/"
                                xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
                                xmlns:dc="http://purl.org/dc/elements/1.1/"
                                xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
                             <pdfx:Referencia>Referencia</pdfx:Referencia>
                          </rdf:Description>
                       </rdf:RDF>
                    </x:xmpmeta>
                <?xpacket end="w"?>
                """
  • Like you, I can write the metadata to the PDF, but I cannot find a companion method to read that metadata once written. I'm writing for macOS, but your code looks similar to what I am doing. – SouthernYankee65 Nov 06 '22 at 14:45
  • Maybe this can help: https://stackoverflow.com/questions/43454670/swift-cgpdfdocument-parsing – SouthernYankee65 Nov 07 '22 at 13:47

0 Answers0