1 // Copyright 2016 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #include "core/fpdfdoc/cpdf_metadata.h" 8 9 #include "core/fpdfapi/parser/cpdf_document.h" 10 #include "core/fpdfapi/parser/cpdf_stream.h" 11 #include "core/fpdfapi/parser/cpdf_stream_acc.h" 12 #include "core/fxcrt/fx_xml.h" 13 CPDF_Metadata(CPDF_Document * pDoc)14CPDF_Metadata::CPDF_Metadata(CPDF_Document* pDoc) { 15 CPDF_Dictionary* pRoot = pDoc->GetRoot(); 16 if (!pRoot) 17 return; 18 19 CPDF_Stream* pStream = pRoot->GetStreamFor("Metadata"); 20 if (!pStream) 21 return; 22 23 CPDF_StreamAcc acc; 24 acc.LoadAllData(pStream, false); 25 m_pXmlElement = CXML_Element::Parse(acc.GetData(), acc.GetSize()); 26 } 27 ~CPDF_Metadata()28CPDF_Metadata::~CPDF_Metadata() {} 29 GetRoot() const30const CXML_Element* CPDF_Metadata::GetRoot() const { 31 return m_pXmlElement.get(); 32 } 33