web-dev-qa-db-ja.com

PHPWordを使用してhtmlタグ文字列をWord文書に変換する方法は?

HTML文字列があり、HTMLと同じ形式とスタイルでWord文書に印刷したいと思います。 PHPWord を使用しています

HTML文字列を指定すると、次のようになります。

$htmlval ="<h6><div style="text-align: center;"><b style=\\"font-size: x-large;\\">OFFER LETTER</b></div><font size=\\"3\\"><div style="text-align: center;"><span style=\\"font-size: medium;\\">(This goes as an email copy)</span></div>";

これは、breakとdivを含むHTMLタグです。

に:

$section->addText($htmlval);

すべてのHTMLタグを出力しますが、HTMLで指定された形式のコンテンツが必要です。

11
user2651906

限られた方法で可能ですが、基本的なhtmlタグのみです。

<p>,<h1>,<h2>,<h3>,<h4>,<h5>,<h6>,<strong>,
<em>,<sup>,<sub>,<table>,<tr>,<td>,<ul>,<ol>,<li>

また、より複雑な場合(たとえば、テーブルのrowspan/colspan)ではうまく機能しません。

$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();
\PhpOffice\PhpWord\Shared\Html::addHtml($section, $html);

サンプルを確認してください: PHPWord github

18

@Tomekの回答に同意しますが、より多くのhtmlタグが可能です。

完全なリストはここにあります:
https://github.com/PHPOffice/PHPWord/blob/4a530d1d97b064b87d9e2a1cc64cab996246569c/src/PhpWord/Shared/Html.php#L116

テーブルやスタイルで複雑な考えをしようとしないでください。それはうまくいきませんでした。

0
Dam Fa