Html 使用DOMPDF以pdf格式打开页面

Html 使用DOMPDF以pdf格式打开页面,html,css,dompdf,Html,Css,Dompdf,我目前正在开发一个半动态页面,我使用一些GET功能对其进行个性化设置。我也在几个地方重复这个日期。在这个页面的底部,我想有一个按钮,让访问者可以选择下载/打开这个PDF格式的页面。没有标题。我集成了DOMPDF,但我无法让它正常工作,需要一些帮助。我在Stackoverflow上尝试了一些方法,但没有成功 在基本上,我需要在PDF打印的整个页面,但它不应该打开页面加载时。但是由按钮触发。然后没有标题(一个特殊的div)。这可能吗 <?php require_once("dompdf

我目前正在开发一个半动态页面,我使用一些GET功能对其进行个性化设置。我也在几个地方重复这个日期。在这个页面的底部,我想有一个按钮,让访问者可以选择下载/打开这个PDF格式的页面。没有标题。我集成了DOMPDF,但我无法让它正常工作,需要一些帮助。我在Stackoverflow上尝试了一些方法,但没有成功

在基本上,我需要在PDF打印的整个页面,但它不应该打开页面加载时。但是由按钮触发。然后没有标题(一个特殊的div)。这可能吗

<?php
    require_once("dompdf/dompdf_config.inc.php");

    $html =
        '<html><body>'.
        '<p>This is a test for '.
        '<?php echo htmlentities(substr(urldecode($_SERVER["QUERY_STRING"]), 1)); ?> </p>'.
        '<p>Thank you for reading.</p>'.
        '</body></html>';

    $dompdf = new DOMPDF();
    $dompdf->load_html($html);
    $dompdf->render();
    $dompdf->stream("the_inquiry.pdf");
    return true;
    ?>
<html>
<body>
<div class="shouldnotPrintToPDF">
Content.
</div>
<div class="shouldPrintToPDF">
Sensitive content.
<a href="the_inquiry.pdf">Open or save as PDF</a>
</div>
</body>
</html>
你知道这可能是由什么引起的吗

突破:


当我激活DOMPDF_DPI时,它实际上是以PDF格式打开的,但现在所有的文本都出现在PDF第二页的第一行。比如,所有的文本都是在彼此的上面出现的。此外,当它打开PDF时,&PDF=1包含在htmlentities查询字符串中,该字符串看起来非常凌乱,因为它应该是一个个性化页面以及PDF。

您可以将dompdf设置为解析标准媒体类型(屏幕、打印、语音等)的CSS@media查询。默认情况下,dompdf解析“屏幕”媒体类型样式,但您可以在配置文件中对此进行更改。请参阅配置设置。然后,您只需要传递原始URL查询字符串,并附加一个变量,告诉页面呈现为PDF格式。如果您的原始URL类似于
the_inquiry.php?name=Joe
,那么您的PDF URL可能是
the_inquiry.php?name=Joe&PDF=1

然后,您的代码将类似于以下内容:

<?php
ob_start();
?>
<html>
<head>
  <style>
    @media print {
      .shouldnotPrintToPDF, .pdflink { display: none; }
    }
  </style>
</head>
<body>
  <div class="shouldnotPrintToPDF">
    Content.
  </div>
  <div class="shouldPrintToPDF">
    Sensitive content.
    <a href="<?php echo $_SERVER['PHP_SELF'] , '?' , http_build_query( $_GET ); ?>&amp;pdf=1" class="pdflink">Open or save as PDF</a>
  </div>
</body>
</html>
<?php
if ( isset( $_GET['pdf'] ) ) {
  require_once 'dompdf/dompdf_config.inc.php';
  $html = ob_get_clean();
  $dompdf = new DOMPDF();
  $dompdf->load_html($html);
  $dompdf->render();
  $dompdf->stream("the_inquiry.pdf");
}
?>

@媒体印刷品{
.shouldnotPrintToPDF、.pdflink{display:none;}
}
内容。
敏感内容。

您可以设置dompdf来解析标准媒体类型(屏幕、打印、语音等)的CSS@media查询。默认情况下,dompdf解析“屏幕”媒体类型样式,但您可以在配置文件中对此进行更改。请参阅配置设置。然后,您只需要传递原始URL查询字符串,并附加一个变量,告诉页面呈现为PDF格式。如果您的原始URL类似于
the_inquiry.php?name=Joe
,那么您的PDF URL可能是
the_inquiry.php?name=Joe&PDF=1

然后,您的代码将类似于以下内容:

<?php
ob_start();
?>
<html>
<head>
  <style>
    @media print {
      .shouldnotPrintToPDF, .pdflink { display: none; }
    }
  </style>
</head>
<body>
  <div class="shouldnotPrintToPDF">
    Content.
  </div>
  <div class="shouldPrintToPDF">
    Sensitive content.
    <a href="<?php echo $_SERVER['PHP_SELF'] , '?' , http_build_query( $_GET ); ?>&amp;pdf=1" class="pdflink">Open or save as PDF</a>
  </div>
</body>
</html>
<?php
if ( isset( $_GET['pdf'] ) ) {
  require_once 'dompdf/dompdf_config.inc.php';
  $html = ob_get_clean();
  $dompdf = new DOMPDF();
  $dompdf->load_html($html);
  $dompdf->render();
  $dompdf->stream("the_inquiry.pdf");
}
?>

@媒体印刷品{
.shouldnotPrintToPDF、.pdflink{display:none;}
}
内容。
敏感内容。

显示您的代码。您到底尝试了什么?刚才添加了一些信息,无法粘贴整个页面,因为它包含一些什么敏感信息。显示您的代码。您到底尝试了什么?刚才添加了一些信息,无法粘贴整个页面,因为它包含一些敏感信息。当我完全按照您在此处执行的操作时,我收到一个错误“此服务器上找不到请求的URL/inquiry.php&pdf=1”。我有我尝试在根级别以pdf格式打印的页面,但DOMPDF位于/DOMPDF中。。“我不知道这是否与此有关?”约翰·埃利亚森:啊,对不起。我忘记了URL中的“?”,应该是
inquiry.php?&pdf=1
。我更新了代码示例。你能看看我的更新并告诉我我做错了什么吗?@John EilifEliassen你是否将$\u dompdf\u debug设置为true?如果是这样,请确保禁用所有调试选项。嗨@BrianS,什么调试?我在dompdf_config.custom.inc.php中找到了(DEBUG_布局、DEBUGCSS、DEBUGKEEPTEMP、DEBUGPNG)。有些是真的,有些是假的。在第357行的dompdf_config.inc.php中,我有以下内容:global$\u dompdf_debug$_dompdf_debug=false;所以我想我的debug设置为false。当我完全按照您在这里执行的操作时,我得到一个错误“请求的URL/inquiry.php&pdf=1在此服务器上找不到”。我有我试图在根级别上以pdf打印的页面,但DOMPDF在/DOMPDF中。。“我不知道这是否与此有关?”约翰·埃利亚森:啊,对不起。我忘记了URL中的“?”,应该是
inquiry.php?&pdf=1
。我更新了代码示例。你能看看我的更新并告诉我我做错了什么吗?@John EilifEliassen你是否将$\u dompdf\u debug设置为true?如果是这样,请确保禁用所有调试选项。嗨@BrianS,什么调试?我在dompdf_config.custom.inc.php中找到了(DEBUG_布局、DEBUGCSS、DEBUGKEEPTEMP、DEBUGPNG)。有些是真的,有些是假的。在第357行的dompdf_config.inc.php中,我有以下内容:global$\u dompdf_debug$_dompdf_debug=false;所以我想我的debug设置为false。