Delphi MS Access互操作-如何设置打印文件名?

Delphi MS Access互操作-如何设置打印文件名?,delphi,ms-access,interop,printing,Delphi,Ms Access,Interop,Printing,我正在使用Delphi2009和MS Access Interop COM API。我想弄明白两件事,但现在一件比另一件更重要 我需要知道在将打印作业发送到后台打印程序时如何设置文件名。现在它默认为Access DB的名称,可以是与文件名不同的名称。我需要确保打印时,它使用与实际文件本身相同的文件名(而不是DB的名称)进入打印假脱机。我的打印机spool实际上是一个将文档转换为图像的虚拟打印驱动程序 这是我的主要问题。第二个问题是如何指定要使用的打印机。目前这一点不太重要,因为我现在只使用默认打

我正在使用Delphi2009和MS Access Interop COM API。我想弄明白两件事,但现在一件比另一件更重要

我需要知道在将打印作业发送到后台打印程序时如何设置文件名。现在它默认为Access DB的名称,可以是与文件名不同的名称。我需要确保打印时,它使用与实际文件本身相同的文件名(而不是DB的名称)进入打印假脱机。我的打印机spool实际上是一个将文档转换为图像的虚拟打印驱动程序

这是我的主要问题。第二个问题是如何指定要使用的打印机。目前这一点不太重要,因为我现在只使用默认打印机。不过,如果我能指定要使用的打印机,那就太好了

有人知道这两个问题吗?先谢谢你

我将继续粘贴我的代码:

unit Converter.Handlers.Office.Access;

interface

  uses
    sysutils, variants,
    Converter.Printer,
    Office_TLB, Access_TLB, UDC_TLB;

  procedure ToTiff(p_Printer: PrinterDriver; p_InputFile, p_OutputFile: String);

implementation

  procedure ToTiff(p_Printer: PrinterDriver; p_InputFile, p_OutputFile: String);
  var
    AccessApp : AccessApplication;
  begin
    AccessApp := CoAccessApplication.Create;
    AccessApp.Visible := False;

    try
      AccessApp.OpenCurrentDatabase(p_InputFile, True, '');
      AccessApp.RunCommand(acCmdQuickPrint);
      AccessApp.CloseCurrentDatabase;
    finally
      AccessApp.Quit(acQuitSaveNone);
    end;
  end;

end.
Microsoft提供了保存页面设置对话框设置的方法。这可能会影响您的代码

可以通过以下方式控制打印机:

  • AccessApp.Printers
    • 所有可用打印机和设置的所有列表
  • AccessApp.打印机
    • 能够设置当前打印机以使用或调整当前打印机的设置

我不熟悉您的打印机驱动程序,因此无法尝试设置文件名。

响应良好。非常感谢。不幸的是,我看不到任何方法来设置打印机假脱机中的结果文件名-它仍然使用Access DB名称。