RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1102800
Accepted
MaNa
MaNa
Asked:2020-03-30 19:34:39 +0000 UTC2020-03-30 19:34:39 +0000 UTC 2020-03-30 19:34:39 +0000 UTC

使用 dompdf 创建 pdf 文件时,不会将图像添加到 pdf 文件中

  • 772

这样的问题,你需要创建一个html页面,显示给用户,并以pdf的形式保存在服务器上。对于这个任务,我使用 dompdf。文字和表格显示正确,但是图片有问题: 在此处输入图像描述

页面代码:

     <meta charset="UTF-8">
<!DOCTYPE html>
<html lang="en">
<?php
    ob_start();
?>
<?php 
       $path = 'http://localhost/object_calculator/header.jpg';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
       ?>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script type="text/javascript" src="js/script.js"></script>
    <title>Document</title>


</head>
<body>
   <div class="list_1">
      <header>
        <img style="width:100%; height:387px"alt="" src=<?php echo $base64 ?>>
    </header>
    <div class="middle">
      <h1 style="margin-left:4.5%">Коммерческие условия поставки:</h1>
        <br>

  <footer>
    <img src="img/footer.jpg" style="width:90%; margin-left: 4.5%;" alt="">
  </footer>
</div> 
</body>
<?php
  require_once "dompdf/dompdf_config.inc.php";
  $dompdf = new DOMPDF();
  $my_html =  ob_get_clean();
  echo $my_html;
  $dompdf->load_html($my_html);
  $dompdf->render();
  $output = $dompdf->output();
  file_put_contents("file.pdf", $output);

?>
</html>

可能是什么问题以及如何解决?我尝试使用base64,并且规定了完整路径

php
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    MaNa
    2020-04-01T00:39:22Z2020-04-01T00:39:22Z

    我必须下载 dompdf 0.8.0 的早期版本

    <?php
          $image = 'header.jpg';
          $imageData = base64_encode(file_get_contents($image));
          $src = 'data:'.mime_content_type($image).';base64,'.$imageData;
          $my_html =  '
          <meta charset="UTF-8">
        <!DOCTYPE html>
        <html lang="en">
    
        <head>
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <script type="text/javascript" src="js/script.js"></script>
            <title>Document</title>
    
            <style>
              html, body{
                box-sizing: border-box;
                margin:0;
                padding:0;
              }
              body{
                background:#3d3d3d;
              }
              .list_1{
                width:70%;
                margin-left: 15%;
                margin-top:2%;
                background:white;
              }
              .tab{
                margin-top: 1%;
                margin-left: 4.6%;
                width:90%;
                text-align: center;
                font-weight: bolder;
              }
              td{
                padding:20px
              }
              tr{
    
              }
              body { font-family: DejaVu Sans, sans-serif; }
            </style>
        </head>
        <body onload="load()">
           <div class="list_1">
              <header>
                <img style="width:100%; height:387px"alt="" src="' .$src. '">
            </header>
            <div class="middle">
              <h1 style="margin-left:4.5%">Коммерческие условия поставки:</h1>
                <br>
                <table class="summa tab" border="1">
                  <tr>
                    <th>Наименование продукции</th>
                    <th>Сумма с НДС, руб</th>
                    <th>Количество</th>
                    <th>Сумма с НДС, руб</th>
                  </tr>
                  <tr>
                    <td>Понтон модульный</td>
                    <td id="col_p">16800</td>
                    <td id="shet_p">'. $_GET["shetpon"] .'</td>
                    <td id="shet_sum_p">0</td>
                  </tr>
                  <tr>
                    <td>Соеденитель понтона</td>
                    <td id="col_s">280</td>
                    <td id="shet_s">'.  $_GET["connector"].'</td>
                    <td id="shet_sum_s">0</td>
                  </tr>
                  <tr>
                    <td>Лестница с соеденителем</td>
                    <td id="col_st">18560</td>
                    <td id="shet_st">'.$_GET["stairs"] .'</td>
                    <td id="shet_sum_st">0</td>
                  </tr>
                  <tr>
                    <td>Сходня с переходником</td>
                    <td id="col_g">9400</td>
                    <td id="shet_g">'.$_GET["gangway"] .'</td>
                    <td id="shet_sum_g">0</td>
                  </tr>
                  <tr>
                    <td>Лавочка с соеденителями</td>
                    <td id="col_sit">12500</td>
                    <td id="shet_sit">'.$_GET["bench"].'</td>
                    <td id="shet_sum_sit">0</td>
                  </tr>
                  <tr>
                    <td>Утка</td>
                    <td id="col_u">20</td>
                    <td id="shet_u">'.$_GET["duck"] .'</td>
                    <td id="shet_sum_u">0</td>
                  </tr>
                  <tr>
                    <td>Стойка</td>
                    <td id="col_stay">890</td>
                    <td id="shet_stay">'.$_GET["stays"].'</td>
                    <td id="shet_sum_stay">0</td>
                  </tr>
                  <tr>
                    <td>ИТОГО</td>
                    <td></td>
                    <td id="final_col">0</td>
                    <td id="final_sum">'. $_GET["sum"].'</td>
                  </tr>
                </table>
            </div>
          <footer>
            <img src="img/footer.jpg" style="width:90%; margin-left: 4.5%;" alt="">
          </footer>
        </div> 
        <script type="text/javascript">
           function load(){
            document.getElementById("shet_sum_p").innerHTML= document.getElementById("shet_p").innerHTML * document.getElementById("col_p").innerHTML;
            document.getElementById("shet_sum_s").innerHTML= document.getElementById("shet_s").innerHTML * document.getElementById("col_s").innerHTML;
            document.getElementById("shet_sum_st").innerHTML= document.getElementById("shet_st").innerHTML * document.getElementById("col_st").innerHTML;
            document.getElementById("shet_sum_g").innerHTML= document.getElementById("shet_g").innerHTML * document.getElementById("col_g").innerHTML;
            document.getElementById("shet_sum_sit").innerHTML= document.getElementById("shet_sit").innerHTML * document.getElementById("col_sit").innerHTML;
            document.getElementById("shet_sum_u").innerHTML= document.getElementById("shet_u").innerHTML * document.getElementById("col_u").innerHTML;
            document.getElementById("shet_sum_stay").innerHTML= document.getElementById("shet_stay").innerHTML * document.getElementById("col_stay").innerHTML;
            document.getElementById("final_col").innerHTML= +document.getElementById("shet_p").innerHTML + +document.getElementById("shet_s").innerHTML + +document.getElementById("shet_st").innerHTML +  +document.getElementById("shet_g").innerHTML + +document.getElementById("shet_sit").innerHTML + +document.getElementById("shet_u").innerHTML + +document.getElementById("shet_stay").innerHTML;
           }
        </script>
        </body>
        </html>
          ';
          header('Content-language:en-GB');
          require_once "\dompdf\autoload.inc.php";
          use Dompdf\Dompdf;
          $dompdf = new Dompdf(array('enable_remote' => true));
          $dompdf->load_html($my_html);
          $dompdf->setPaper( 'A4', 'portrait' );
          $dompdf->render();
          //$output = $dompdf->output();
          //file_put_contents("file.pdf", $output);
          $dompdf->stream();
          echo $my_html;
        ?>
    
    • 1

相关问题

  • mysqli 类的对象无法转换为字符串

  • 您的系统中缺少 ext-http *,您的系统中缺少 ext-mysql_xdevapi *

  • 如何从csv中删除bom?

  • 当我按下 Enter 键时,如何让 PhpStorm 的 Emmet 插件触发,就像 VS Code 一样?

  • 注释在 Symfony5 中不起作用

  • 搜索最近的地理位置点

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5