HPS::Publish::DocumentKey Class Reference

#include <sprk_publish.h>

Inheritance diagram for HPS::Publish::DocumentKey:
HPS::Sprocket HPS::Object

Public Member Functions

DocumentKeyAddAttachment (char const *in_filename, char const *in_description)
 
DocumentKeyAddAttachments (size_t in_count, UTF8 const in_filenames[], UTF8 const in_descriptions[])
 
DocumentKeyAddAttachments (UTF8Array const &in_filenames, UTF8Array const &in_descriptions)
 
DocumentKeyAddIconImage (char const *in_name, ImageKit const &in_image)
 
DocumentKeyAddIconImages (size_t in_count, UTF8 const in_names[], ImageKit const in_images[])
 
DocumentKeyAddIconImages (UTF8Array const &in_names, ImageKitArray const &in_images)
 
DocumentKeyAddJavaScript (char const *in_script_name, char const *in_source, Source::Type in_type=Source::Type::Code)
 
DocumentKeyAddJavaScript (size_t in_count, UTF8 const in_script_names[], UTF8 const in_sources[], Source::Type const in_types[])
 
DocumentKeyAddJavaScript (UTF8Array const &in_script_names, UTF8Array const &in_sources, SourceTypeArray const &in_types)
 
DocumentKeyAddPage (PageKit const &in_page)
 
DocumentKeyAddPages (size_t in_count, PageKit const in_pages[])
 
DocumentKeyAddPages (PageKitArray const &in_pages)
 
virtual void Assign (DocumentKey const &in_that)
 
void Delete ()
 
 DocumentKey ()
 
 DocumentKey (DocumentKey const &in_that)
 
 DocumentKey (DocumentKey &&in_that)
 
bool Equals (DocumentKey const &in_that) const
 
PageControl GetPageControl (size_t in_index)
 
PageControl const GetPageControl (size_t in_index) const
 
size_t GetPageCount () const
 
HPS::Type ObjectType () const
 
bool operator!= (DocumentKey const &in_that) const
 
DocumentKeyoperator= (DocumentKey const &in_that)
 
DocumentKeyoperator= (DocumentKey &&in_that)
 
bool operator== (DocumentKey const &in_that) const
 
DocumentKeyRemoveAllPages ()
 
DocumentKeyRemovePage (size_t in_index)
 
DocumentKeyRemovePages (size_t in_start, size_t in_count)
 
DocumentKeyRemovePages (size_t in_count, size_t const in_indices[])
 
DocumentKeyRemovePages (SizeTArray const &in_indices)
 
DocumentKeySetInformation (char const *in_title, char const *in_author, char const *in_subject, char const *in_creator)
 
DocumentKeySetPasswords (char const *in_user_password, char const *in_owner_password)
 
DocumentKeySetPermissions (size_t in_count, Permission::Type const in_permissions[])
 
DocumentKeySetPermissions (PermissionTypeArray const &in_permissions)
 
virtual ~DocumentKey ()
 
- Public Member Functions inherited from HPS::Sprocket
Sprocket (Sprocket &&in_that)
 
- Public Member Functions inherited from HPS::Object
virtual bool Empty () const
 
intptr_t GetClassID () const
 
intptr_t GetInstanceID () const
 
bool HasType (HPS::Type in_mask) const
 
Object (Object const &that)
 
 Object (Object &&in_that)
 
Objectoperator= (Object const &other_object)
 
Objectoperator= (Object &&in_that)
 
virtual void Reset ()
 
virtual HPS::Type Type () const
 

Static Public Attributes

static const HPS::Type staticType = HPS::Type::PublishDocumentKey
 
- Static Public Attributes inherited from HPS::Object
static const HPS::Type staticType = HPS::Type::None
 

Additional Inherited Members

- Static Public Member Functions inherited from HPS::Object
template<typename T >
static intptr_t ClassID ()
 

Detailed Description

The DocumentKey class is a smart pointer to a Publish PDF document. It allows direct interaction with a PDF document.

Constructor & Destructor Documentation

◆ DocumentKey() [1/3]

HPS::Publish::DocumentKey::DocumentKey ( )

The default constructor creates an uninitialized DocumentKey object. The Type() function will return Type::None.

◆ DocumentKey() [2/3]

HPS::Publish::DocumentKey::DocumentKey ( DocumentKey const &  in_that)

The copy constructor creates a DocumentKey object that shares the underlying smart-pointer of the source DocumentKey.

Parameters
in_thatThe source DocumentKey to copy.

◆ DocumentKey() [3/3]

HPS::Publish::DocumentKey::DocumentKey ( DocumentKey &&  in_that)

The move constructor creates a DocumentKey by transferring the underlying object of the rvalue reference to this DocumentKey.

Parameters
in_kitAn rvalue reference to a DocumentKey to take the underlying object from.

◆ ~DocumentKey()

virtual HPS::Publish::DocumentKey::~DocumentKey ( )
virtual

Releases a reference to this DocumentKey. When the last reference goes out of scope, the underlying PDF document will be closed and any associated memory will be released by Publish if necessary. This will not write the underlying PDF document out to disk.

Member Function Documentation

◆ AddAttachment()

DocumentKey& HPS::Publish::DocumentKey::AddAttachment ( char const *  in_filename,
char const *  in_description 
)

Adds an attachment to the document. If there is an existing attachment on the document with the given filename, it will get overwritten. This corresponds to the value that will be passed to A3DPDFDocumentAddFileAttachment.

Parameters
in_filenameUTF8-encoded filename of the file to be attached.
in_descriptionUTF8-encoded description of the file to be attached.
Returns
A reference to this DocumentKey.

◆ AddAttachments() [1/2]

DocumentKey& HPS::Publish::DocumentKey::AddAttachments ( size_t  in_count,
UTF8 const  in_filenames[],
UTF8 const  in_descriptions[] 
)

Adds a list of attachments to the document. If there is an existing attachment on the document with a filename which is in the given list, it will get overwritten. These correspond to values that will be passed to A3DPDFDocumentAddFileAttachment.

Parameters
in_countSize of the following arrays.
in_filenamesFilenames of the files to be attached.
in_descriptionsDescriptions of the files to be attached.
Returns
A reference to this DocumentKey.

◆ AddAttachments() [2/2]

DocumentKey& HPS::Publish::DocumentKey::AddAttachments ( UTF8Array const &  in_filenames,
UTF8Array const &  in_descriptions 
)

Adds a list of attachments to the document. If there is an existing attachment on the document with a filename which is in the given list, it will get overwritten. These correspond to values that will be passed to A3DPDFDocumentAddFileAttachment.

Parameters
in_filenamesFilenames of the files to be attached.
in_descriptionsDescriptions of the files to be attached.
Returns
A reference to this DocumentKey.

◆ AddIconImage()

DocumentKey& HPS::Publish::DocumentKey::AddIconImage ( char const *  in_name,
ImageKit const &  in_image 
)

Adds an icon image to the document. If there is an existing icon image on the document with the given name, it will get overwritten. This corresponds to the value that will be passed to A3DPDFDocumentAddImageAsIcon.

Parameters
in_nameUTF8-encoded name of the icon image to be attached.
in_imageImage to be attached as an icon.
Returns
A reference to this DocumentKey.

◆ AddIconImages() [1/2]

DocumentKey& HPS::Publish::DocumentKey::AddIconImages ( size_t  in_count,
UTF8 const  in_names[],
ImageKit const  in_images[] 
)

Adds icon images to the document. If there is an existing icon image on the document with a name which is in the given list, it will get overwritten. These correspond to the values that will be passed to A3DPDFDocumentAddImageAsIcon.

Parameters
in_countSize of the following arrays.
in_namesNames of the icon images to be attached.
in_imagesImages to be attached as icons.
Returns
A reference to this DocumentKey.

◆ AddIconImages() [2/2]

DocumentKey& HPS::Publish::DocumentKey::AddIconImages ( UTF8Array const &  in_names,
ImageKitArray const &  in_images 
)

Adds icon images to the document. If there is an existing icon image on the document with a name which is in the given list, it will get overwritten. These correspond to the values that will be passed to A3DPDFDocumentAddImageAsIcon.

Parameters
in_namesNames of the icon images to be attached.
in_imagesImages to be attached as icons.
Returns
A reference to this DocumentKey.

◆ AddJavaScript() [1/3]

DocumentKey& HPS::Publish::DocumentKey::AddJavaScript ( char const *  in_script_name,
char const *  in_source,
Source::Type  in_type = Source::Type::Code 
)

Adds a named JavaScript source or file to the document. If there is an existing script on the document with the given name, it will get overwritten. This corresponds to the value that will be passed to A3DPDFDocumentAddJavascriptFromString.

Parameters
in_script_nameUTF8-encoded script name to be added to the document.
in_sourceUTF8-encoded JavaScript source or file (depending on the following argument) to be added to the document.
in_typeThe types of the preceding argument. Defaults to Source::Type::Code.
Returns
A reference to this DocumentKey.

◆ AddJavaScript() [2/3]

DocumentKey& HPS::Publish::DocumentKey::AddJavaScript ( size_t  in_count,
UTF8 const  in_script_names[],
UTF8 const  in_sources[],
Source::Type const  in_types[] 
)

Adds a list of named JavaScript sources or files to the document. If there is an existing script on the document with a name which is in the given list, it will get overwritten. These correspond to values that will be passed to A3DPDFDocumentAddJavascriptFromString.

Parameters
in_countSize of the following arrays.
in_script_namesScript names to be added to the document.
in_sourcesJavaScript sources and/or files (depending on the corresponding entry in the following argument) to be added to the document.
in_typesTypes for each item in the preceding argument array.
Returns
A reference to this DocumentKey.

◆ AddJavaScript() [3/3]

DocumentKey& HPS::Publish::DocumentKey::AddJavaScript ( UTF8Array const &  in_script_names,
UTF8Array const &  in_sources,
SourceTypeArray const &  in_types 
)

Adds a list of named JavaScript sources or files to the document. If there is an existing script on the document with a name which is in the given list, it will get overwritten. These correspond to values that will be passed to A3DPDFDocumentAddJavascriptFromString.

Parameters
in_script_namesScript names to be added to the document.
in_sourcesJavaScript sources and/or files (depending on the corresponding entry in the following argument) to be added to the document.
in_typesTypes for each item in the preceding argument array.
Returns
A reference to this DocumentKey.

◆ AddPage()

DocumentKey& HPS::Publish::DocumentKey::AddPage ( PageKit const &  in_page)

Adds the given page to the document. This will append the page after any existing pages on the document. This corresponds to the value that will be passed to A3DPDFDocumentAppendNewPage or A3DPDFDocumentAppendPageFromPDFFileEx.

Parameters
in_pagePage to add to the document.
Returns
A reference to this DocumentKey.

◆ AddPages() [1/2]

DocumentKey& HPS::Publish::DocumentKey::AddPages ( size_t  in_count,
PageKit const  in_pages[] 
)

Adds the given pages to the document. This will append the pages after any existing pages on the document. These correspond to values that will be passed to A3DPDFDocumentAppendNewPage or A3DPDFDocumentAppendPageFromPDFFileEx.

Parameters
in_countSize of the Following array.
in_pagesPages to add to the document.
Returns
A reference to this DocumentKey.

◆ AddPages() [2/2]

DocumentKey& HPS::Publish::DocumentKey::AddPages ( PageKitArray const &  in_pages)

Adds the given pages to the document. This will append the pages after any existing pages on the document. These correspond to values that will be passed to A3DPDFDocumentAppendNewPage or A3DPDFDocumentAppendPageFromPDFFileEx.

Parameters
in_pagesPages to add to the document.
Returns
A reference to this DocumentKey.

◆ Assign()

virtual void HPS::Publish::DocumentKey::Assign ( DocumentKey const &  in_that)
virtual

Share the underlying smart-pointer of the DocumentKey source.

Parameters
in_thatThe DocumentKey source of the assignment.
Returns
A reference to this DocumentKey.

◆ Delete()

void HPS::Publish::DocumentKey::Delete ( )

Closes the PDF document underlying this DocumentKey and frees the associated memory in Publish. This will effectively invalidate all references to the underlying PDF document (including other DocumentKey or PageControl objects which refer to the same document). This will not write the underlying PDF document out to disk.

◆ Equals()

bool HPS::Publish::DocumentKey::Equals ( DocumentKey const &  in_that) const

Check if the source DocumentKey points to the same underlying impl as this DocumentKey.

Parameters
in_thatThe source DocumentKey to compare to this DocumentKey.
Returns
true if the objects reference the same impl, false otherwise.

◆ GetPageControl() [1/2]

PageControl HPS::Publish::DocumentKey::GetPageControl ( size_t  in_index)

Returns a control that allows the user to manipulate and query details of a page at the given index in the underlying PDF document.

Parameters
in_indexThe index of the page for which to create a PageControl. The index of the first page is 0.
Returns
A PageControl object for the specified page.

◆ GetPageControl() [2/2]

PageControl const HPS::Publish::DocumentKey::GetPageControl ( size_t  in_index) const

Returns a control that allows the user to manipulate and query details of a page at the given index in the underlying PDF document.

Parameters
in_indexThe index of the page for which to create a PageControl. The index of the first page is 0.
Returns
A PageControl object for the specified page.

◆ GetPageCount()

size_t HPS::Publish::DocumentKey::GetPageCount ( ) const

Gets the number of pages in the underlying PDF document.

◆ ObjectType()

HPS::Type HPS::Publish::DocumentKey::ObjectType ( ) const
inlinevirtual

This function returns the type the object, as declared (if the object is derived, this does not give the true type of the derived object).

Returns
The declared type of the object in question, which may differ from the true, underlying type.

Reimplemented from HPS::Object.

◆ operator!=()

bool HPS::Publish::DocumentKey::operator!= ( DocumentKey const &  in_that) const

Check if the source DocumentKey points to a different impl than this DocumentKey.

Parameters
in_thatThe source DocumentKey to compare to this DocumentKey.
Returns
true if the objects reference different impls, false otherwise.

◆ operator=() [1/2]

DocumentKey& HPS::Publish::DocumentKey::operator= ( DocumentKey const &  in_that)

Share the underlying smart-pointer of the DocumentKey source.

Parameters
in_thatThe DocumentKey source of the assignment.
Returns
A reference to this DocumentKey.

◆ operator=() [2/2]

DocumentKey& HPS::Publish::DocumentKey::operator= ( DocumentKey &&  in_that)

The move assignment operator transfers the underlying object of the rvalue reference to this DocumentKey.

Parameters
in_kitAn rvalue reference to a DocumentKey to take the underlying object from.
Returns
A reference to this DocumentKey.

◆ operator==()

bool HPS::Publish::DocumentKey::operator== ( DocumentKey const &  in_that) const

Check if the source DocumentKey points to the same underlying impl as this DocumentKey.

Parameters
in_thatThe source DocumentKey to compare to this DocumentKey.
Returns
true if the objects reference the same impl, false otherwise.

◆ RemoveAllPages()

DocumentKey& HPS::Publish::DocumentKey::RemoveAllPages ( )

Removes all pages from the underlying PDF document.

Returns
A reference to this DocumentKey.

◆ RemovePage()

DocumentKey& HPS::Publish::DocumentKey::RemovePage ( size_t  in_index)

Removes the page at the given index from the underlying PDF document.

Parameters
in_indexThe index of the page to remove from the underlying PDF document. The index of the first page is 0.
Returns
A reference to this DocumentKey.

◆ RemovePages() [1/3]

DocumentKey& HPS::Publish::DocumentKey::RemovePages ( size_t  in_start,
size_t  in_count 
)

Removes the specified number of pages starting at the given index from the underlying PDF document.

Parameters
in_startThe first index at which to start to removing pages from the underlying PDF document. The index of the first page is 0.
in_countThe number of pages to remove from the underlying PDF document.
Returns
A reference to this DocumentKey.

◆ RemovePages() [2/3]

DocumentKey& HPS::Publish::DocumentKey::RemovePages ( size_t  in_count,
size_t const  in_indices[] 
)

Removes the pages at the given indices from the underlying PDF document.

Parameters
in_countSize of the following array.
in_indicesThe indices of pages to remove from the underlying PDF document. The index of the first page is 0.
Returns
A reference to this DocumentKey.

◆ RemovePages() [3/3]

DocumentKey& HPS::Publish::DocumentKey::RemovePages ( SizeTArray const &  in_indices)

Removes the pages at the given indices from the underlying PDF document.

Parameters
in_indicesThe indices of pages to remove from the underlying PDF document. The index of the first page is 0.
Returns
A reference to this DocumentKey.

◆ SetInformation()

DocumentKey& HPS::Publish::DocumentKey::SetInformation ( char const *  in_title,
char const *  in_author,
char const *  in_subject,
char const *  in_creator 
)

Sets the title, author, subject and creator for this document. These corresponds to the values that will be passed to A3DPDFDocumentInformationData::m_pcTitle, A3DPDFDocumentInformationData::m_pcAuthor, A3DPDFDocumentInformationData::m_pcSubject, and A3DPDFDocumentInformationData::m_pcCreator (respectively).

Parameters
in_titleUTF8-encoded title string to set on the document.
in_authorUTF8-encoded author string to set on the document.
in_subjectUTF8-encoded subject string to set on the document.
in_creatorUTF8-encoded creator string to set on the document.
Returns
A reference to this DocumentKey.

◆ SetPasswords()

DocumentKey& HPS::Publish::DocumentKey::SetPasswords ( char const *  in_user_password,
char const *  in_owner_password 
)

Sets the passwords for this document. This corresponds to the value that will be passed to A3DPDFDocumentSetPassword.

Parameters
in_user_passwordUTF8-encoded password string required when opening, modifying or printing the document. If an empty string is specified, no password will be required.
in_owner_passwordUTF8-encoded password string required when changing security features of document. If an empty string is specified, no password will be required.
Returns
A reference to this DocumentKey.

◆ SetPermissions() [1/2]

DocumentKey& HPS::Publish::DocumentKey::SetPermissions ( size_t  in_count,
Permission::Type const  in_permissions[] 
)

Sets document permissions. This correspond to the values that will be passed to A3DPDFDocumentSetDocumentPermissions.

Parameters
in_countSize of the following array.
in_permissionsThe permissions to be set on the document.
Returns
A reference to this DocumentKey.

◆ SetPermissions() [2/2]

DocumentKey& HPS::Publish::DocumentKey::SetPermissions ( PermissionTypeArray const &  in_permissions)

Sets document permissions. This correspond to the values that will be passed to A3DPDFDocumentSetDocumentPermissions.

Parameters
in_permissionsThe permissions to be set on the document.
Returns
A reference to this DocumentKey.

The documentation for this class was generated from the following file: