phpword 转 pdf

作者: 响呼雷 | 来源:发表于2021-05-18 10:14 被阅读0次

    前提:安装phpword、tcpdf

    须知:我并不是直接生成pdf的,布局什么太难受了,而且高度还有要求。这里是word转pdf,html转pdf,phpword可以直接生成word和html的,看了开发文档没有pdf,只有一行注释“/* Note: we skip PDF, because "HTML-to-PDF" approach is used to create PDF documents. */”,phpword开放文档

    word转pdf

    //不配置TCPDF路径报错
    $PdfPath = App::getRootPath().'/vendor/tecnickcom/tcpdf';
    \PhpOffice\PhpWord\Settings::setPdfRendererPath($PdfPath);
    \PhpOffice\PhpWord\Settings::setPdfRendererName('TCPDF');
    //这里是你的word文件
    $phpWord = \PhpOffice\PhpWord\IOFactory::load(App::getRootPath()."/public/西气东输2021-05-17.docx");
    $xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord , 'PDF');
    $xmlWriter->save('result.pdf');
    

    html转pdf

    $orientation='P';
    $unit='mm';
    $format='A4';
    $unicode=true;
    $encoding='UTF-8';
    $diskcache=false;
    $pdfa=false;
    $pdf = new \TCPDF($orientation, $unit, $format, $unicode, $encoding, $diskcache, $pdfa);
    //中文乱码必须设置
    $pdf->SetFont('stsongstdlight');
    $pdf->AddPage();
    $html = file_get_contents(App::getRootPath().'public/'.'西气东输2021-05-17.html');
    $pdf->writeHTMLCell(0, 0, 0, 0, $html, 0, 0, false, false, '', false);
    $fn = 'demo.pdf';
    $pdfcontent = $pdf->Output('demo.pdf', 'S');
    $fh = fopen($fn, "w");
    fwrite($fh, $pdfcontent);
    fclose($fh);
    

    中文乱码

    //方法一:如html转pdf
    $pdf->SetFont('stsongstdlight');
    //方法二:如word转pdf,需要到  tcpdf/config/tcpdf_config.php 中配置
    define ('PDF_FONT_NAME_MAIN', 'stsongstdlight');
    define ('PDF_FONT_NAME_DATA', 'stsongstdlight');
    

    添加字体(stsongstdlight字体太黑了,这里下载了微软雅黑)

    1.到网上下载对应的字体, 我下载的微软雅黑
    2.把字体下载到tcptf\tools文件夹下面,有个tcpdf_addfont.php, 是web转换工具
    3.在这个目录下, 左手按着shift, 右手点击右键选择 在此处打开 命令窗口
    4.php ./tcpdf_addfont.php -b -t TrueTypeUnicode -f 97 -i msyh.ttf
    5.这时就成功的把ttf字体转换到fonts文件夹下, 成为tcpdf可支持的字体了,同理, 也可以嵌入其它字体了
    6.$pdf->SetFont('msyh', '', 10, '', true); //你就可以>中文乱码

    相关文章

      网友评论

        本文标题:phpword 转 pdf

        本文链接:https://www.haomeiwen.com/subject/nqeejltx.html