Try this: (CONSOLE for tests... )
Código Delphi
[-]
program ConverterBullzipCom;
{$APPTYPE CONSOLE}
uses
System.SysUtils,
System.Variants,
Winapi.Windows,
Winapi.ShellAPI,
System.Win.ComObj,
Winapi.Ole2;
procedure ExecutarAutomacaoBullzip;
var
LBullzipSettings: OleVariant;
LPrinterName : string;
LArquivoOrigem : string;
LRetorno : NativeInt;
begin
CoInitialize( nil );
try
try
LBullzipSettings := CreateOleObject( 'Bullzip.PDFPrinterSettings' );
LBullzipSettings.SetValue( 'Output', 'C:\destino\mi_documento.pdf' );
LBullzipSettings.SetValue( 'ShowPDF', 'no' );
LBullzipSettings.SetValue( 'ShowSettings', 'never' );
LBullzipSettings.SetValue( 'ConfirmOverwrite', 'no' );
LBullzipSettings.WriteSettings( True );
LBullzipSettings := Unassigned;
Writeln( 'Configuração inyectada. Enviando arquivo para "Bullzip PDF Printer"...' );
LPrinterName := 'Bullzip PDF Printer';
LArquivoOrigem := 'C:\origen\documento.txt';
LRetorno := ShellExecute( 0, 'printto', PChar( LArquivoOrigem ), PChar( LPrinterName ), nil, SW_HIDE );
if LRetorno > 32 then
Writeln( '¡Comando de impresión enviado con éxito!' )
else
Writeln( 'Error al enviar a imprimir. Código: ', LRetorno );
except
on E: Exception do
begin
Writeln( 'Excepción capturada: ', E.Message );
end;
end;
finally
CoUninitialize( );
end;
end;
begin
ExecutarAutomacaoBullzip;
Writeln( 'Presiona ENTER para salir...' );
Readln;
end.