2010-05-24 10 views
1

J'utilise Delphi 2009 et l'API COM MS Access Interop. J'essaie de comprendre deux choses, mais l'une est plus importante que l'autre en ce moment.MS Access Interop - Comment définir le nom de fichier d'impression?

J'ai besoin de savoir comment définir le nom de fichier lors de l'envoi du travail d'impression au spouleur. À l'heure actuelle, il s'agit du nom de la base de données Access, qui peut être différent du nom du fichier. Je dois juste m'assurer que lorsque cela est imprimé, il entre dans le spool d'impression en utilisant le même nom de fichier que le fichier lui-même - pas le nom de la base de données. Ma bobine d'imprimante est en fait un pilote d'impression virtuel qui convertit des documents en une image.

C'est mon problème principal. Le deuxième problème consiste à spécifier quelle imprimante utiliser. Ceci est moins important pour l'instant parce que je n'utilise que l'imprimante par défaut pour le moment. Ce serait bien si je pouvais spécifier l'imprimante à utiliser, cependant.

Est-ce que quelqu'un connaît l'un de ces deux problèmes? Merci d'avance.

Je vais aller de l'avant et coller mon code:

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. 

Répondre

2

Microsoft a issued a Hot Fix pour enregistrer les paramètres de dialogue Mise en page. Cela peut affecter votre code.

Les imprimantes peuvent être contrôlés par

  • AccessApp.Printers
    • Tous Liste de tous disponibles Imprimantes et paramètres
  • AccessApp.Printer
    • Possibilité de définir le courant imprimante pour utiliser ou ajuster les paramètres de l'imprimante actuelle.

Je ne suis pas familier avec votre pilote d'imprimante, donc je ne peux pas essayer de définir le nom du fichier.

+0

Bonne réponse. Je vous remercie. Malheureusement, je ne vois aucun moyen de définir le nom de fichier résultant dans le spouleur de l'imprimante - il utilise toujours le nom Access DB Name. – Ryan

Questions connexes