2011-09-06 9 views
0

나는 자동으로 팩스를 생성하는 응용 프로그램을 만들고 있습니다. 시스템은 단어 interop을 사용하여 템플릿 .doc 파일을 값으로 채 웁니다 (잘 작동합니다). 그러나 결과 파일을 pcl로 인쇄 할 때가되면 문제가 있습니다.Word.Interop pcl 파일로 인쇄하십시오.

이렇게 우리는 .pcl 파일을 인쇄하는 HP Laserjet 프린터를 설치했습니다.

Dim appWord As New Word.Application 
Dim doc As New Word.Document 
appWord.ActivePrinter = PCL_PRINTER 
doc = appWord.Documents.Open(APPLICATION_DIR & "LTL_" & n.Language & ".doc") 

...

outFile = APPLICATION_DIR & "Faxout\DROPDIR\" & n.Order & ".pcl" 
doc.PrintOut(True, True, , outFile, , , , , , , True) 
'cleanup... 

문제가 doc.PrintOut 라인이 실행될 때, 단어가 메시지 팝업, 불평이다 (값으로 파일을 기입) : The file 1472136.pcl is not available.

I을 여러 가지 조합을 시도했지만 오류 메시지가 계속 표시됩니다. 가끔은 실제로 작동하고 유용한 pcl 파일을 생성하지만 98 %의 시간 동안 오류 메시지가 나타나고 전체 프로세스가 중단됩니다.

우리는 동일한 서버에 다른 응용 프로그램이 있습니다 (단어 대신 Excel에서 인쇄한다는 점을 제외하고는 거의 똑같은 작업을 수행함). 오류를 발생시키지 않고 작업 할 수 있습니다.

아무도 도와 줄 수 있습니까?

+0

방금 ​​알아 냈습니다. 분명히 파일을 작성하기 전에 파일을 만들어야합니다. 이전에 파일을 만들려고했으나 Create가 단어를 출력하기 전에 닫아야 할 파일 스트림을 반환했음을 알지 못했습니다. 파일 스트림 개체가있는 파일에 대한 잠금을 만들지 않는 vb.net에서 파일을 만드는 방법이 있습니까? 이 버전이 작동하지만 코드를 약간 정리하는 데 도움이됩니다. – tdoan

+0

나는 분명히 또 다른 7 시간 동안 "내 질문에 대답"을 할 수 없으므로 내일 더 완벽한 해결책을 게시해야 할 것입니다. – tdoan

답변

0

나는 그것을 알아 냈다. 분명히 파일을 작성하기 전에 파일을 만들어야합니다.

예 : 내가 이전에 파일을 생성하려고했던,하지만 단어가 그것 같이 인쇄 전에 닫아야하는 데 필요한 파일 스트림을 반환 만드는 것이 몰랐어요

Dim fs As FileStream 
fs = System.IO.File.Create(outFile) 
fs.Close() 
fs = Nothing 
doc.PrintOut(True, True, , outFile, , , , , , , True) 

.

파일 스트림 개체가있는 파일에 대한 잠금을 만들지 않는 vb.net에서 파일을 만드는 방법이 있습니까? 이 버전이 작동하지만 코드를 약간 정리하는 것이 좋습니다.

0

도움이 될지 모르겠지만 해당 컴퓨터에 바이러스 백신 소프트웨어가 있습니까? 그렇다면 사용 중지하려고 했습니까? 때때로 백그라운드에서 파일에 액세스하는 바이러스 스캐너에 문제가있어 임시 파일의 액세스 또는 삭제를 차단합니다.

+0

감사합니다. 해결책을 찾았습니다. 바이러스 스캐너가 아무 관련이 없다는 것을 알았지 만 좋은 생각이었습니다! – tdoan

관련 문제