PdfArray PdfAnnotation::GetQuadPoints() const { if( m_pObject->GetDictionary().HasKey( "QuadPoints" ) ) return PdfArray( m_pObject->GetDictionary().GetKey( "QuadPoints" )->GetArray() ); return PdfArray(); }
PdfPagesTree::PdfPagesTree( PdfVecObjects* pParent ) : PdfElement( "Pages", pParent ), m_cache( 0 ) { GetObject()->GetDictionary().AddKey( "Kids", PdfArray() ); // kids->Reference() GetObject()->GetDictionary().AddKey( "Count", PdfObject( static_cast<pdf_int64>(PODOFO_LL_LITERAL(0)) ) ); }
/* We use NULL for the PdfElement name, since the AcroForm dict does NOT have a /Type key! */ PdfAcroForm::PdfAcroForm( PdfDocument* pDoc, EPdfAcroFormDefaulAppearance eDefaultAppearance ) : PdfElement( NULL, pDoc ), m_pDocument( pDoc ) { // Initialize with an empty fields array this->GetObject()->GetDictionary().AddKey( PdfName("Fields"), PdfArray() ); Init( eDefaultAppearance ); }
void PdfDestination::Init( PdfObject* pObject, PdfDocument* pDocument ) { bool bValueExpected = false; PdfObject* pValue = NULL; if ( pObject->GetDataType() == ePdfDataType_Array ) { m_array = pObject->GetArray(); m_pObject = pObject; } else if( pObject->GetDataType() == ePdfDataType_String ) { PdfNamesTree* pNames = pDocument->GetNamesTree( ePdfDontCreateObject ); if( !pNames ) { PODOFO_RAISE_ERROR( ePdfError_NoObject ); } pValue = pNames->GetValue( "Dests", pObject->GetString() ); bValueExpected = true; } else if( pObject->GetDataType() == ePdfDataType_Name ) { PdfMemDocument* pMemDoc = dynamic_cast<PdfMemDocument*>(pDocument); if ( !pMemDoc ) { PODOFO_RAISE_ERROR_INFO( ePdfError_InvalidHandle, "For reading from a document, only use PdfMemDocument." ); } PdfObject* pCatalog = pMemDoc->GetCatalog(); if ( !pCatalog ) { PODOFO_RAISE_ERROR( ePdfError_NoObject ); } PdfObject* pDests = pCatalog->GetIndirectKey( PdfName( "Dests" ) ); if( !pDests ) { // The error code has been chosen for its distinguishability. PODOFO_RAISE_ERROR_INFO( ePdfError_InvalidKey, "No PDF-1.1-compatible destination dictionary found." ); } pValue = pDests->GetIndirectKey( pObject->GetName() ); bValueExpected = true; } else { PdfError::LogMessage( eLogSeverity_Error, "Unsupported object given to" " PdfDestination::Init of type %s", pObject->GetDataTypeString() ); m_array = PdfArray(); // needed to prevent crash on method calls // needed for GetObject() use w/o checking its return value for NULL m_pObject = pDocument->GetObjects()->CreateObject( m_array ); } if ( bValueExpected ) { if( !pValue ) { PODOFO_RAISE_ERROR( ePdfError_InvalidName ); } if( pValue->IsArray() ) m_array = pValue->GetArray(); else if( pValue->IsDictionary() ) m_array = pValue->GetDictionary().GetKey( "D" )->GetArray(); m_pObject = pValue; } }
PdfArray PdfAnnotation::GetColor() const { if( m_pObject->GetDictionary().HasKey( "C" ) ) return PdfArray( m_pObject->GetDictionary().GetKey( "C" )->GetArray() ); return PdfArray(); }
void PdfAnnotation::SetBorderStyle( double dHCorner, double dVCorner, double dWidth ) { this->SetBorderStyle( dHCorner, dVCorner, dWidth, PdfArray() ); }