1

Emogrifierを使用して、CSSv3 がリンクされた HTML をインライン HTML 形式に変換する方法に関する情報を探しています。これまでのところ、CSS を許可していないサイトにメールを送信することに関連するものを見つけ続けています。

問題セットの詳細: リンクされた CSS を含む HTML ドキュメントがあり、適切にフォーマットされており、doc(x) として開く必要があります。Word は、v1 より上の CSS をサポートしていません。v3を使用しています。現時点では、CSS が不足しているため、変換時に書式設定がひどくオフになっています。インラインに変換する複数の HTML ドキュメントと CSS ファイルがあり、手動で変換したくありません。

Emogrifierを使用しようとしましたが、サーバーから常にエラー ページが表示されるようです(using MAMP)Emogrifyページは、部分に到達するまで機能します。引数の有無にかかわらずコンストラクターを試みました。ない場合は、HTML と CSS にセット関数を提供しました。fopen()また、 と の両方でファイルを渡そうとしましたfile_get_contents()

要素とバージョン:

  • MAMP バージョン 2
  • アパッチ 2.0.64
  • PHP 5.4.10

質問 1: Emogrifier は電子メール以外にも使用できますか?

質問 2:私のニーズにより適した別の製品/プログラムはありますか?

質問 3:コードに何か問題がありますか?

<?php
  include(emogrifier.php);

  $site = file_get_contents('file.html');
  $link = file_get_contents('file.css');

  $emog = new Emogrifier($site,$link);

  /* alternate call
  $emog = new Emogrifier;
  $emog->setHTML($site);
  $emog->setCSS($link);
  */
  $result = $emog->emogrify();

  print($result);

  ?>

編集

コンストラクターに 3 種類の変数を渡そうとしました。

  • ファイルパス
  • ファイルポインタ (fopen())
  • 文字列 (file_get_contents())

PHP ページにアクセスしようとすると、ブラウザでサーバー エラーが発生します。

http://localhost/file.php の取得中に Web サイトでエラーが発生しました。メンテナンスのために停止しているか、正しく構成されていない可能性があります。

テスト目的でページが echo ステートメントで「動作」できるようにするコンストラクターと関数呼び出しをコメントアウトしました。ただし、コンストラクターだけでもコメントを外すと、エラーが発生します。

emogrifier.php ファイルを「実行」すると、ページは正常にロードされます (白い画面、印刷なし)。

これが、この問題について私が持っているすべての情報です。

最終編集

これをまとめたかっただけです。

問題セットで機能するemogrifierを取得したことはありません。最終的には、必要な書式を設定するために、VisualBasic を大幅に編集した Word マクロを使用することになりました。マクロ システムは十分に文書化されていないため、これは複雑な解決策でした。また、私は多くのテーブルとセルを変更する必要があったため、セルを検索するとすべてが Excel に表示されたため、Google 検索はほとんど役に立ちませんでした。

...そして、彼らはレポートのフォーマットを別のものに移動し、とにかく私の作品は使用されませんでした! 笑

4

2 に答える 2

0

私はEmogrifierをうまく使いました。これが機能したコードスニペットです。

$emogrifier = new \Pelago\Emogrifier();
$emogrifier->setHtml($Data);
$cssFile = mb_substr($curFile, 0, 6) . 'override.css'; // each issue has a common CSS file
$emogrifier->setCss(fgc_UTF8($cssFile));
//After you have set the HTML and CSS, you can call the emogrify method to merge both:
$Data = $emogrifier->emogrify();
于 2016-03-12T02:05:05.093 に答える