确切的HTML到pdf转换

时间:2016-12-08 14:25:54

标签: php pdf rendering

我正在编写一个应用程序(使用Laravel框架),用户手动设计海报,传单和其他一些可打印的东西。所以我制作了一个允许上面的JavaScript工具。在后端我必须使它可以打印,所以我试图将其转换为PDF格式。那就是出现问题的地方,即:

  1. html设计是用px制作的,到目前为止我还不知道如何重新计算到pdf操作的mm,
  2. 字体与renderet不同 等
  3. 我尝试使用https://github.com/dompdf/dompdfhttps://github.com/barryvdh/laravel-snappy(使用http://wkhtmltopdf.org/)但两者都提供类似的输出。

    有人知道如何将浏览器中制作的内容转换为可打印版本的解决方案吗?

2 个答案:

答案 0 :(得分:0)

使用此公式将pix转换为mm:

$witnInMM = floor(($withInPx * 25.4) / $dpi]);
$heightInMM = floor(($heightInPx * 25.4) / $dpi]);

此外,我正在开展一个类似的项目并将图像转换为pdf我正在使用Imagick。我尝试过轻快的laravel,但没有使用CMYK颜色。

答案 1 :(得分:0)

我建议您使用Aspose.PDF Cloud SDK for PHP将HTML呈现为PDF。 这是一个快速的example

<?php
require_once realpath(__DIR__ . '/..') . '/vendor/autoload.php';
require_once realpath(__DIR__ . '/..') . '/Utils.php';
use Aspose\PDF\PdfApi;
use Aspose\PDF\AsposeApp;
class Document {
    public $pdfApi;
    public function __construct() {
        AsposeApp::$appSID = Utils::appSID;
        AsposeApp::$apiKey = Utils::apiKey;
        $this->pdfApi = new PdfApi();
    }
    public function createPDFFromHTML() {
        // Upload file to Aspose Cloud Storage
        $fileName = "output.pdf";
        $templateFile = "input.html";
        Utils::uploadFile($templateFile);
        $result = $this->pdfApi->PutCreateDocument($fileName, $templateFile, $dataFile = null, $templateType = "html", $storage = "", $folder = "");
        print_r ( $result );
    }
}
$document = new Document();
$document->createPDFFromHTML();
?>

希望有帮助。否则,随时问我。

注意:我是Aspose的开发人员布道者。