当前位置: 首页 > news >正文

崇明专业做网站百度关键词怎么刷上去

崇明专业做网站,百度关键词怎么刷上去,三亚百度推广公司,平面广告设计专业的学校环境#xff1a;PHP 8.0 框架#xff1a;ThinkPHP 8 软件包#xff1a;phpoffice/phpword 、dompdf/dompdf 看了很多教程#xff08;包括GitHub的issue、stackoverflow#xff09;都没有解决、最终找到解决问题的根本#xff01; 背景#xff1a;用Word模板做转PDF…环境PHP 8.0   框架ThinkPHP 8   软件包phpoffice/phpword 、dompdf/dompdf 看了很多教程包括GitHub的issue、stackoverflow都没有解决、最终找到解决问题的根本 背景用Word模板做转PDF的时候中文乱码做法是先用模板替换好变量以后转成HTML再转成PDF。 解决方案 1、先将load_font.php放在项目根目录跟vendor同级 A、GITHUB下载地址 load_font.php B、新建文件load_font.php复制下面代码 ?php // 1. [Required] Point to the composer or dompdf autoloader require_once vendor/autoload.php;// 2. [Optional] Set the path to your font directory // By default dompdf loads fonts to dompdf/lib/fonts // If you have modified your font directory set this // variable appropriately. //$fontDir lib/fonts;// *** DO NOT MODIFY BELOW THIS POINT ***use Dompdf\Dompdf; use Dompdf\CanvasFactory; use Dompdf\Exception; use Dompdf\FontMetrics; use Dompdf\Options;use FontLib\Font;/*** Display command line usage*/ function usage() {echo EODUsage: {$_SERVER[argv][0]} font_family [n_file [b_file] [i_file] [bi_file]]font_family: the name of the font, e.g. Verdana, Times New Roman,monospace, sans-serif. If it equals to system_fonts, all the system fonts will be installed.n_file: the .ttf or .otf file for the normal, non-bold, non-italicface of the font.{b|i|bi}_file: the files for each of the respective (bold, italic,bold-italic) faces.If the optional b|i|bi files are not specified, load_font.php will search the directory containing normal font file (n_file) for additional files that it thinks might be the correct ones (e.g. that end in _Bold or b or B). If it finds the files they will also be processed. All files will be automatically copied to the DOMPDF font directory, and afm files will be generated using php-font-lib (https://github.com/PhenX/php-font-lib).Examples:./load_font.php silkscreen /usr/share/fonts/truetype/slkscr.ttf ./load_font.php Times New Roman /mnt/c_drive/WINDOWS/Fonts/times.ttfEOD; exit; }if ( $_SERVER[argc] 3 $_SERVER[argv][1] ! system_fonts ) {usage(); }$dompdf new Dompdf(); if (isset($fontDir) realpath($fontDir) ! false) {$dompdf-getOptions()-set(fontDir, $fontDir); }/*** Installs a new font family* This function maps a font-family name to a font. It tries to locate the* bold, italic, and bold italic versions of the font as well. Once the* files are located, ttf versions of the font are copied to the fonts* directory. Changes to the font lookup table are saved to the cache.** param Dompdf $dompdf dompdf main object * param string $fontname the font-family name* param string $normal the filename of the normal face font subtype* param string $bold the filename of the bold face font subtype* param string $italic the filename of the italic face font subtype* param string $bold_italic the filename of the bold italic face font subtype** throws Exception*/ function install_font_family($dompdf, $fontname, $normal, $bold null, $italic null, $bold_italic null) {$fontMetrics $dompdf-getFontMetrics();// Check if the base filename is readableif ( !is_readable($normal) )throw new Exception(Unable to read $normal.);$dir dirname($normal);$basename basename($normal);$last_dot strrpos($basename, .);if ($last_dot ! false) {$file substr($basename, 0, $last_dot);$ext strtolower(substr($basename, $last_dot));} else {$file $basename;$ext ;}if ( !in_array($ext, array(.ttf, .otf)) ) {throw new Exception(Unable to process fonts of type $ext.);}// Try $file_Bold.$ext etc.$path $dir/$file;$patterns array(bold array(_Bold, b, B, bd, BD),italic array(_Italic, i, I),bold_italic array(_Bold_Italic, bi, BI, ib, IB),);foreach ($patterns as $type $_patterns) {if ( !isset($$type) || !is_readable($$type) ) {foreach($_patterns as $_pattern) {if ( is_readable($path$_pattern$ext) ) {$$type $path$_pattern$ext;break;}}if ( is_null($$type) )echo (Unable to find $type face file.\n);}}$fonts compact(normal, bold, italic, bold_italic);$entry array();// Copy the files to the font directory.foreach ($fonts as $var $src) {if ( is_null($src) ) {$entry[$var] $dompdf-getOptions()-get(fontDir) . / . mb_substr(basename($normal), 0, -4);continue;}// Verify that the fonts exist and are readableif ( !is_readable($src) )throw new Exception(Requested font $src is not readable);$dest $dompdf-getOptions()-get(fontDir) . / . basename($src);if ( !is_writeable(dirname($dest)) )throw new Exception(Unable to write to destination $dest.);echo Copying $src to $dest...\n;if ( !copy($src, $dest) )throw new Exception(Unable to copy $src to $dest);$entry_name mb_substr($dest, 0, -4);echo Generating Adobe Font Metrics for $entry_name...\n;$font_obj Font::load($dest);$font_obj-saveAdobeFontMetrics($entry_name.ufm);$font_obj-close();$entry[$var] $entry_name;}// Store the fonts in the lookup table$fontMetrics-setFontFamily($fontname, $entry);// Save the changes$fontMetrics-saveFontFamilies(); }// If installing system fonts (may take a long time) if ( $_SERVER[argv][1] system_fonts ) {$fontMetrics $dompdf-getFontMetrics();$files glob(/usr/share/fonts/truetype/*.ttf) glob(/usr/share/fonts/truetype/*/*.ttf) glob(/usr/share/fonts/truetype/*/*/*.ttf) glob(C:\\Windows\\fonts\\*.ttf) glob(C:\\WinNT\\fonts\\*.ttf) glob(/mnt/c_drive/WINDOWS/Fonts/);$fonts array();foreach ($files as $file) {$font Font::load($file);$records $font-getData(name, records);$type $fontMetrics-getType($records[2]);$fonts[mb_strtolower($records[1])][$type] $file;$font-close();}foreach ( $fonts as $family $files ) {echo Installing $family... \n;if ( !isset($files[normal]) ) {echo No normal style font file\n;}else {install_font_family($dompdf, $family, $files[normal], $files[bold], $files[italic], $files[bold_italic]);echo Done !\n;}echo \n;} } else {call_user_func_array(install_font_family, array_merge( array($dompdf), array_slice($_SERVER[argv], 1) )); }2、下载配置字体 下载地址simsun 下载之后将ttf字体文件放到项目根目录跟load_font、vendor同级这里我改名改成了SimSun.ttf 执行PHP命令 php load_font.php SimSun SimSun.ttf 显示如下 php load_font.php SimSun SimSun.ttf Unable to find bold face file. Unable to find italic face file. Unable to find bold_italic face file. Copying SimSun.ttf to D:\phpstudy_pro\WWW\newcrm.com\vendor\dompdf\dompdf/lib/fonts/SimSun.ttf... Generating Adobe Font Metrics for D:\phpstudy_pro\WWW\newcrm.com\vendor\dompdf\dompdf/lib/fonts/SimSun... 如果php命令有问题检查一下是不是没有配置环境变量没有配置的话另行寻找配置教程 3、PHP代码如下 public function test(){$path /storage/contract/ . date(Ymd);$directoryPath public_path() . $path;if (!file_exists($directoryPath)) {mkdir($directoryPath, 0755, true);}$options new Options();$options-set(isRemoteEnabled, true);// 重点设置字体$options-setDefaultFont(SimSun);$dompdf new Dompdf($options);$htmlFile $directoryPath . /index.html;$htmlContent file_get_contents($htmlFile);$dompdf-loadHtml($htmlContent,UTF-8);$dompdf-setPaper(A4);$dompdf-render();$pdfName index.pdf;$pathToSavePdf $directoryPath . / . $pdfName;$output $dompdf-output();file_put_contents($pathToSavePdf, $output);} !DOCTYPE html html langen headmeta http-equivContent-Type contenttext/html; charsetutf-8meta http-equivX-UA-Compatible contentIEedgetitle/title /head body div世界和平 /div /body /html 生成PDF后 下面配一个WORD模板(动态变量)-转HTML-生成PDF文件 public function generateContract($param): array{$contract $this-contractModel-with([customer,contacts])-where(id, $param[id])-find();if (!$contract) {throw new BusinessException(Code::NOT_FOUND, 合同订单不存在);}$contract $contract-toArray();$file public_path() . /static/template/contract/2024.docx;$templateProcessor new TemplateProcessor($file);$templateProcessor-setValue(customer, $contract[customer_name]);$templateProcessor-setValue(address, $contract[customer_city] . $contract[customer_address]);$path /storage/contract/ . date(Ymd);$directoryPath public_path() . $path;if (!file_exists($directoryPath)) {mkdir($directoryPath, 0755, true);}$name $contract[code] . mt_rand(1000, 9999);$wordName $name . .docx;$pathToSave $directoryPath . / . $wordName;$templateProcessor-saveAs($pathToSave);// 转换 Word 文件为 HTML$phpWord IOFactory::load($pathToSave);$htmlWriter IOFactory::createWriter($phpWord, HTML);$htmlFile $directoryPath . / . $name . .html;$htmlWriter-save($htmlFile);// 使用 Dompdf 将 HTML 转换为 PDF$options new Options();$options-set(isRemoteEnabled, true);$options-setDefaultFont(SimSun);$dompdf new Dompdf($options);$htmlFile $directoryPath . / . $name . .html;$htmlContent file_get_contents($htmlFile);$dompdf-loadHtml($htmlContent,UTF-8);$dompdf-setPaper(A4);$dompdf-render();$pdfName $name . .pdf;$pathToSavePdf $directoryPath . / . $pdfName;$output $dompdf-output();file_put_contents($pathToSavePdf, $output);// 删除临时 HTML 文件unlink($htmlFile);return [url $path . / . $pdfName];} 注doc文件不兼容用docx模板文件
http://www.w-s-a.com/news/497708/

相关文章:

  • 公司做企业网站互联网建网站
  • 建网站需要的费用公司注册后怎么做网站
  • 宣传电脑的网站开发运动网站建设教程
  • 网站建设公司都会有哪些花销做网站公司商丘
  • 网站风格有哪些软件定制和开发
  • 公司网络维护具体做什么河南网站推广优化公司哪家好
  • 中学生制作的网站常平哪里有招计算机网站开发的
  • 原创网站模版苏州响应式网站建设
  • 做海报在哪个网站可以找素材网址申请注册方法
  • 网站建设分哪些类别别人做的网站不能用
  • 做网站网站会怎么样全国高校校园网站联盟建设
  • 整站下载器 做网站地图地产项目网站设计
  • 创意设计网站公司手机wap网站建设多少钱
  • 甘肃省第八建设集团公司网站seo高级优化方法
  • 精美的商城网站介绍最多人用的wordpress子主题
  • 检察门户网站建设情况俄外长抵达北京
  • 老电脑做网站服务器网站在线留言如何做
  • 南宁广告公司网站建设小程序源码破解
  • 沛县做网站xlec网站建设开发方式包括哪些方面
  • 山西网站建设 哪家好四川城乡和建设厅网站
  • 有瀑布流的网站小型商城网站
  • 百石网怎么做网站二次开发软件
  • 网站域名是什么东西制作网页哪家好
  • 合肥网站建设团队简述网站内容管理流程
  • 网站广告是内容营销吗wordpress增加背景图片
  • 网站建设技术jsp课程设计响应式布局网站开发
  • 东莞网站排名优化seo套路网站怎么做的
  • 我做网站网络建站一般多少钱
  • 如何快速提升网站关键词排名房地产网站开发毕业设计
  • 做网站 提交源码 论坛sem分析是什么意思