【发布时间】:2014-01-07 17:31:34
【问题描述】:
我刚刚接到命令“制作一个按钮,单击该按钮会在用户当前看到的页面之外创建一个 pdf。这是一家地毯公司,他们想要一个 PDF 按钮,单击该按钮会创建一个 pdf带有页面标题/地毯/地毯描述等。
需要明确的是,这都是在 Wordpress 中的动态数据。我还没有找到可以做我想做的插件,我手动尝试。
总的来说,这是我尝试过的:
我这样做的方法如下: - 一方面,我使用的是 DOMPDF。在下面,它创建了pdf。这存在于一个名为 "createpdf.php"
的文件中$htmlToPdf = //MY HTML HERE\\ ;
$dompdf = new DOMPDF();
$dompdf->load_html( $htmlToPdf );
$dompdf->render();
$dompdf->stream("sample.pdf");
$htmlToPdf = //MY HTML HERE\\ ; 的部分是我的 HTML 所在的位置。
现在因为这是 WordPress,我正在通过简单的 WP 循环生成页面内容,如下所示:
<!-- post starts here -->
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="post">
<h2 class="post-title"><?php the_title(); ?></h2>
<span class="meta"><?php _e('Published'); ?> <?php the_time('F j, Y'); ?> <?php _e('in'); ?> <?php the_category(', ') ?></span>
<div class="entry">
<?php the_content(); ?>
</div><!-- end entry -->
</div><!-- end post -->
<?php endwhile; endif;?>
<!-- post ends here -->
现在,我想做的是从页面中取出重要的部分,即内容包装器(包括循环)并将其粘贴到一个名为(如上所示)$htmlToPdf = //MY HTML HERE\\ ; 的 PHP 变量中,然后将该变量回显到页面(single.php)。这样,页面向用户显示正常,但额外的好处是内容现在位于变量中,因此当用户单击“创建 pdf 按钮”时,它将获取页面当前内容并将其发送到“ createpdf.php" 通过按钮之类的东西
等等。 然后我可以这样做:
$htmlToPdf = $_GET['maketopdf'];
然后将 $htmlToPdf 推向 pdf 创建。
我越来越糊涂了哈哈……
所以我把内容放在一个像这样的变量中:
<?php
$htmlToPdf = '
<!-- post starts here -->
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="post">
<h2 class="post-title"><?php the_title(); ?></h2>
<div class="entry">
<?php the_content(); ?>
</div><!-- end entry -->
</div><!-- end post -->
<?php endwhile; endif;?>
<!-- post ends here --> ';
echo $htmlToPdf;
?>
现在的问题是,不,我没有出现页面错误,但内容列上也没有显示任何内容。页面加载正常,但内容应该在的地方却是空的。
我怎样才能让它在 single.php 上正常显示?同时仍在使用我上面尝试的方法。
希望这不会太混乱。 任何帮助是极大的赞赏。提前致谢。
【问题讨论】: