2010-05-24 1 views
1

Я использую Delphi 2009 и API доступа Inter Access COM API. Я пытаюсь разобраться в двух вещах, но сейчас важнее другого.MS Access Interop - Как установить имя файла печати?

Мне нужно знать, как установить имя файла при отправке задания печати в спулер. Сейчас он по умолчанию использует имя БД доступа, которое может быть чем-то иным, чем имя файла. Мне нужно просто убедиться, что когда это будет напечатано, он войдет в печатную катушку, используя то же имя файла, что и сам фактический файл, а не имя БД. Мой принтер-спутник - фактически виртуальный драйвер печати, который преобразует документы в изображение.

Это моя основная проблема. Вторая проблема заключается в том, как указать, какой принтер использовать. В настоящее время это менее важно, потому что сейчас я использую принтер по умолчанию. Было бы неплохо, если бы я мог указать принтер для использования.

Кто-нибудь знает об этих двух проблемах? Заранее спасибо.

Я буду идти вперед и вставить свой код:

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. 

ответ

2

Microsoft имеет issued a Hot Fix для сохранения параметров страницы в диалоге настроек. Это может повлиять на ваш код.

принтеры можно управлять с помощью

  • AccessApp.Printers
    • Все Список всех доступных принтеров и настройки
  • AccessApp.Printer
    • Возможность установки тока принтера для использования или настройки параметров текущего принтера.

Я не знаком с драйвером принтера, так что я не могу попытаться установить имя файла.

+0

Отличный отклик. Спасибо. К сожалению, я не вижу способа установить результирующее имя файла в spool принтера - он все еще использует имя Access DB. – Ryan