2011-09-01 5 views
0

VB.Net WinForms 응용 프로그램에서 일하고 있어요. 이 응용 프로그램은 생산 라인의 행을 보여줍니다 사용자가 행을 내려 가서 ActiveReports 문서의 패키지를 인쇄합니다. 이 패키지는 최대 9 개의 보고서를 포함 할 수 있습니다. 패키지를 선택하고 인쇄하라고, 그것은 다음 ActiveReports '메커니즘을 사용하여 시스템의 기본 프린터로 직접 전송됩니다 :일반 GDI + 예외 다음 OutOfMemory 예외에 의해

rpt.Document.Print(False, False, True) 

이 보고서는 이미지가 파일 시스템에서 뽑아 사용합니다.

A generic error ocurred in GDI+ 

그런 다음에 : 그들은 신속하게 행을 실행하면, 그들은 종종 발생

Exception of type "System.OutOfMemoryException" was thrown. 

이 인쇄되지 일부 문서를 유발하고 돌아가서 사람이 'didn를 알아낼해야 인쇄하지 마십시오. 프린터가 메모리가 부족하다는 것을 알고 있으므로 프린터 메모리가 가득 차거나 보고서를 인쇄 할 때 동일한 이미지를 사용하여 문제를 일으키려고합니다.

프린터 메모리가 가득 찬 경우 문서를 인쇄 대기열에 추가하는 속도를 늦추거나 적어도 대기를 위해 일시 ​​중지하는 방법이 있습니까? 저는 일종의 상실감이 있으며 어떤 제안을해도 감사 할 것입니다.

감사합니다.

+1

지원을 위해 공급 업체에 문의하십시오. –

+0

나는 그 (것)들에게 지원 전자 우편을 역시 보내고 아직도 듣기 위하여 기다리고있다. 패키지간에 스레드를 잠 그어 프린터 메모리가 정리 될 때까지 기다릴 것인지 확인하려고합니다. 또한 보고서를 PDF로 저장 한 다음 프린터로 보내는 것도 생각하고있었습니다. Adobe SDK를 사용하여 파일에서 PDF를 프린터로 직접 보낼 수 있습니까? –

+0

"GDI +에서 일반 오류가 발생했습니다."오류에 대한 호출 스택을 제공 할 수 있습니까? 이렇게하면 문제를 격리하는 데 많은 도움이됩니다. –

답변

1

ActiveReports에 내장 된 캐싱 기능을 사용하기로 결정했습니다. 프린터의 문제점을 완화하는 것 같았습니다. 인쇄 대기열에 더 많은 문서를 추가하기 전에 메모리가 지워지는 것을 확인하기 위해 스레드의 속도를 늦추는 방법도 추가했습니다. 감사.

관련 문제