- - PR -
PDFlibでPDFファイルの上にPDFファイルを差込み印字したい。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-03-10 18:30
こんにちは。
現在、VS2005 C# で、PDFlib7.0.3を使い、PDFファイルに印字しております。 現在は、@一枚のPDFファイルを裏面として印字し、実現できていますが、 この@のPDFとは、別のPDFファイルの中身を座標を指定して印字したいです。 PDFlib pdf; //@のPDFのオブジェクト .... String _backpdf = "C:/image/image.pdf"; PDFlib backpdf = new PDFlib(); nt bb = 0; //オープン bb = backpdf.open_pdi_document(_backpdf, ""); if (bb == -1) { //エラー } //@のPDFに「backpdf」のイメージをx:30 y:30の座標でセットしているつもりです。 pdf.fit_pdi_page(backpdf.open_pdi_page(bb, 1, ""), 30.0, 30.0, ""); //開放 backpdf.close_pdi_document(bb); イメージとしては、PDFファイルをpng等のイメージ素材として、pdfファイルを印字対象としています。 このまま印字するとこのようなエラーが返されます。 Function must not be called in 'object' scope お分かりになりましたら、よろしくお願いします。 |
|
投稿日時: 2009-03-11 12:37
追記です。
このようにやってみましたが、今度はdocumentが開かなくなってしまいました。 **************************************** PDFlib pdf; //@のPDFのオブジェクト .... String _backpdf = "c:/test.pdf"; string errmsg = ""; PDFlib backpdf = new PDFlib(); backpdf.set_parameter("compatibility", "1.4"); //ドキュメントオープン int doc = backpdf.open_pdi_document(_backpdf, ""); if (doc == -1) errmsg = backpdf.get_errmsg(); //ページオープン int pgdoc = backpdf.open_pdi_page(doc, 1, ""); if (pgdoc == -1) errmsg = backpdf.get_errmsg(); //印字 pdf.fit_pdi_page(pgdoc, 30, 30, ""); //クローズ backpdf.close_pdi_page(pgdoc); backpdf.close_pdi_document(doc); **************************************** エラーはこのように出ているのですが、PDFファイルの互換性が無いといってるんでしょうか? "During Xref rebuild: No trailer found in file 'c:/test.pdf'" お分かりになりましたら、よろしくお願いします。 下記のようにしても、症状は同じでした。 int doc = backpdf.open_pdi_document(_backpdf, "infomode=false repair=force"); [ メッセージ編集済み 編集者: 未記入 編集日時 2009-03-11 12:49 ] |
|
投稿日時: 2009-03-11 13:07
PDFLibで差込・・・とかいうから、「PDFLibだけじゃなくて、PDIを使わないとできないよ」と書こうとしたら・・・
PDIは使えている訳ですか? # なんだか検索したら、PDFLib HOWTOが分かりやすそうな |
|
投稿日時: 2009-03-11 13:23
ありがとうございます。
紹介いただいたページでも同じように確認しましたが、PHPですね。 そのソースを参考にしたのですが、API利用時、オプションを渡していないようでした。 ドキュメントを読むと「infomode=false 」でページを開かないとfit_pdi_page()は使えないとあり、多少違うのかと思いました。 と言いましても、このエラーは元ファイルが互換性の無いものなのか・・、どうやって調べれば、どう変換すれば良いのか分からない状態です。。 お分かりになりましたら、よろしくお願いします。 |
1