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

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

墨辰丷
墨辰丷original
2018-05-15 17:18:314745parcourir

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 :

 **必须安装:**

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。*” 
    } 
}

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');
//Word转HTML
$phpWord = \PhpOffice\PhpWord\IOFactory::load('./word/hello.docx');        
$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, "HTML");        
$xmlWriter->save('./html/hello.html');

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下载

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!

Déclaration:
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