書籍「現場で役立つシステム設計の原則」を読んでみて。
7月5日に発売されたのでさっそく購入しました。
現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法
- 作者: 増田亨
- 出版社/メーカー: 技術評論社
- 発売日: 2017/07/05
- メディア: Kindle版
- この商品を含むブログを見る
この本の著者の増田さんという方、
DDDやOOPに関する資料をSlideShareに公開していて何度も目にしていました。
流し読みしてみての感想ですが、
SlideShareの内容を書籍にまとめ、より詳しく解説を加えたものという具合です。
↓↓↓増田さんが公開している資料↓↓↓
www.slideshare.net
個人的にはとても良い本だと思う。
これから何度も読み返して頭に馴染ませて行きます。
「オブジェクト指向設計を勉強しよう!」ってなって、実践DDD本やリファクタリング本を読み漁りましたが、
この本を最初に読んだ方が分かりやすかっただろうなぁ・・・
文字列からプリンタを取得
using System; using System.Printing; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var queueByFullName = new PrintQueue(new LocalPrintServer(), LocalPrintServer.GetDefaultPrintQueue().FullName); Console.WriteLine(queueByFullName.FullName); Console.ReadKey(); } } }
PrintQueueクラスのコンストラクタにPrintServerクラスのインスタンスとプリンタの完全名(文字列)を渡すと取得出来る。
以下のようにインストールされていないプリンタ名を指定するとSystem.Printing.PrintQueueExceptionが発生する。
using System; using System.Printing; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //var queueByFullName = new PrintQueue(new LocalPrintServer(), LocalPrintServer.GetDefaultPrintQueue().FullName); var queueByFullName = new PrintQueue(new LocalPrintServer(), "Hoge"); Console.WriteLine(queueByFullName.FullName); Console.ReadKey(); } } }
インストールされているプリンターの一覧を取得する。
using System; using System.Printing; namespace LocalPrintersName { class Program { static void Main(string[] args) { foreach(var queue in new LocalPrintServer().GetPrintQueues()) { Console.WriteLine(queue.FullName); } Console.ReadLine(); } } }
LocalPrintServerのインスタンスメソッドGetPrintQueuesを実行
実行した端末のPrintQueueクラスのコレクションが返る。
後はPrintQueueクラスのプロパティを出力
既定のプリンター名を取得する。
using System; using System.Printing; namespace DefaultPrinterName { class Program { static void Main(string[] args) { Console.WriteLine("既定のプリンタは{0}です。", LocalPrintServer.GetDefaultPrintQueue().FullName); Console.ReadKey(); } } }
system.printingを参照設定に追加
LocalPrintServerクラスのstaticメソッドGetDefaultPrintQueueでプリンタ設定のインスタンスを取得
FullNameプロパティでプリンタ名を取得
WPFで帳票 参考リンク
ネットで色々検索してみるとWPFでも帳票印刷が出来るらしい。
後で参考に出来そうなリンクをメモ
以下参考:
WPFでの印刷の基本(1) 単一ページの印刷 - Qiita
WPFでの印刷の基本(2) 複数ページの印刷 - Qiita
WPFを帳票フレームワークとして使う - @kotyのブログ
WPF/XAMLで帳票のデザイン・印刷を行う - Qiita
[C#]プリンタ一覧と、デフォルトプリンタを取得するには
のぶろぐ WPFでの印刷
C# App.Configでエラー
DbProviderFactoriesの仕組みを勉強してて、DbProviderFactories.GetFactoryClasses()でConfigurationErrorExceptionが発生。
App.Configをよ~く見てみるとセクションの後のスペースが交っていた。
これを消してやると解消。
1時間くらい悩みました・・・