ミスチルの大名曲の数々が配信決定!! 31日間無料!!【PR】

HTML、PHP、JavascriptでWeb画面上から印刷枚数を指定し、Web画面上の「印刷」ボタンを押すと、直接、特定のファイルパスのPDFファイルを印刷できるようにしたいと思っています。
かなり検索したのですが、それを実現できるようなものが見当たりません。
どうかご教授ください。よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

PXDocについて、


所詮はXMLなので、PHPで、SVGの記述にそったXMLを出力すればよいです。ブラウザ側には、pxd拡張子で投げるため、
PHPで、header指定のコードを記述する必要はありそうです。

header("Content-type: application/pxd");

PXDocのサイト(参考URL)にサンプルとリファレンスがあります。
.pdx という拡張子がありますが、単なるXMLファイル(テキストファイル)なので、メモ帳なり秀丸なりで開けば、ああなるほどとわかると思います。

複雑な帳票で、テンプレートを作り、部分的に動的な値を埋め込む場合は、テンプレートをExcelとかOpenOffice.orgで作ってSVG保存したものを使えばよいと思います。

※SVG(つまり実体はXML)はテキストファイルなので、
ユーザが内容を書き換えることが可能です。(書き換えようと思えばですが)

PDFのように、編集不可にする手段はないのでご注意ください。

参考URL:http://www.pxdoc.com/sample/index.htm
    • good
    • 0

ボタンを押すと、直接印刷が開始する(つまり自動印刷)のことでしょうか。



それでしたら、印刷という行為の性質上、JavascriptとPDFでは、自動印刷を実現する
ことは、対象範囲を超えているので、無理と思われます。
(Javascriptでブラウザのボタンを操作できないことと同じです。)

過去の質問で、サーバ→プリンタでPDFをコマンドラインで操作することにより
印刷する方法が紹介されていました。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=967850
ただし、この方法は、イントラネットでは、ありかもしれませんが、
普通は、クライアントで印刷したいと思います。

以前、私もこれを考えたことがあり、結局もっとも現実的でスマートな方法と
感じたのは、
PHPで、SVGというXML形式のファイルを出力して、
PXDocという無償で利用できるソフトで印刷する方法です。
http://www.pxdoc.com/

流れとしては、
サーバ側のPHPで、SVGを生成し出力。

PC側の、PXDocが自動的に呼ばれ、表示と同時に印刷が開始される。
(完全自動印刷機能を使えば、ダウンロードと同時に印刷が可能・・・らしい)

という手です。
実際につかったことはないのですが、どうしてもWEBで自動印刷をとなった場合、
私はこの方法を使うと思います。
それでも、印刷枚数を指定することは無理と思われます。
(商用のActiveXでそのようなことができるものがあるかもしれませんが)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
付け加え忘れていたのですが、WEB上での操作はサーバからのみ行う予定です。そのため、印刷はサーバからのみ可能であれば大丈夫です。

あと、ご提案していただいた、PHPで、SVGというXML形式のファイルを出力して、PXDocという無償で利用できるソフトで印刷する方法を検討したいと思います。そこで、伺いたいのですが、PHPでSVGというXML形式のファイルを出力する方法が分かりませんでした。

何度も申し訳ありませんが教えて頂けませんでしょうか?(できればサンプルコードも)

お礼日時:2007/12/07 05:57

「特定のファイルパス」というのが、ローカルか、URL指定か、で変わるかとは思います。


#ローカルはできないかも・・・。

URL指定できるのであれば、フレームでそのPDFファイルを開いて、
Javascriptからdocument.[フレーム名].print();で、印刷ダイアログが開かないでしょうか?

この回答への補足

実は、印刷ダイアログを開かずに印刷させたいと思っております。

補足日時:2007/12/07 05:44
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QPHPでPDFの自動印刷

PHPでPDFを作成し、PDFがブラウザで表示されたら自動印刷するようにしようと思っています。

FPDFを使い、用紙サイズA4・用紙方向縦に設定したPDFを生成することができました。
さらにFPDFのphpファイルを拡張して、PDFファイルにAcrobat JavaScriptを埋め込めるようにしました。
プリンタを指定してAdobe Readerで自動印刷することができました。

後は給紙を用紙トレイにできればよいのですが、方法がわかりません。

Acrobat JavaScriptでできるのでしょうか?FPDFでできるのでしょうか?
それとも給紙方法の制御は無理なのでしょうか?

Aベストアンサー

Acrobatのjavascriptはプリンタを選べるのでしょうか?
もし選べるなら同じプリンタドライバをもう一個いれて、
デフォルトの給紙を用紙トレイにしておけばよいのでは?
もはやPHPの話ではないですが・・・。

QVBscriptでPDFファイルを直接印刷できるようにするためには?

Windows2000 or WIndowsXP
IIS5.0
ASP(言語はVBscrptを使用)

今あるボタンを押すと、PDFファイルを作成し、
そのできたファイルへのリンクを画面に表示
するようにしています。
そのリンクをクリックするとAcrobatReaderに
よってプレビューが開かれ、そこで印刷ボタンを
押すと印刷できるという仕組みになっています。

これからはそうではなくて、あるボタンを押すと
PDFファイルを作成し、データをプリンタに送って?
印刷できるようにしたいと考えています。

(1)そんなことは技術的に可能でしょうか?
(2)また、印刷する際にどのプリンタから出力される
かをプログラムで指定することはできますでしょうか?
指定しなければ、通常使うプリンタから出る?
(3)印刷する際に、印刷設定ダイアログ(プリンタ選択画面)を出現させることは可能でしょうか?

大変困っています。どなたかヒントだけでも
(できればサンプルコードも)よいので
教えて下さいませんでしょうか?

よろしくお願いします。

Windows2000 or WIndowsXP
IIS5.0
ASP(言語はVBscrptを使用)

今あるボタンを押すと、PDFファイルを作成し、
そのできたファイルへのリンクを画面に表示
するようにしています。
そのリンクをクリックするとAcrobatReaderに
よってプレビューが開かれ、そこで印刷ボタンを
押すと印刷できるという仕組みになっています。

これからはそうではなくて、あるボタンを押すと
PDFファイルを作成し、データをプリンタに送って?
印刷できるようにしたいと考えています。

(1)そんなことは技術的に...続きを読む

Aベストアンサー

サーバー(IIS)側からプリンタに出力するのであれば
可能と思われます。
一番簡単なのはAcrobatReaderのコマンドラインを使用
する方法です。
イメージでいえば
1.クライアントから印刷指示
2.サーバー側でPDF作成
3.サーバー側でAcrobatReaderのコマンドラインに
  2.のPDFを渡し印刷する

AcrobatReaderのコマンドラインには印刷指定やプリンタ
指定などがあるのやりたいことはできると思います。
但し、サーバーが参加しているネットワーク上のプリンタ
のみが対象になりますが・・・

AcrobatReaderのコマンドラインについては
1.http://www.adobe.co.jp/partners/main.htmlへアクセス
2.「ASNディベロッパープログラム FAQ 」をクリック
3.文書番号3821の「Acrobat 6.0 SDK : Acrobat Developer FAQ 日本語版」をクリック
4.DeveloperFAQ.pdfを開く
5.一番下の「Windows 上のコマンドラインからAcrobat およびAdobe Reader を使用」を選択
で参照してください。

どうしてもクライアントで行いたい場合は
ActiveX等を作成する必要がありますが、証明書を
申請したりしないとセキュリティ上難しいので
お勧めできません。

お役に立てれば幸いです。

サーバー(IIS)側からプリンタに出力するのであれば
可能と思われます。
一番簡単なのはAcrobatReaderのコマンドラインを使用
する方法です。
イメージでいえば
1.クライアントから印刷指示
2.サーバー側でPDF作成
3.サーバー側でAcrobatReaderのコマンドラインに
  2.のPDFを渡し印刷する

AcrobatReaderのコマンドラインには印刷指定やプリンタ
指定などがあるのやりたいことはできると思います。
但し、サーバーが参加しているネットワーク上のプリンタ
のみが対象になりますが・・・
...続きを読む

QPDFファイルを開かずに印刷したい

幾つものPDFファイルを印刷したいのですが、
できればAdobeReaderを起動させずに印刷したいです。

ファイルのアイコン上で右クリック→印刷でも可能ですが、
数が多くなると、この作業も大変です。
そこでVisualBasic2008ExpressEditionを使って、
簡単なシステムを作りたいと考えています。

しかし、PDFを開かずに印刷する方法が、どうしてもわかりません。
ネット検索、教えてgoo内の検索でもヒットせず途方に暮れています。
参考になるホームページや書籍がありましたら教えてください。
「こんな手法があるよ」というものでも構いません。

宜しくお願いします。

Aベストアンサー

PDFを開く際にACRORD32.exeに対して以下のコマンドラインを指定してください。

ACRORD32.EXE /s /l /p /h [PDFのパス]

コマンドラインの解説は参照URLを。

参考URL:http://scripting.cocolog-nifty.com/blog/2007/07/adobe_reader_81_e41e.html

Qillegal string offset

php5.3では動いていたプログラムをphp 5.4 で動かしたらwarning illegal string offsetが出て困っています。以下のプログラムでwarningが出ないようにするにはどのようにコーディングすればよいのでしょうか?


$a = array('exists' => 'foo');
if ($a['exists']['non_existent']) {
print 1;
}
print 2;
exit;

Aベストアンサー

isset()を使えばいいと思います

Qsyntax error, unexpected '}' というエラーの対処法

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" maxlength="3" />
<input type="sbumit" value=回答" />
</form>
<hr />
<?php
session_start();
if(is_null($_SESSION['answer'])){
mt_stand(microtime()*1000000);
$_SESSION['answer']=mt_rand(1,100);
$_SESSION['game_cnt']=0;
}
if($_POST['answer']!=""){
$_SESSION['game_cnt']++;
if($_session['answer']==$_POST['answer']){
print("おめでとうございます".
$_SESSION['game_cnt']."回で正解しました!");
session_destroy();
}else{
if($_SESSION['answer']>$_POST['answer']){
print("もう少し大きいです。");
}else
print("もう少し小さいです。");
}
}
}
?>
</body>
</html>
それとこの間違えたところをなおしたあとはいつもコンピュータを再起動しないと修正したところが適用されないのですがほかに方法はないですか?基本的な質問ですいません。

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" max...続きを読む

Aベストアンサー

print("もう少し大きいです。");
}else
print("もう少し小さいです。");
のelseの後に{がないようですが、大丈夫でしょうか?

QonClickに複数の関数を挿入する方法

初心者なのですがアニメーションの関数anime1、anime2、anime3を作成し、onClickに下記のように設定しました。
クリックするとアニメーション2つの設定ではは動くのですが、3つ目を設定すると動かなくなります。
通常はこのような設定はしないものなのでしょうか?
教えてください。
よろしくお願いします。
<INPUT type="button" value="START" onClick="anime1(), anime2()">・・・OKです。
<INPUT type="button" value="START" onClick="anime1(), anime2(),anime3()">・・・動きません。

Aベストアンサー

セミコロンでつなぐのが常道ですが、3つ以上なら
別途function化したほうが、可読性が高くなると
思います。

Q印刷ダイアログを出さずに印刷する方法について

Window.printでページを印刷する時、印刷ダイアログを出さずに印刷する方法はあるのでしょうか?
ご存知でしたら、教えてください。

Aベストアンサー

ActiveXとか使ってがんばらない限り、一般的にはないんじゃないでしょうか?

もしJavaScriptだけで可能だと、悪意のあるサイトで、見に行ったら行きなり印刷され続けてしまうようなページが作れてしまいそうなので。

QCSSでreadonlyの機能はありますか?

ASPにてCSSを使用しています。
inputタグを読取専用(readonly)にしたいのですが、
スタイルシートでの指定の仕方がわかりません。
よろしくお願いします。

Aベストアンサー

> スタイルシートでも「IME-mode」の設定等、入力に関する制御も可能でしたので

それは某ブラウザが勝手に CSS を拡張して付けた機能で、本来の CSS ではそのようなことはできません。
CSS はあくまでも見た目つまりスタイルをデザインするためのものだと考えるべきです。

QJavaScriptde途中で、「exit」するには?

function kensaku(){
s_data = document.kaiin_form.input_name.value;

if(!s_data){ alert("キーワードを入れて下さい!"); }

if(s_data != dumy){ ...... }
for(i=st_no;i<=n;i++){
......省略.................;
.......省略................}
}

----------------------------------
3行目で表示されたアラートをOKで閉じても、4行目以下が実行されてしまいます。
3行目でexitするにはどうすれば良いでしょうか?

Aベストアンサー

>関数(kensaku())からは抜けられませんでした。
そうですね、勘違いしていました、f(^^;
すみません。
if(!s_data){
alert("キーワードを入れて下さい!");
return;
}
ですね。

QHTMLフォームのSELECTの幅を一定にするためには?

HTMLフォームのSELECTの幅を一定にするためにはどのようにすれば
いいのでしょうか?

CSS等で設定できるとありがたいのですが、やり方がわかりません。

Aベストアンサー

<select style="width: 200px">


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング