public function compile( $path_to_ps ) {

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

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

		$invocation = $this->invocation(
			$this->sku,
			null,
			null,
			$this->textFont,
			$this->textSize
		);

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