• 締切済み

「javascript テキストファイル 印刷」

「javascript テキストファイル 印刷」 PHPでプログラミングしていて、あることをして、 テキストファイルを作成されるようにしました。 PHPでは印刷は無理と書いていて、逆に http://bowz.info/748 のように、印刷ができると書いていました。 しかし、ページを印刷できるが、テキストファイルを指定しての印刷は調べても見つかりません。 やりたいことは、テキストファイルを直接開いての印刷ではなくて、「PHPで作成したテキストファイルを指定してjavascriptを使ってそれを印刷すること」です。 (C\xampp\htdocs\sample.txt) いろいろ調べているのですがやり方が分かりません。 よければ教えてもらえないでしょうか?

noname#129137
noname#129137

みんなの回答

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

テキストファイルを表示させた後、print()を実行させればよい のですが、最低でも以下の3点を考慮しないとうまくいかないでしょう。 1.文字コード   XAMP php.iniで、何を設定しているか解りませんが、テキストファイル   はShift-Jisですか?。HTMLを適切なcharsetで準備する必用があります。 2.改行の取り扱い   テキストファイルに改行コードは正しく入ってますか?あれば<pre>要素   にでも配置すれば、改行されて表示されるでしょう。 3.実態参照   テキストファイルにHTMLで意味を持つ文字 < , > , " , ....が含まれて   ませんか?あれば実態参照文字&gt;&lt;...に変換する必要があります。

回答No.1

JavaScriptの印刷機能はそのページを印刷するモノなのでそのページにテキストファイルの内容を書き出さないと実現できないのではないかと思います。 あなたが求めている回答と若干違うかもしれませんが… 1.印刷ボタンを作る 2.ボタンを押すと「非同期通信でテキストファイルの内容を読み取って画面に表示させた後window.print()メソッドを呼び出す」メソッドを呼び出す(元々の画面は見えなくしておく)

関連するQ&A

  • JavaScriptで日付別のテキストファイル読込

    JavaScript初心者です。よろしくお願いします。 いつもはSSIでテキストファイルを読み込んで表示させているのですが、特定のファイルではなく、日付ごとに読み込むファイルを変える必要があり、いろいろと調べてはみたのですがどうにも参考にできそうなところを見つけられず困っています。 $(function() { $("#test_text").load("sample.txt"); }); これでsample.txtをtest_textの場所に読み込むことはできたのですが、loadで読み込むファイル名を日付によって書き換える方法はないでしょうか。 各ファイル名は0429.txtのように日付にしています。

  • javascriptのデバッグについて

    最近phpとjavascriptに手を出しました。 現在xamppでApacheを起動しphpをテキストエディタで書いていましたが phpファイルの中にjavascriptを組み合わせて少し複雑なページを作ってみようと思いました。 しかしjavascriptは全くの初心者でphpファイルの中にjavascriptが混在しているためデバッグをどのように行えばよいのかわかりません。 FireBugを入れてみましたがどうもうまくいかず困りました。 こういった場合どのような開発環境が良いのでしょうか教えてください。 よろしくお願いします。

  • テキストファイルの読み込み

    http://www.ajaxtower.jp/ini/html/index1.htmlにあるサンプルで xmlHttp.open("GET", "http://www.ajaxtower.jp/sample/readfile.txt", true); の、ファイルの場所を変えたいのですが、とりあえず、同じフォルダ内のテキストファイルtest.txtにアクセスしようと、"./test.txt"に変えて、クリックしても何も表示されませんでした。 apacheを起動してhtdocsにtest.txtを入れて"files://localhost/test.txt"に入れてもダメでした。 xmlHttp.openが読めるtextファイルは、どういう状態である必要があるのでしょうか?

  • PHPでxlsxファイルを印刷したい

    PHP(5.3.1)を使ってサーバー上のエクセルファイル sample.xlsxを印刷しようと思いましたが思うようにいきません。 PHPでサーバー上のbatファイルを呼び出し、そのbatからvbsでバックグラウンド印刷させようとしています。 社内ネットワークでのアプリでして、プリンタは条件によって部署ごとのプリンタが指定されるので変数になっています。 PHP: $ret = exec("cmd.exe /c C:\\xampp\htdocs\excelprint.bat $printerName"); bat: cscript C:\xampp\htdocs\xlsprint.vbs C:\xampp\htdocs\sample.xlsx %1 vbs: Set xl=CreateObject("Excel.Application") xl.AutomationSecurity=2 xl.Visible = false Set bk=xl.WorkBooks.Open(WScript.Arguments.Item(0)) Call bk.PrintOut(,,,,WScript.Arguments.Item(1)) bk.Close Set bk=Nothing xl.Quit Set xl=Nothing 以上のような感じでやってみたのですが印刷されませんでした。 $printerNameがAdobePDFやMSのドキュメントライターのような仮想プリンタの場合は サーバー側で印刷ダイアログ(保存しますか?というやつです)が表示されていますが、 通常の紙に印刷されるプリンタは反応しませんでした。 batファイルの%1をプリンタ名に変えて、batファイルをダブルクリックした場合は印刷されました。 何がまずいのか判る方がいらっしゃれば、教えてください。 よろしくお願いします。

    • 締切済み
    • PHP
  • データバンドでテキストファイルの一本化は可能?

    データバインドを利用してHPを作成しています。 因みに、CGI・PHPは使えない環境です。 本来ならcsv形式ファイルですが、txt形式ファイルを用いています。 ビルダー9で作成しているのですが、テキストファイルを一本化する事は可能なのでしょうか? 例えば、sample_01.htmlというファイルを作り、テキストファイルをdata.txtとして一覧表を表示して、 sample_02.htmlというファイルにもdata.txtを組み込み表示したいと思っています。 フォルダ内に同一ファイルがあれば、一本化するのは可能なのですが、 例えば、sample_aというフォルダにsample_01.htmlがあり、フォルダspmple_bがあります。 sampale_bというフォルダにsample_02.htmlファイルとdata.txtファイルがある状態として、 テキストファイルを表示したいのですが、リンクをテキストに打ち込んで表示が出来ません。 sample_01.htmlもsample_02.htmlもdata.txtを読み込み表示させたいのです。 プレビューで見た際に、例えば、sample_01.htmlでカーソルを飛びたい所(「飛び先1」として)へ持っていくと、 …/sample_a/sample_a/sample_b/ikisaki_01.htmlの様に「sample_a」というのが余分に表示されてリンク先に飛びません。 sample_02.htmlで表示された場合は、…/sample_a/sample_b/ikisaki_01.htmlとなりリンク先へ飛ぶ事が出来ます。 テキスト内容の例えとしては、 ../sample_a/sample_b/ikisaki_01.htmlとして、 sampe_bフォルダにdata.txtファイルがあるという状態です。 テキストファイルを2つのフォルダに入れ、テキスト内のリンクをそれぞれ修正すれば、 固定先のリンクページへ飛ぶ事は出来るのですが、 テキストファイルを一本化したいのですが、上手くいきません。 何方か、ご指摘・アドバイス等ありましたら宜しくお願い致します。

  • Javascriptでテキストファイルを読み込む事ができるか?

    javascriptでテキストファイルを出力することは可能ですか?よろしかったら教えてください。 例えばブラウザーでHTMLで作ったボタンを押すとjavascriptのプログラムでその下あたりにテキストで保存したファイルを出力させるというやつです。説明不足ですが可能ならばサンプルプログラムを書いてくれるとうれしいです。

  • javascriptでテキストファイルを作成したい

    javascriptを勉強していて演算した結果をテキストファイルにして、その結果をテキストファイル内に書き込んで新しくデスクトップに作成するというプログラムを作りたいと考えています。 ですが、まずは以下の条件を満たすプログラムの内容を教えていただきたいと思います。 私はHTMLと同時にjavascriptを作っているのですがとりあえず、 ・「テキストファイルの作成」というボタンをHTML内に作ります。 ・そのボタンを押すとjavascriptのfunctionが動作し、「テキストの書き込みに成功しました」という内容が書かれたテキストファイルがデスクトップに新たに作成される。 というプログラムを知りたいです。 基礎的な原理だけを知りたいので上の条件を満たすプログラムを教えていただきたいと思います。 テキストファイルをデスクトップに作る方法と、作るテキストファイルにどのようにしてテキスト内容を書き込めばいいのか分かりません。 HTMLの部分がめんどくさければjavascriptの部分だけでも構いません。 よろしくお願いします。

  • php -> javascript 変数渡し

    tempフォルダにtest.txtファイルが存在すれば、 fileフォルダaaa.txtファイル名をbbb.txtファイルに変更という流れです。 変更ボタンをクリックすると、値を$testdataに渡し、ファイル有無をチェックし、ある場合は変数をjavascriptに渡すしますphpの所は問題ありませんが、 javascript処理の所がどうしてもうまくいきません。変数渡しができません。 ネット上でいろいろ調べてみましたがすべてダメでした。 ぜひ、よろしくお願いいたします。 下記はそのコードです。 ファイル名test.php <? $testdata = $_GET["testdata"]; $filename = "C:\\xampp\\htdocs\\test\\file\\temp\\".$testdata; if(file_exists($filename)){//ある場合、変数をjavascriptに渡す $testdata_script = $testdata; }//ここまでは問題ありません。 ?> <!-- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>テスト</title> <script type="text/javascript"> <!-- function test(file) {       obj = new ActiveXObject('Scripting.FileSystemObject'); var name = '<?php echo $testdata_script ;?>'; alert(name); strMoveFrom = 'C:\\xampp\\htdocs\\test\\file\\aaa.txt'; strMoveTo = 'C:\\xampp\\htdocs\\test\\file\\bbb.txt'; obj.MoveFile(strMoveFrom ,strMoveTo ); obj= null } //--> </script> ...省略 <form action=test.php method=get accept-charset=UTF-8> <input type=submit value=変更 onclick=test('file')> <input type=hidden name=testdata value="test.txt">

  • バッチファイルでテキストファイルを分割したい

    テキストファイルを、指定した数値の倍数の行を、指定した個数に分割するバッチファイルを作成しようとしています。 例えば、以下の様な内容の「in.txt」というテキストファイルを3分割したい場合、 ----- in.txtの内容 ----- 1 2 3 4 5 6 7 8 9 10 ------------------------ 以下の様な内容で、 「out1.txt」「out2.txt」「out3.txt」として出力したいのです。 ----- out1.txtの内容 ----- 1 4 7 10 -------------------------- ----- out2.txtの内容 ----- 2 5 8 -------------------------- ----- out3.txtの内容 ----- 3 6 9 -------------------------- 自分はプログラミングの知識がないので、WEBに書かれている構文を少し書き換えたりして試しているのですが、うまく行きません。 AWKを使い、以下のようなバッチファイルを作成して実行してみましたが、「out3.txt」だけがうまく行きませんでした。構文の意味も分からないので修正も出来ません。 awk "NR%%3==1" "in.txt" > "out1.txt" awk "NR%%3==2" "in.txt" > "out2.txt" awk "NR%%3==3" "in.txt" > "out3.txt" AWKの解説ページを読み始めたのですが、時間的な猶予があまり無く、今回質問させて頂いた処理が出来るようになるまでまだ時間が掛かりそうなので、どなたかお分かりの方がおられましたお教え頂けないでしょうか。 AWKでなくとも、sedでもPerlでもその他のコマンドでも構いませんし、スクリプトファイルを読み込めるコマンドでしたらスクリプトでの書き方でも結構ですので、ご存知の方がおられましたらお教え頂けないでしょうか。

  • テキストファイルのアップロードについての質問です

    現在テキストファイルのアップローダーのページを表示し、アップロードされたテキストファイルの文章を表示するプログラムを作っております。 プログラムは以下です。 //省略 <form method="post" enctype="multipart/form-data" action="testup.php"> <input type="file" name="data" size="30"> <input type="submit" value="upload"> </form> <?php $updir = "./up/"; $filename = $_FILES['data']['name']; if(file_exists($_FILES['data']['tmp_name'])){ $filesize = filesize($_FILES['data']['tmp_name']); if($filesize <= 700000){ if(ereg("(^[a-zA-Z0-9_-]+)\.(txt)",$filename)){ move_uploaded_file($_FILES['data']['tmp_name'], $updir.$filename); echo "File : " . $filename . " Upload Suceeded!!"; echo $_FILES['data']['error']; echo "<br><br>"; include("./$updir/$filename"); } else { } }else { echo "$filesize Byte too large size。<br>File must be less than 700000 Byte"; } } if ($handle = opendir($updir)) { while (false !== ($file = readdir($handle))) { if ($file != "." and $file != "..") { include("./$updir/$file"); } } closedir($handle); //以下省略 このプログラムを実行すると問題なく動くのですが、今回お聞きしたいのは、アップロードされた文章をこのページだけでなくほかのページにも表示させるにはどうすればいいのかということです。 例えば <form method="post" enctype="multipart/form-data" action="testup.php">の[action = " "]のところに表示したいページのアドレスを入れればいいのかと思ったのですが、そうすると、テキストファイルの内容だけでなく、アップロード完了後のUpload Suceeded!!";まで表示されてしまうのであまり好ましくないと思います。また if ($handle = opendir($updir)) { からclosedir($handle);の部分を別に保存して include(-----);としたのですが、 Warning: include(.//ete.txt) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\inc2.php on line 8 Warning: include() [function.include]: Failed opening './/ete.txt' for inclusion (include_path='.;C:\xampp\php\pear\') in C:\xampp\htdocs\inc2.php on line 8 というようなエラーメッセージが出てしまいました。 長い文章になってしまいましたが、今まで書いてきたとおり、アップロードされたファイルを別のページでも表示させるにはどうすればいいのでしょうか?お分かりになる方がいらっしゃいましたら教えていただけないでしょうか?よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう