Я хотел бы динамически создавать PDF-файлы из контента в WordPress (немного упрощенном ниже), где div
называемый «рецептом», является тем, что я хочу отправить в DOMPDF ( не весь пост):
<div class="post"> <div> <!-- some stuff I don't want in the PDF --> </div> <div class="recipe"> <?php more_fields('recipe-name'); ?> <?php more_fields('recipe-method'); ?> <a href="<?php /*something here that calls DOMPDF, delivers the contents of #recipe, and causes render and stream of PDF to browser.*/ ?>" class="print-recipe">Get a PDF of this recipe.</a> </div> </div>
Никогда раньше не работал с PHP-библиотекой, и мне просто не хватало, как это сделать. Документация здесь . Заранее благодарю всех, кто хочет помочь.
Вам нужно написать отдельный скрипт, который генерирует PDF, когда ему присваивается соответствующий идентификатор рецепта, а затем ссылается на него со своей текущей HTML-страницы. Похоже, вы боретесь, потому что пытаетесь сделать все это на одной странице.
Я не особенно знаком с WordPress, поэтому я предлагаю использовать буфер для вывода HTML: (untested)
recipe_pdf.php
<? /* wordpress initializers go here */ require_once("dompdf_config.inc.php"); // or whatever your path is $id = $_GET['id']; //requested recipe ID /* fetch recipe data here */ ob_start(); // begin buffering PDF content ?> **output recipe HTML to be used for PDF generation here** <? $html = ob_get_clean(); // grab buffered content and stop buffering //create and output the PDF as a stream (download dialog) $dompdf = new DOMPDF(); $dompdf->load_html($html); $dompdf->render(); $filename = "your-recipe-filename.pdf"; $dompdf->stream($filename); ?>
Рецепт HTML-файла
... <div class="recipe"> <?php more_fields('recipe-name'); ?> <?php more_fields('recipe-method'); ?> <a href="recipe_pdf.php?id=<? // output recipe ID ?>"> Get a PDF of this recipe. </a> </div> ...
На веб-сайте, на который вы смотрите, щелчок по ссылке просто вызывает скрипт dompdf.php с указанием пути к рассматриваемому файлу HTML. Целью ссылки является iframe, называемый «предварительный просмотр». На самом деле это не делает никаких преобразований внутри самой страницы, если это то, о чем вы думаете.
если вы используете jQuery, вы можете выбрать рецепт html следующим образом:
$('.recipe').html();
и просто создайте форму с ссылкой actin на вашу страницу библиотеки dompdf