C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.83267 の関連記事表示

<< 0 >>
■83267  xpsファイルの印刷について
□投稿者/ らいく -(2017/03/16(Thu) 00:18:53)

    分類:[.NET 全般] 

    初めて投稿させていただきます。

    VB.NET初心者(VBAなら少々やっておりました)です。

    現在xpsファイルを印刷するプログラムを構築中で、

    https://msdn.microsoft.com/ja-jp/library/aa969772

    を参考にして下記のコードを作成。

    Private Class BatchXPSPrinter

    Public Shared Sub PrintXPS()
    Dim localPrintServer As New LocalPrintServer()
    Dim defaultPrintQueue As PrintQueue = LocalPrintServer.GetDefaultPrintQueue()

    Dim nextFile As String = My.Application.Info.DirectoryPath & "\1.xps"
    Dim xpsPrintJob As PrintSystemJobInfo = defaultPrintQueue.AddJob("1.xps", nextFile, False)

    End Sub
    End Class

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Call BatchXPSPrinter.PrintXPS()
    End Sub


    しかし、xpsファイル内の印刷物(A4用紙3枚程度)が横縦混在の場合、

    横方向の印刷は用紙が縦で横印刷するため、印刷内容が収まりません。

    判別して横縦を振り分けて印刷する手段をご存知の方、もしくは

    参考サイトをお教えいただければと思っております。

    なにとぞよろしくお願いします。

    Windows7Pro VisualStudio2015 を使用してます。



親記事 /過去ログ142より / 関連記事表示
削除チェック/

■83291  Re[1]: xpsファイルの印刷について
□投稿者/ とっちゃん -(2017/03/16(Thu) 13:11:14)
    No83267 (らいく さん) に返信

    > 現在xpsファイルを印刷するプログラムを構築中で、
    >
    > https://msdn.microsoft.com/ja-jp/library/aa969772
    >
    > を参考にして下記のコードを作成。
    >
    > Private Class BatchXPSPrinter
    >
    > Public Shared Sub PrintXPS()
    > Dim localPrintServer As New LocalPrintServer()
    > Dim defaultPrintQueue As PrintQueue = LocalPrintServer.GetDefaultPrintQueue()
    >
    > Dim nextFile As String = My.Application.Info.DirectoryPath & "\1.xps"
    > Dim xpsPrintJob As PrintSystemJobInfo = defaultPrintQueue.AddJob("1.xps", nextFile, False)
    >
    > End Sub
    > End Class
    >
    > Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    > Call BatchXPSPrinter.PrintXPS()
    > End Sub
    >
    本題ではないですが、
    Dim nextFile As String = My.Application.Info.DirectoryPath & "\1.xps"
    よりも、
    System.IO.Path.Combine を使った方がいいかな?という気がします。
    元のサンプルがあれなので、そうなってるのかもしれませんが。


    >
    > しかし、xpsファイル内の印刷物(A4用紙3枚程度)が横縦混在の場合、
    >
    > 横方向の印刷は用紙が縦で横印刷するため、印刷内容が収まりません。
    >
    > 判別して横縦を振り分けて印刷する手段をご存知の方、もしくは
    >
    > 参考サイトをお教えいただければと思っております。

    提示コードの PrintXPS() は、いわゆるバッチ処理というタイプのもので
    xpsファイルをプリンタドライバに直接的に渡して印刷してもらう形です。
    (xpsはもともと印刷向けに作られたフォーマット)

    なので、XPSをデータとして読み取って必要に応じてプリンタの初期化やら
    設定変更やらを施しつつ印刷するという段取りを改めて作り上げる必要があると思います。


    参考になるかわかりませんが、

    XPS ドキュメントの印刷
    https://msdn.microsoft.com/ja-jp/library/ms771525

    というのを見つけたので見てみてはいかがでしょうか?

    なお、XPSの処理を行う場合、WPF の知識も必要になってくるのでちょっと大変かもしれません。

    個人的には、作成する XPS ファイルを再加工性なくても済むように
    最初の出力の時点できちんと対応しておけばいいんじゃないの?
    という気がします。

    そうであれば、印刷処理は今のままでも問題なく行えます。
記事No.83267 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83313  Re[2]: xpsファイルの印刷について
□投稿者/ らいく -(2017/03/16(Thu) 20:32:49)
    No83291 (とっちゃん さん) に返信

    早速のお返事ありがとうございます。

    やはり、簡単には出来ないですよね・・・

    WPFについても学んでみたいと思います。

    ありがとうございました。
記事No.83267 のレス / END /過去ログ142より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -