【问题标题】:MS Access Interop - How to set print filename?MS Access Interop - 如何设置打印文件名?
【发布时间】:2010-05-24 15:56:55
【问题描述】:

我正在使用 Delphi 2009 和 MS Access Interop COM API。我试图弄清楚两件事,但现在一件事比另一件事更重要。

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

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

有人知道这两个问题吗?

这是我的代码:

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.

【问题讨论】:

    标签: delphi ms-access interop printing


    【解决方案1】:

    Microsoft 有issued a Hot Fix 用于保存页面设置对话框设置。这可能会影响您的代码。

    打印机可以通过控制

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

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

    【讨论】:

    • 反响很好。谢谢你。不幸的是,我看不到任何方法可以在打印机假脱机中设置生成的文件名 - 它仍在使用 Access DB 名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多