PNG JPG BMP TIFF PDF
Aspose.PDF  for PHP

Add Bookmarks to PDF in PHP SDK

Build your own PHP apps to add bookmarks into PDF files using server-side APIs.

Get Started

How to add Bookmarks to PDF via Cloud PHP SDK

To add Bookmarks into PDF, we’ll use Aspose.PDF Cloud PHP SDK This Cloud SDK assists PHP programmers in developing cloud-based PDF creator, annotator, editor, and converter apps using PHP programming language via Aspose.PDF REST API. Simply create an account at Aspose for Cloud and get your application information. Once you have the App SID & key, you are ready to give the Aspose.PDF Cloud PHP SDK.

Package Manager Console Command

     
    composer install

Steps to add Bookmarks to PDF via Cloud PHP

Aspose.PDF Cloud developers can easily load & add Bookmarks to PDF in just a few lines of code.

  1. Upload a PDF Document
  2. Download the Processed PDF Document
  3. Append a Bookmark to the PDF
 

Add Bookmarks to PDF using PHP



    private function _create_rest_api() {
        $credentials = json_decode(file_get_contents("./Credentials/credentials.json"), true);

        $configAuth = new Configuration();
        $configAuth->setAppKey($credentials['key']);
        $configAuth->setAppSid($credentials['id']);

        $this->pdfApi = new PdfApi(null, $configAuth);
    }

    public function __construct($config) {
        $this->configParams = $config;
        $this->_create_rest_api();
    }

    public function uploadDocument() {
        $filePath = $this->configParams['LOCAL_FOLDER'] . $this->configParams['PDF_DOCUMENT_NAME'];
        $fileData = file_get_contents($filePath);

        $response = $this->pdfApi->uploadFile($this->configParams['PDF_DOCUMENT_NAME'], $fileData);
        if ($response->getCode() === 200) {
            echo "Uploaded file: {$this->configParams['PDF_DOCUMENT_NAME']}\n";
        } else {
            echo "Failed to upload file.";
        }
    }

    public function downloadResult() {
        $response = $this->pdfApi->downloadFile($this->configParams['PDF_DOCUMENT_NAME']);
        $filePath = $this->configParams['LOCAL_FOLDER'] . $this->configParams['LOCAL_RESULT_DOCUMENT_NAME'];

        if ($response->getCode() === 200) {
            file_put_contents($filePath, $response->getContents());
            echo "Downloaded: $filePath\n";
        } else {
            echo "Failed to download file.";
        }
    }

    public function appendBookmarkLink() {
        $bookmarkLink = new Link(array('rel' => 'self'));
        $bookmarkColor = new Color(array('a' => 255, 'r' => 0, 'g' => 255, 'b' => 0));

        $newBookmark = new Bookmark(array(
            'title' => $this->configParams['NEW_BOOKMARK_TITLE'],
            'italic' => true,
            'bold' => false,
            'links' => array( $bookmarkLink ),
            'color' => $bookmarkColor,
            'action' => LinkActionType::GO_TO_ACTION,
            'level' => 1,
            'pageDisplayLeft' => 83,
            'pageDisplayTop' => 751,
            'pageDisplayZoom' => 2,
            'pageNumber' => $this->configParams['NEW_BOOKMARK_PAGE_NUMBER']
        ));

        $response = $this->pdfApi->postBookmark( $this->configParams['PDF_DOCUMENT_NAME'], $this->configParams['PARENT_BOOKMARK_FOR_APPEND'], array( $newBookmark ) );

        if ($response->getCode() === 200 && null !== $response->getBookmarks()->getList()) {
            $bookmarks = $response->getBookmarks()->getList();
            $addedBookmark = end($bookmarks);
            echo "Appended bookmark: {$addedBookmark->getLinks()[0]->getHref()} => {$addedBookmark->getTitle()}\n";
            return $addedBookmark;
        } else {
            echo "Failed to append bookmark.";
        }
    }

    function main() {
        global $configParams;

        try {
            $pdfBookmarks = new PdfBookmarks($configParams);
            $pdfBookmarks->uploadDocument();
            $pdfBookmarks->appendBookmarkLink();
            $pdfBookmarks->downloadResult();
        } catch (\Exception $e) {
            echo "Error: " . $e->getMessage() . "\n";
        }
    }
 

Work with Bookmarks in PDF

Adding bookmarks to a PDF significantly improves document usability by enhancing navigation, organization, and accessibility. It is essential for large documents, ensuring users can efficiently find and access relevant content. Add the Bookmarks into PDF documents with Aspose.PDF Cloud PHP SDK.

With our PHP library you can:

  • Add PDF document’s header & footer in text or image format.
  • Add tables & stamps (text or image) to PDF documents.
  • Append multiple PDF documents to an existing file.
  • Work with PDF attachments, annotations, & form fields.
  • Apply encryption or decryption to PDF documents & set a password.
  • Delete all stamps & tables from a page or entire PDF document.
  • Delete a specific stamp or table from the PDF document by its ID.
  • Replace single or multiple instances of text on a PDF page or from the entire document.
  • Extensive support for converting PDF documents to various other file formats.
  • Extract various elements of PDF files & make PDF documents optimized.
  • You can try out our free App to test the functionality online.