Ubuntuでitextpdfを使用して、PDFフォームにデータを入力します。実際に私はこのキットに含まれているクラス(ユーティリティ)を使用しています:PdfFormFiller。データはUnicode文字列で表されます。 Unicode文字を正しく表示するには、PdfFormFillerの-fontsオプションを使用します。itextpdfコマンドラインからのフォントの埋め込み
これについては、私は正しいパラメータで単にPdfFormFillerを呼び出すPHPスクリプトを書いた。
<?php
$command = "java -cp ./bin:lib/itextpdf-5.5.3.jar PdfFormFiller.PdfFormFiller DIPLOMA_FORM.pdf -f test.fdf -font \"fonts/arial.ttf\" -flatten test.pdf";
exec($command);
?>
私がコマンドライン(php)からrootとしてPHPファイルを実行すると、すべて正常です。 PDFにフォントが埋め込まれており、文字が正しく表示されます。
しかし、Webからスクリプトを実行すると(リンクにアクセスする)、生成されたPDFに必要なフォント(すべてのUnicode文字を含むArial)は含まれません。
絶対パス、相対(Webページへの)パスとバリエーションでフォントファイル(PHPスクリプト内)を参照しようとしました。立ち入り禁止。
私は、関連するすべてのファイルに対するすべてのアクセス権をapacheユーザーに許可しました。立ち入り禁止。
アイデア?
あなたは何を考えさせる 'php'があなたのrootアカウントから実行するには、Webサービスとして実行されている' php'と同じ権限を持っていますか? –
私は "apache"を所有者として設定し、関係するすべてのファイルとすべての権限(rwx)に対してグループ化します。 –
あなたのPHPスクリプトを共有してください。 –