PHPでPDFlibを使用してfill_textblock関数が反映されない

このQ&Aのポイント
  • PHPのバージョン5.2.4でPDFlibのバージョン7を使用していますが、fill_textblock関数を使用してもテキストが反映されません。
  • 動作確認はSuseLinuxで行いましたが、本番環境のFreeBSDに移行した際に問題が発生しました。
  • PDF_fill_textblock関数とfill_textblock関数の違いや解決法について情報を探しています。
回答を見る
  • ベストアンサー

PHPでPDFlibを使用していますが、fill_textblock関

PHPでPDFlibを使用していますが、fill_textblock関数を使用してもテキストが反映されません OS:FreeBSD PHP:5.2.4 PDFlib:7 SuseLinuxにて動作確認をしており、 いざ本番環境のFreeBSDに移しましたら、上記の様に、fill_textblock関数箇所のテキストが反映されません。。 PDF_fill_textblock関数と、ただのfill_textblock関数の違いも 私なりに調べてみたのですが、いまいち分からずにいます。 ただ、PDF_fill_textblock関数で呼び出すと、定義されていない関数です、との英語のエラーで落ちます。 どなたか解決法や、糸口をご存じの方がいらっしゃいましたら、 教えていただければと思います。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • okdt
  • ベストアンサー率100% (4/4)
回答No.1

PDF_fill_textblock関数の部分だけの問題のようでしょうか。 問題が発生するシステムで、PDFlib関数のエラーログを取得してみると何かわかるかもしれません。具体的には、ソースコードのほうに、set_parameter関数で以下のような設定をすることで、詳細なログを出力することができます。(APIリファレンスの2.6章「ロギング」参照) 例:$p->set_parameter("logging", "filename {/path/PDFlib.log}"); (記述方法は、開発言語により適切に変更してください) もし、ログすらとれないようなら、PDFlib 7のインストールそのものが失敗している可能性も考えてみる必要があるかもです。

参考URL:
http://pdflib.jp/product/download/pdflib7.html
p_00_m_00
質問者

お礼

ご回答、ありがとうございます。 無事解決いたしました。 原因としましては、本当にここで質問してしまったのが申し訳ないのですが、 set_parameterで設定しました、searchpathが間違っていました。。。 ですが、教えていただいた、「set_parameter("logging", ~...」という物すら知りませんでしたので、 大変参考になりました。 ご親切なご回答、誠にありがとうございます。

関連するQ&A

  • PDFlibでテキストの均等割付をするには

    初めて質問致します。 現在下記の環境で開発を行っております。 【OS】MacOS X 【PHP】Ver5.1.4 【PDFlib】PDFlib6(試用版) ※本番稼動時はPDFlib6製品版を購入 下記の何れかの関数を用いて指定領域(BOXまたはフィットボックス)内にテキストを均等割付しようとしております。 ・PDF_fit_textflow ・PDF_fit_textline 引数のoptlistに均等割付のパラメータを渡せばよいのかと思いますが、マニュアルを見ても均等割付をするためのパラメータが分かりません。 どなたかご存知の方がおいででしたら、 ご教示頂きたくお願いします。 なお、購入するのが「PDFlib Personalization Server (PPS) 6」ではないため、ブロック記入関数は使用できません。 よろしくお願い致します。

    • 締切済み
    • PHP
  • [PDFLib]PDF_fill_textblockのtextに<>が入らない

    PDFLib を利用して PDF を動的に作成するプログラムを作成しています。 PDF_fill_textblock でテキストを設定する際、第4引数のテキストの中に < (小なり) か > (大なり) が入っていた場合、以下のような警告が出て、処理を完了させることができません。 Warning: Unknown option 'xx' xx は、 < と > の間に書いた文字列です。 <> はオプション設定として利用されるように見えるのですが、文字列として挿入することはできますでしょうか。 どうぞよろしくお願いいたします。

  • PHPでPDFを構成するサンプルが実行できない

    PHP初心者です。入門書を見て、PDFを構成するというサンプルを打ってたのですが、エラーが出ます。 PDFlibをダウンロードして(本が古かった為そのページが存在せず、自分でPDFlibのサイトを探してPDFlib / PDFlib+PDI / PPS アーカイブファイルのPHPという奴を入れました。)、c:/php/extに入れ、 php.iniでextension=libpdf_php.dllと書き加えました。 プログラムは以下の通りです。 <?php $objPdf=pdf_new(); pdf_begin_document($objPdf,"",""); pdf_set_info($objPdf,"Author","Yoshihiro Yamada"); $objTmp=pdf_open_pdi($objPdf,dirname(__FILE__)."/template.pdf","",0); $objPag=pdf_open_pdi_page($objPdf,$objTmp,1,""); pdf_begin_page_ext($objPdf,10,10,''); pdf_fit_pdi_page($objPdf,$objPag,0,0,"adjustpage"); $objFnt=pdf_load_font($objPdf,"HeiseiMin-W3","EUC-H",""); pdf_setfont($objPdf,$objFnt,14); pdf_set_value($objPdf,"leading",20); pdf_set_text_pos($objPdf,100,600); pdf_show($objPdf,"サーバサイド技術の学び舎 - WINGS"); pdf_continue_text($objPdf,"http://www.wings.msn.to/"); pdf_end_page($objPdf); pdf_close($objPdf); pdf_close_pdi($objPdf,$objTmp); header("Content-type: application/pdf"); header("Content-disposition: attachment; filename=result.pdf"); print(pdf_get_buffer($objPdf)); pdf_delete($objPdf); ?> エラーはこんな感じです。 Fatal error: Uncaught exception 'PDFlibException' with message 'Font 'HeiseiMin-W3' with encoding 'EUC-H': Couldn't open CMap file 'EUC-H' for reading (file not found)' in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\day07\pdf_create.php:10 Stack trace: #0 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\day07\pdf_create.php(10): pdf_load_font(Resource id #2, 'HeiseiMin-W3', 'EUC-H', '') #1 {main} thrown in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\day07\pdf_create.php on line 10 多分エラー内容からcmap?という奴がいるみたいでサイトで調べてやってみたのですが、初心者にはちょっと難しくて・・・多分こうだと思って、PDFlibのサイトからcmapをダウンロードして適当なフォルダに入れて、上の構文の「$objPdf=pdf_new();」の下に「PDF_set_parameter($objPdf, 'SearchPath', 'C:/php/pdflib/resource/cmap'); 」としました。 すると、プログラムは実行出来たのですが、すごい文字化けで何もわかりません。。。 すいません。わかる方お願い致します。

    • 締切済み
    • PHP
  • ライブラリの使用について質問です。

    はじめまして。ライブラリの使用について質問させて下さい。 PDFlib(ttp://pdflib.jp/)をフリー版で使用してみたいのですが、リンクが上手くいかず2028や2019のエラーが出てしまい、コンパイルが通りません。 環境は VS2008EE .NET C++ で、ウィンドウズフォームアプリケーションに組み込もうとしています。 ttp://pdflib.hykw.tv/ の入門ページは参照したのですが、よく判りません…。 現状で試した事は、プロジェクトのプロパティから、 追加のインクルードディレクトリの指定、 追加のライブラリディレクトリの指定、 追加の依存ファイルでpdflib.libを指定、 を行い、stdafx.hに #pragma comment (lib, "pdflib.lib") #include <pdflib.hpp> #include <math.h> を追加し、Form1.hで PDFlib p; だけを追加し、ビルド。までです。 未解決のトークンで、実体がないという意味だと思われるエラーが出てしまい、ビルドできません。 未解決のトークンのエラーの実際のエラーコードは以下です。長いです。 PDF_TEST.obj : error LNK2028: 未解決のトークン (0A00000F) "public: __clrcall PDFlib::~PDFlib(void)" (??1PDFlib@@$$FQAM@XZ) が関数 "private: void __clrcall PDF_TESY2::Form1::Form1_Load(class System::Object ^,class System::EventArgs ^)" (?Form1_Load@Form1@PDF_TEST@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z) で参照されました。 以上です。宜しくお願い致します。

  • phpの互換性について

    phpの4.3.10と4.4.0ではどの程度の互換性があるのでしょうか? 現状、php4.4.0にて開発を行っていましたが、本番サーバのphpが4.3.10なのです 特に難しいこともしていないと思うので、動きそうな気はするのですが この関数の仕様が変わった。とか、こういう処理をすると動かないなどありますでしょうか? WebからDBに登録、変更などを行うありふれたツールです 画面表示にSmarty2.6.18を使用しています

    • ベストアンサー
    • PHP
  • 【PHP】新規ファイル生成を不可にする方法は?

    PHP5(レンタルサーバー)使用者です。 PHPでのファイルの新規生成を不可にするにはどうすればよいのでしょうか。 php.iniでfopen関数を禁止にしてしまうと読み込みまでできなくなってしまいますし… <環境> OS: FreeBSD 6.2 PHP: 5.2.8 php.ini: 操作可 お詳しい方、よろしくお願いします。

    • 締切済み
    • PHP
  • PHPの外部テキストファイルにJavaScriptを記述する方法

    PHP初心者です。今、Let'sPHPさんのP++BBSを利用して掲示板を作成しているのですが、JavaScriptが動作せずエラーになって困っています。P++BBSは、 --------------------------------------------------- define("HEADFILE", "skin/head.txt");  //定義 include(HEADFILE); //表示 --------------------------------------------------- のようにして、外部テキストにHTML<html><head>~</body></html>までを分割記述し、表示する各場所に定数呼び出しするタイプの掲示板です。 問題は、外部テキストのヘッダー部に <script type="text/javascript" src="my.js"></script> と記述しても反映せずエラーになってしまうことです。PHP内に直接記述すると正常に動作するのですが、どうにかスキンを活かした方法で使用したいと思っています。 使用したいJavaScriptの関数は、<body onload="関数">と、<a href="" onmouseover="関数" onmouseout="関数">の2種のみです。 初心者の質問で申し訳ありませんが、ご助言いただけると嬉しいです。よろしくお願いします!!

    • ベストアンサー
    • PHP
  • FreeBsd bios関数使用について

    FreeBsd開発初心者です FreeBsdで bios32( ) 等 を使用するPGを開発し始めたのですが、コンパイル/リンクがうまく 行きません。 #include 等 正しく記述しているつもりですが関数未定義などのエラーになります 多分、私自身のUNIX系における基本的理解不足が原因と思っていますが カーネルの再構築、ライブラリの指定やライブラリのMakeなどが必要なのでしょうか? BSDに精通されている方、何卒、ご教授お願いします。 FreeBsd 10.1 i386にてシステムインストールしています コンパイラ clang使用

  • phpのオブジェクトの使用方法について

    プログラミングはPHPが初めてで、プログラミングというもの自体に慣れていないこともあり、初心者用の本を買ってそれに従って進めているのですが、オブジェクトのところで理解するのに行き詰まってしまいました。 検索してみたものの、以下のページがわかりやすそうだったのですが、これらを読んでみてもいまいちしっくりときません。 http://www.komonet.ne.jp/~php/chap10.htm http://www.stackasterisk.jp/tech/php/php03_09.jsp オブジェクト指向のコンセプトは把握できているつもりです。いつでも使い回しができるコードの束のようなものだと理解しています。しかし、その用法で今まで自分が読んできたものと違うことがあり、また、それらを使用する必然性にたいする理解ができません。いったいどういったタイミングで使用するのでしょうか?以下にそれらの例を挙げて見ました。 1.var $aaa = "hoge"; このvarはいったいどこからやってきたのでしょうか?それに関する解説が本にもWEBにも見つけられなくて困っています。これはクラスの定義内でのみ有効なのでしょうか?何のために使用するのでしょうか? 2.$this -> aaa これをなぜ、単に$aaaと表記しないのでしょうか? 3.プロパティ(property) なぜクラス内の変数(variable)をわざわざそう呼ぶのでしょうか? 4.メソッド(method) なぜクラス内の関数(function)をあえてそう呼ぶのでしょうか? 5.コンストラクタ(Constructor)、継承(Inheritance) 1~4の部分で躓いているためか、いまいちその必要性が理解できません。 もしご存知の方おられましたご教授していただけるとうれしく思います。

    • ベストアンサー
    • PHP
  • PHPで PDFファイルを作る

    PHPでPDFファイルを作ろうと思い、教本に載っていた以下のようなコードを書いて実行してみましたが、エラーメッセージが出ました。 コード: <?php $pdf = pdf_new(); pdf_open_file($pdf, "c://xampp/htdocs/PDFtest/pdf-test-file.pdf"); $font = pdf_findfont($pdf, "Times-Roman", "host"); pdf_begin_page($pdf, 595, 842); pdf_setfont($pdf, $font, 30); pdf_show_xy($pdf, "This is the first sentence I write in PDF.", 50, 750); pdf_end_page($pdf); pdf_close($pdf); pdf_delete($pdf); ?> エラーメッセージ: Fatal error: Uncaught Error: Call to undefined function pdf_new() in C:\xampp\htdocs\PDFtest\pdf-test-program.php:12 Stack trace: #0 {main} thrown in C:\xampp\htdocs\PDFtest\pdf-test-program.php on line 12 これはたぶんPDF関係のライブラリーが必要なのだろうと思い、ネットでいろいろ検索してみましたがいまいちよくわかりません。 このpdf_new() という関数を使えるようになるための手順をご存知の方、どうか教えてください。よろしくお願いいたします。 使用中のPHPはXamppを介してPHP7.4.3です。

    • ベストアンサー
    • PHP

専門家に質問してみよう