![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Javaの初心者です。
Eclipse、フレームワーク:Spring、Windows Server 2012 R2、Excel2013で開発しています。
サーバーからExcelファイル(拡張子:xlsx)の特定のシートを印刷したいと思っています。
下記コーディングだと、ローカルホストでは印刷されるですが、デプロイするとサーバーではエラーとなってしまいます。
try{
//ドキュメントの形式を設定(application/octec-stream)
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
// Docオブジェクトの生成
is = new FileInputStream(OUT_FILE_NAME);
Doc document = new SimpleDoc(is, flavor, null);
// プリンタの設定
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(new Copies(1));
//aset.add(MediaName.ISO_A4_WHITE);
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
System.out.println("★service.toString():" + service.toString());
DocPrintJob job = service.createPrintJob();
System.out.println("★job.toString():" + job.toString());
job.print(document, aset);
} catch (PrintException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} finally {
if (is != null) {
is.close();
}
}
エラー内容は、java.lang.NullPointerException で、「DocPrintJob job = service.createPrintJob();」の行でエラーとなっているようです。
どうすれば、サーバーから印刷できるのでしょうか。
No.1ベストアンサー
- 回答日時:
> エラー内容は、java.lang.NullPointerException で、「DocPrintJob job = service.createPrintJob();」の行でエラーとなっているようです。
というのならば、まず考えられる原因は service が NULL という事ですがそれは大丈夫ですか?
……というか、あなたはどこのプリンターから印刷させたいとお考えでしょうか。
Spring を使用しているという事は「サーバー」というのは Web サーバーと思われますが、その Web サーバーで印刷したいというのならばその Web サーバーのプリンターの設定を確認してください。まあ絶対と言っていいくらいプリンターなんてつながっていないはずですし、サーバー管理者に特定の URL アクセスがあるたびに Excel 印刷をサーバーでしたいなんて言ったら変な顔をされるはずですが。
もし Web サーバーにアクセスした利用者のコンピューターにつながっているプリンターから印刷したいというのならば……その考えはあきらめなさい。Web サーバーがアクセスしてきたクライアントの環境を操作できるというのは重大なセキュリティ問題であり、そのようなことが可能な API は存在しません。
考えてみてください、ある URL を踏んだだけであなたのコンピューターのプリンターが勝手に動きだし、延々と "All your base are belong to us" を印刷し続けるという状況を。あなたが望んでいることが可能という事は上記のような悪質な悪戯も可能になるという事です。それは望ましいことではありませんよね?
回答ありがとうございます!
Webサーバにはネットワークプリンタを設定してあります。各部署ごとに異なるプリンターに製品に貼付するラベルを印刷したいと思っています。部署の情報はユーザーから入力してもらうなどする予定です。印刷ボタンを押した時にサーバーから印刷させようと思ったのですが、無謀なのでしょうか。Webから帳票を印刷するということは、Javaでは不可能ということですか?そういったニーズは割とあるような気がするのですが。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- ノートパソコン Windows11homeを新しく購入し、初期設定をしています。 前のパソコンでは無線のFAX機や有 5 2023/04/18 19:50
- プリンタ・スキャナー キャノンmp490プリンター【エラー番号5400】で【プリンタートラブルが発生しました。電源を入れ直 2 2023/07/24 17:45
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Excel(エクセル) 【Excel】複数シートがあるエクセルデータで片面印刷と両面印刷設定がシートごとに入 1 2023/03/10 15:25
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TortoiseSVNにてサーバー上の共...
-
安定稼動が可能な自宅サーバー...
-
サーバのIPを調べるには?
-
【minecraft】サーバーに接続で...
-
winscpのエラー
-
インターフェースサーバーとは...
-
UNIXサーバを跨いだリンク
-
イントラネットを構築したい
-
discordで2人だけのサーバー作...
-
2台のパソコンでoutlook expre...
-
スマホのサーバー?について
-
一般的なサーバーの冷却方法を...
-
社内ネットワークの1台だけ接...
-
メール共有の場所にファイルを...
-
グループポリシーでインターネ...
-
DHCPからIPアドレスの取得が出...
-
プロキシサーバーの設定について
-
サーバーの容量を使用している...
-
サーバの変更に伴うフォルダー...
-
サンダーバードを複数のPCで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ログインできません。
-
JavaでサーバーからExcelファイ...
-
アクセス拒否
-
IEとホームページとの通信のや...
-
DELL PowerEdge 400SC のRAID管...
-
ディスクレスのパソコンについて
-
エックスサーバーが原因?DNS ...
-
TortoiseSVNにてサーバー上の共...
-
社内ネットワークの1台だけ接...
-
インターフェースサーバーとは...
-
【minecraft】サーバーに接続で...
-
サーバー破壊
-
さくらレンタルサーバーのホー...
-
ワイモバイルあんしんフィルター
-
winscpのエラー
-
独自ドメインでのNSレコード設定
-
サーバーについて質問です。下...
-
ロリポップサーバーの契約更新...
-
レンタルサーバーで契約するなら?
-
メールボムに困っています。
おすすめ情報