如何做到多次 打印过程(每次打印设置不同)中,后面的打印不受前面打印的设置影响? ( 积分: 100 )

  • 主题发起人 主题发起人 delhpi
  • 开始时间 开始时间
D

delhpi

Unregistered / Unconfirmed
GUEST, unregistred user!
5、软件经常采用下面类似代码
========================
with Printerdo
GetPrinter(Device, Driver, Port, ADevMode);
if ADevMode <> 0 then
pDMode := GlobalLock(ADevMode);
FMode.dmFields := DM_PAPERSIZE;//要修改的项目,这些项目包括在windows.pas的14022行中
FMode.dmPaperSize := PaperSizes[ListBox2.ItemIndex];
FMode.dmOrientation := ;
FMode.dmCopies := ;
==================
设置纸张大小,打印方向,打印份数。
假设我的一个ButtonA下,打印前设置了纸张大小=b4,打印方向=横向,打印份数=3,然后打印。
在buttonB下,我没有做任何设置,这时 纸张大小,打印方向 和 打印份数 3个项目的设置值应该是打印机的默认值吧,不会受我第一次ButtonA打印的设置影响吧?
或者说,如何做到多次 打印过程(每次打印设置不同)中,后面的打印不受前面打印的设置影响?
谢谢。
 
帮忙解决的,再加100分
 
delphi老兄,你在每次使用什麼模式再設為那種模式不就可以了嗎,好像上面的打印模式只對你的運行中的程序起作用,對別的程式無影響
 
我现在测试的情况是,
ButtonA下,打印前设置了纸张大小=b4,打印方向=横向,打印份数=3,然后打印。
在buttonB下,我没有做任何设置,直接输出内容,这时 软件会用第一次打印时的设置打印,我在buttonB下面没有做任何设置的目的,是希望软件以打印机默认的设置打印输出,而不是第一次的打印设置值。
比如ButtonA下,我设置的纸张大小是B4,打印结束后,在ButtonB中,我没有指定纸张大小,我希望软件以打印机默认的纸张大小 打印,但我发现,如果在ButtonB中,不设置纸张的话,软件会以B4位纸张大小输出,而不是打印机的默认纸张大小。
 
對啊,打印模式只對你的運行中的程序起作用,對別的程式無影響,即是說,只要你在你的應用程序中改變了打印模式,其它軟件是不受影響的,且不管是BUttonA還是ButtonB因為你先改變了模式,所以在這個程式還在運行期間,只要你不改成其它模式它自己就是使用前一個模式,這個好像是在哪裏有看到過,你就改一改模式吧.呵呵,我只知道這些
 
先编一个 GetDefaultMode 函数将打印机默认数据存起来。
再编一个 SetDefaultMode 函数将打印机设置未默认数据。
在 ButtonB 中先调用 SetDefaultMode 然后再打印。
 
我知道 我的软件和别的软件在打印设置上 是不会发生相互影响的。
但是,我现在的问题是,我的软件内部,两个或者多个 打印Button
(根据需要,有的打印按钮下进行了4个打印选项的设置,有的进行了2个打印选项设置,有的不需要设置,用打印机的默认设置),
如何让这些button的打印操作在打印设置上相互不影响。

kaida 的回复也许是个办法,我试试。
但不知道像这种需求情况,更合适、更合理的方法是怎样的?
一次
//设置打印选项
printer.begin
doc
printer.enddoc
后,打印机的设置没有恢复到打印机的默认设置?
也就是所说,即使一次打印已经结束,只要打印过程中,修改了打印设置,打印机的打印设置还是处于修改后的设置状态,不会恢复默认设置,如果接着打印,但不进行打印设置,那么,就会以前次打印过程中的设置状态打印?
难道不能让打印设置恢复为默认设置?
 
我的经验是:第二次打印受上次打印设置的影响,除非你重新设置了!
 
来自:leehq, 时间:2007-2-7 11:10:54, ID:3667116
我的经验是:第二次打印受上次打印设置的影响,除非你重新设置了!
===================
就是啊,我希望第二次 不受第一次 打印设置的影响,希望第二次 以打印机的默认设置 打印输出。
 
那麼就在第一次打印後復位設置不就好了?
 
后退
顶部