Basicの印刷 給紙方法の設定について

条件に応じて給紙方法を設定したいです。
印刷設定についての知識や参考資料があれば教えてください。

現状、vb.netからcalcへの値の代入、および印刷まではできたのですが、
給紙方法の設定に関する情報がありません。
Basicからの設定方法はないのでしょうか

ページスタイルに用紙トレイの設定項目があるのでもしかしたらできるのかもしれません

OpenOffice.org Macros Explained.odt V4.1
https://www.pitonyak.org/oo.php
383ページあたりに記載あり

1 Like

以下の部分でしょうか?
まだ試せていませんが。。

Sub printPage(sTray1, sTray2, bBg1, bBg2, wait, sPageNr)
' ------------------------------
' This macro prints the document given the chosen arguments
'
' Written by Vincent Van Houtte (2010)
' ------------------------------
   DIM oDoc AS Object
   oDoc = ThisComponent

   REM Set backgroundImage-option in DocumentSettings to False
   DIM oSettings AS Object
   oSettings = oDoc.createInstance("com.sun.star.text.DocumentSettings")
   oSettings.PrintPageBackground = bBg1

   REM choose a certain printer
   DIM mPrinterOpts(3) AS NEW com.sun.star.beans.PropertyValue
   mPrinterOpts(0).Name = "Name"
   mPrinterOpts(0).Value = "MFC8880DN"
   mPrinterOpts(1).Name = "PaperFormat"
   mPrinterOpts(1).Value = com.sun.star.view.PaperFormat.A4
   mPrinterOpts(2).Name = "PaperOrientation"
   mPrinterOpts(2).Value = com.sun.star.view.PaperOrientation.PORTRAIT
   oDoc.Printer = mPrinterOpts()

   REM set Papertray in Styles
   DIM oStyle AS Object
   DIM sPageStyle AS String   
   sPageStyle = oDoc.CurrentController.getViewCursor().PageStyleName
   ostyle = oDoc.StyleFamilies.getByName("PageStyles").getByName(sPageStyle)
   oStyle.PrinterPaperTray = sTray1

   REM Set printOptions
   DIM mPrintOpts(3) AS NEW com.sun.star.beans.PropertyValue
   mPrintOpts(0).Name = "CopyCount"
   mPrintOpts(0).Value = 1
   mPrintOpts(1).Name = "Collate"
   mPrintOpts(1).Value = True
   mPrintOpts(2).Name = "Pages"
   mPrintOpts(2).Value = sPageNr
   mPrintOpts(3).Name = "Wait"
   mPrintOpts(3).Value = True

   REM Print
   oDoc.Print(mPrintOpts())

   REM RESET OPTIONS
   REM Reset backgroundImage-option in DocumentSettings
   oSettings.PrintPageBackground = bBg2
   REM Reset Papertray in Styles
   oStyle.PrinterPaperTray = sTray2
   REM Do a 0-print to complete the reset
   DIM mPrintOpts2(0) AS NEW com.sun.star.beans.PropertyValue
   mPrintOpts2(0).Name = "CopyCount"
   mPrintOpts2(0).Value = 0
   oDoc.Print(mPrintOpts2())
End Sub

手の操作ではどうなりますか?

印刷設定で操作するのならそれは一つのプリンターに対して
プリンタードライバーを2つ設置することで
それぞれ別の設定してプリンター切り替えで実現するのが
EXCELでは一般的で、それが流用できるのではと・・。

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12200695442?__ysp=44OX44Oq44Oz44K%2F44O844OJ44Op44Kk44OQ44CA5Y2w5Yi36Kit5a6a

3 Likes

ドライバーを2つ設置…!?
その手がありましたか!!
ありがとうございます試してみます!!

1 Like