Maison > développement back-end > tutoriel php > Comment utiliser PHP pour convertir des documents Word en HTML et PDF

Comment utiliser PHP pour convertir des documents Word en HTML et PDF

墨辰丷
Libérer: 2023-03-25 19:52:02
original
4833 Les gens l'ont consulté

Cet article présente principalement comment utiliser PHP pour convertir des documents Word en HTML et PDF. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

1 : Utilisez phpword pour générer des documents Word. Les étapes spécifiques sont les suivantes :

Configuration de l'environnement d'installation :

 **必须安装:**
Copier après la connexion

1.
2. Extension de l'analyseur XML
3. Composant ZendEscaper
4. Composant ZendStdlib
5. Composant ZendValidator
Installation sélective :
Extension Zip (extension requise par le modèle de modèle)
Extension GD
Extension XMLWriter
Extension XSL
Bibliothèque dompdf

Vous pouvez aller sur https://packagist.org/ pour trouver la bibliothèque de packages php requise.

Vous pouvez installer PHPword via composer, composer require phpofficephpword;
Vous pouvez également ajouter une dépendance sur PHPword directement dans le fichier de configuration :

{ 
    “require” : { 
       “phpoffice / phpword” : “v0.14。*” 
    } 
}
Copier après la connexion

Puis exécutez composer update, (composer version Trop basse, utilisez composer self-update)

Utilisation :

//设置默认样式
$phpWord->setDefaultFontName('仿宋');//字体
$phpWord->setDefaultFontSize(16);//字号

//添加页面
$section = $phpWord->createSection();

//添加目录
$styleTOC  = ['tabLeader' => \PhpOffice\PhpWord\Style\TOC::TABLEADER_DOT];
$styleFont = ['spaceAfter' => 60, 'name' => 'Tahoma', 'size' => 12];
$section->addTOC($styleFont, $styleTOC);

//默认样式
$section->addText('Hello PHP!');
$section->addTextBreak();//换行符

//指定的样式
$section->addText(
    'Hello world!',
    [
        'name' => '宋体',
        'size' => 16,
        'bold' => true,
    ]
);
$section->addTextBreak(5);//多个换行符

//自定义样式
$myStyle = 'myStyle';
$phpWord->addFontStyle(
    $myStyle,
    [
        'name' => 'Verdana',
        'size' => 12,
        'color' => '1BFF32',
        'bold' => true,
        'spaceAfter' => 20,
    ]
);
$section->addText('Hello laravel!', $myStyle);
$section->addText('Hello Vue.js!', $myStyle);
$section->addPageBreak();//分页符

//添加文本资源
$textrun = $section->createTextRun();
$textrun->addText('加粗', ['bold' => true]);
$section->addTextBreak();//换行符
$textrun->addText('倾斜', ['italic' => true]);
$section->addTextBreak();//换行符
$textrun->addText('字体颜色', ['color' => 'AACC00']);

//列表
$listStyle = ['listType' => \PhpOffice\PhpWord\Style\ListItem::TYPE_NUMBER];
$section->addListItem('List Item I', 0, null, 'listType');
$section->addListItem('List Item I.a', 1, null, 'listType');
$section->addListItem('List Item I.b', 1, null, 'listType');
$section->addListItem('List Item I.c', 2, null, 'listType');
$section->addListItem('List Item II', 0, null, 'listType');
$section->addListItem('List Item II.a', 1, null, 'listType');
$section->addListItem('List Item II.b', 1, null, 'listType');

//超链接
$linkStyle = ['color' => '0000FF', 'underline' => \PhpOffice\PhpWord\Style\Font::UNDERLINE_SINGLE];
$phpWord->addLinkStyle('myLinkStyle', $linkStyle);
$section->addLink('http://www.baidu.com', '百度一下', 'myLinkStyle');
$section->addLink('http://www.baidu.com', null, 'myLinkStyle');

//添加图片
$imageStyle = ['width' => 480, 'height' => 640, 'align' => 'center'];
$section->addImage('./img/t1.jpg', $imageStyle);
$section->addImage('./img/t2.jpg',$imageStyle);

//添加标题
$phpWord->addTitleStyle(1, ['bold' => true, 'color' => '1BFF32', 'size' => 38, 'name' => 'Verdana']);
$section->addTitle('标题1', 1);
$section->addTitle('标题2', 1);
$section->addTitle('标题3', 1);

//添加表格
$styleTable = [
    'borderColor' => '006699',
    'borderSize' => 6,
    'cellMargin' => 50,
];
$styleFirstRow = ['bgColor' => '66BBFF'];//第一行样式
$phpWord->addTableStyle('myTable', $styleTable, $styleFirstRow);

$table = $section->addTable('myTable');
$table->addRow(400);//行高400
$table->addCell(2000)->addText('学号');
$table->addCell(2000)->addText('姓名');
$table->addCell(2000)->addText('专业');
$table->addRow(400);//行高400
$table->addCell(2000)->addText('2015123');
$table->addCell(2000)->addText('小明');
$table->addCell(2000)->addText('计算机科学与技术');
$table->addRow(400);//行高400
$table->addCell(2000)->addText('2016789');
$table->addCell(2000)->addText('小傻');
$table->addCell(2000)->addText('教育学技术');

//页眉与页脚
$header = $section->createHeader();
$footer = $section->createFooter();
$header->addPreserveText('页眉');
$footer->addPreserveText('页脚 - 页数 {PAGE} - {NUMPAGES}.');
//生成的文档为Word2007$writer = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$writer->save('./word/hello.docx');
Copier après la connexion
//Word转HTML
$phpWord = \PhpOffice\PhpWord\IOFactory::load('./word/hello.docx');        
$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, "HTML");        
$xmlWriter->save('./html/hello.html');
Copier après la connexion

Deux : Utilisez tcpdf pour générer un pdf
Utilisez composer pour installer : composer require tecnickcom/tcpdf

Utilisation :

$pdf = new \TCPDF();$pdf->writeHTML(&#39;<p>内容</p>&#39;); 
//输出PDF$pdf->Output(&#39;tt .pdf&#39;, &#39;I&#39;);
//I输出、D下载
Copier après la connexion

Recommandations associées :

Utilisation de la bibliothèque gensim word2vec en Python


Utilisez Python pour écrire et enregistrer des documents Word via Win32 COM

Instances d'utilisation de Python pour traiter MS Word

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal