0

COM オブジェクトを使用して Word ドキュメントを作成する必要がある PHP アプリケーションを構築しています。記録されたテストマクロのコードをチェックして、必要な関数のほとんどを見つけましたが、キリル文字を渡すための書き方がまだ見つかりません。私は次のことを試みています:

$word->Selection->TypeText(ChrW(1091) & ChrW(1085) & ChrW(1080) & ChrW(1074) & ChrW(1077) & ChrW(1088) & ChrW(1089) & ChrW(1080) & ChrW(1090) & ChrW(1077) & ChrW(1090));

次のエラーが表示されます。

致命的なエラー: C:\xampp\htdocs\xampp\COM\test.php の 42 行目の未定義関数 ChrW() の呼び出し

残念ながら、特に PHP の COM オブジェクトに関するドキュメントが見つからないため、誰かが私を助けてくれることを願ってここに質問を掲載しています。

4

2 に答える 2

1

これは古い質問ですが、PHP と COM を使用してマオリ語の文字を Word に送信する際に同様の問題がありました。答えは、COM オブジェクトの作成方法にありました。

$wordApp = new COM("word.application", null, CP_UTF8); // <-- Important to specify codepage CP_UTF8
// Open document...
...
$text = "Chars with macrons: Ā ā Ē ē Ī ī Ō ō Ū ū"; // UTF-8 string
$wordApp->Selection->TypeText($text);
...

COM の 3 番目のパラメータはコードページで、COM オブジェクトとの間でやり取りされる文字列に使用する変換を指定します。CP_UTF8を指定することで、( のよう$text$wordApp->Selection->TypeText($text);) 渡すすべての文字列が UTF-8 を使用してエンコードされ、受信するすべての文字列が UTF-8 を使用してエンコードされることを COM に伝えます。コードページを指定しない場合、デフォルトが使用され、おそらく Windows-1252 (Western) が使用されます。

詳細については、http: //php.net/manual/en/class.com.phpを参照してください。

于 2015-01-29T03:45:42.467 に答える
0

Word 文書に奇妙な記号が表示されます: универÑитеÑ</p>

Word 文書の文字セットと、そのために推奨される方法がわかりません。

それに関する信頼できる情報がない場合は、データをフィードして、機能するまで文字セットを変換しようとします。

PHPファイルがUTF-8でエンコードされていることを確認してから試してください

$text = "Привет, как дела";

$word->Selection->TypeText(iconv("utf-8", "utf-8", $text);       // no conversion
$word->Selection->TypeText(iconv("utf-8", "iso-8859-5", $text);  // cyrillic codepage
$word->Selection->TypeText(iconv("utf-8", "utf-16", $text);  // not sure whether this will work

ドキュメントの文字エンコーディングに応じて、これらのいずれかが機能する場合があります。

ドキュメントのエンコーディングを定義する COM メソッドが存在する場合があります。ある場合は、それを使用してエンコーディングを UTF-8 に設定するのが理想的な方法です。

于 2013-06-22T12:46:11.150 に答える