2014-07-24 22 views
6

Sto sviluppando un'applicazione per la generazione automatica da Excel a PDF. Ogni tanto (e senza alcuna causa apparente, il seguente pop-up viene in su mentre il programma viene eseguito:Automazione di Excel: esportazione PDF provoca popup "Impostazione stampante"

Stampa driver host per le applicazioni a 32 bit ha smesso di funzionare

Print driver host for 32bit applications stopped working

e, poco. dopo, questo:

configurazione della stampante

Printer setup Popup

Cosa devo fare se devo fare qui? La mia applicazione non è eccessivamente complessa. L'errore di sempre (100%) si verifica su questa linea:

_application.ActiveWorkbook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, 
    pdfTemplatePath, Excel.XlFixedFormatQuality.xlQualityStandard, 
    _, _, 1, pdfPrintAreaEnd); 

dove le variabili in questione sono:

Excel := Microsoft.Office.Intertop.Excel 
_application := Excel.Application 
_ := System.Type.Missing 
pdfPrintAreaEnd := int 6 

Il messaggio di eccezione è la seguente:

System.Runtime.InteropServices.COMException (0x800A03EC): 
    Exception from HRESULT: 0x800A03EC 

Quello che sta accadendo Qui? E, cosa più importante: perché succede solo ogni tanto?

risposta

9

Ok, quindi, dopo alcune ricerche su questo argomento, ho riscontrato quello che credo sia uno dei più aspetti di automazione di Excel che ho incontrato finora.

Il messaggio di errore è coerente con altri casi di utilizzo di Excel che sono entrambi automatizzati e non. Il comune denominatore in tutti questi casi è (fibbia in su!) Che una stampante di rete è stata impostata come stampante predefinita.

Proprio così: avere una stampante di rete come predefinita, anche quando si stampa usando una stampante completamente diversa o nessuna stampante (come nel caso dell'esportazione in PDF, che non è la stessa cosa della stampa ad es. , giusto?) causerà questo errore a a volte su alcune macchine pop-up.

ho cambiato la stampante predefinita a qualcosa di interno, come Microsoft XPS Document Printer, ha cercato di nuovo e ora posso esportare centinaia e migliaia di file PDF, senza una singola occorrenza del messaggio di errore.