【问题标题】:TCPDF generator full html css pageTCPDF 生成器完整的 html css 页面
【发布时间】:2017-03-30 12:15:38
【问题描述】:

我使用 TCPDF。我需要整页传输。

https://ctrlv.cz/shots/2016/11/16/bP51.png

我的输出现在看起来像这样。我现在不知道哪里有问题。他们需要使网站看起来与 html 页面完全相同(参见屏幕 1) https://ctrlv.cz/o0dx

我不知道问题出在哪里:-(

     data_request('htmlData'); //načti posledne hodnoty
    $style = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/css/styles.css');

    require_once 'TCPDF/tcpdf.php';
    $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// set document information
    $pdf->SetCreator(PDF_CREATOR);
    $pdf->SetAuthor('Nicola Asuni');
    $pdf->SetTitle('TCPDF Example 061');
    $pdf->SetSubject('TCPDF Tutorial');
    $pdf->SetKeywords('TCPDF, PDF, example, test, guide');

// set default header data
    $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE . ' 061', PDF_HEADER_STRING);

// set header and footer fonts
    $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
    $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// set default monospaced font
    $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

// set margins
    $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
    $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
    $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

// set auto page breaks
    $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

// set image scale factor
    $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

// set some language-dependent strings (optional)
    if (@file_exists(dirname(__FILE__) . '/lang/eng.php')) {
        require_once(dirname(__FILE__) . '/lang/eng.php');
        $pdf->setLanguageArray($l);
    }

// ---------------------------------------------------------
// set font
    $pdf->SetFont('helvetica', '', 10);

// add a page
    $pdf->AddPage();

    $htmlData = html_entity_decode($htmlData);
    $htmlData .= '<style>' . file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/css/styles.css') . '</style>';
// output the HTML content
    $pdf->writeHTML($htmlData, true, false, true, false, '');

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// reset pointer to the last page
    $pdf->lastPage();


// ---------------------------------------------------------
//Close and output PDF document

    $pdf->Output($_SERVER['DOCUMENT_ROOT'] . '/data/files/pdf/' . 'ocpdftesting.pdf', 'F');

【问题讨论】:

  • 您检查过 TCPDF 文档吗?
  • 在我查看的 TCPDF 文档中,我找不到任何东西。
  • 您的问题是黑色边框(在您的第二个屏幕中)对吗?
  • 是和不是。我的问题是,它似乎主要是一种完全不同的形式。他们需要做一个 1 Screen PDF。我在 jQuery 中提取了整个 html 并将他带到了 TCPDF + 加载样式。
  • 他们需要转换整个页面才能在 PDF 中看到一个屏幕看起来相同。使用 TCPDF

标签: javascript php html pdf tcpdf


【解决方案1】:

也许你应该尝试基于 webkit 的 PDF 生成器。有一个 API:https://pdfapi.io

这将创建与您在浏览器中看到的 HTML 相同的 PDF。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2020-04-18
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 2021-10-25
    • 2013-05-12
    相关资源
    最近更新 更多