public function compile( $path_to_ps ) {

		if ( empty( $this->isbnNumber ) ) {
			throw new \LogicException( '$this->isbnNumber is not set' );
		}

		$isbn = \Pressbooks\Utility\get_contents( PB_PLUGIN_DIR . 'symbionts/postscriptbarcode/isbn.ps' );

		$invocation = $this->invocation(
			$this->isbnNumber,
			$this->isbnTextFont,
			$this->isbnTextSize,
			$this->textFont,
			$this->textSize
		);

		// @codingStandardsIgnoreStart
		file_put_contents( $path_to_ps, $isbn );
		file_put_contents( $path_to_ps, $invocation, FILE_APPEND | LOCK_EX );
		file_put_contents( $path_to_ps, ( "\n" . 'showpage' ), FILE_APPEND | LOCK_EX );
		// @codingStandardsIgnoreEnd
	}