2012-10-07 6 views
2

가능한 브라더 프린터와 쓰레기로 인쇄 : 다른 프린터에서 인쇄하는 동안
Delphi: How to print a PDF without showing it?PDF 중복

내가 다른 동작을 발생하고있다. 내 프린터에서 PDF 인쇄가 올바르지 만 "Brother"프린터를 사용하면 동일한 PDF가 횡 설문으로 인쇄됩니다 (파일의 내용이 인쇄 됨). Adobe Reader를 사용하여 동일한 PDF 파일을 프린터로 직접 보내면 동생 프린터에서도 제대로 인쇄됩니다.

PDF 파일을 인쇄하려면 LoadFromFile 함수를 사용하여 TMemoryStream 객체의 내용을 읽어야합니다. 지정된 docinfo 값은 아래와합니다 - WritePrinter 함수를 사용하여 그 후

DocInfo.pDocName := pChar('My Document'); 
DocInfo.pOutput := Nil; 
DocInfo.pDatatype := pChar('RAW'); 

이 명령은 프린터 핸들로 전송한다.

형제 프린터가 PDF 인코딩 형식을 읽을 수없는 것처럼 보입니다.

이와 관련하여 도움이 되시길 바랍니다.

P.S : 제 신청서는 Delphi4에 있습니다.

+0

@ Jeroen, 아래 ShellExecute (Application.Handle, 'printto', 'Filename', PChar (printerInfo), nil, SW_HIDE)와 같은 ShellExecute 명령을 사용하여 동일한 pdf를 인쇄하려고했습니다. 그러나 이것으로 인쇄 할 수 있었지만 다른 한편으로는 성가신 Adobe Reader 팝업이 열립니다. 이 팝업을 숨기고 싶지 않은 옵션이 있습니까? 감사. – Vic

+0

@Vic에 오신 것을 환영합니다. 내 대답에 언급 된 다른 옵션을 읽어보십시오. 또한 질문에 대답하지 말고 대답해야합니다. 이것이 답변을 게시하는 사람들이 의견을받는 유일한 방법입니다. –

답변

3

WritePrintersending raw printer specific data to a printer입니다.

일부 프린터는 PDF를 이해하지만 일부 프린터는 그렇지 않습니다.

PDF를 이해하는 응용 프로그램에서 프린터로 인쇄해야합니다.

많은 응용 프로그램이 그 중 가장 눈에 띄는 것은 물론 Adobe Reader입니다.

This answer shows three ways of doing that : Adobe Reader ActiveX, Adobe Reader 응용 프로그램, GhostView/GhostPrint. 또한 몇 가지 다른 방법을 언급합니다.

+0

감사 Jeroen. WritePrinter를 사용하여 명령을 읽고 보내면 모든 것이 쓰레기로 인쇄되지만 문서를 프린터로 직접 보내는 것은 문제가되지 않습니다. 이 문제는 Brother 프린터에서만 발생하며 다른 프린터에서는 문제가되지 않습니다. 또한, 게시물에 제공된 다른 옵션을 확인하려고했지만 불행히도 내 응용 프로그램이 델파이 4 그래서 제 3 자 구성 요소를 사용할 수있는 제 3 자 구성 요소를 많이하지 않으며 확실하지 오전 제 3 자 구성 요소를 구입할 수 있습니다. 필자는 문서를 프린터로 직접 보낼 수 있지만 어도비 팝업이 제대로 보이지 않습니다. – Vic

+0

@Vic 제 대답에 언급 된 Adobe Reader 솔루션은 Delphi 4에서도 작동 할 가능성이 높지만 Delphi 4는 델파이 중 가장 버그가 많은 버전 중 하나였습니다. –