2012-12-06 3 views
4

PDF 파일을 서버와 동일한 네트워크에있는 네트워크 프린터로 인쇄하는 방법이 있지만 서버가 원격 인 경우에는 도움이되지 않습니다. 내 상황에서는 사용자가 "레이블 인쇄"링크를 클릭 한 다음 형식이 지정된 PDF 파일을 생성하여 출력합니다. 저는 현재 "스트림"브라우저에 파일 출력 어도비 리더가 자동으로 다음 코드를 사용하여 여는 등 :PDF 파일을위한 프린터 대화 상자를 자동으로 엽니 다.

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Content-type: application/pdf"); 
header('Content-Disposition: attachment; filename="labels.pdf"'); 
readfile($ServerPathToFile); 

자동으로 열리도록 인쇄 대화 상자를 트리거이 코드에 추가 할 수있는 다른 무언가가 거기를 그래서 그들은 인쇄물을 클릭해야만합니까? 이 경우 Google CloudPrint는 옵션이 아니며 사용자가 '특수 설정'을해야하는 다른 작업도 아니므로 다양한 사용자가 사용하게됩니다.

+0

당신은, PHP에서이 작업을 수행하지 않을 것입니다. 당신이하고 싶은 것은 클라이언트 머신에서 발생하기 때문에 Javascript의'window.print()'와 같은 것을 사용할 것이다. – Ben

+0

@Steve - Adobe Reader (또는 사용자의 기본 PDF 소프트웨어가 무엇이든간에) 내에서 PDF가 열리기 때문에 작동하지 않습니다 ... 웹 브라우저 창 내에서 ... – techtheatre

+0

PDF가 열리지 않는지 충분히 알고 있습니다. 브라우저 창 "사용자의 기본 PDF 소프트웨어"는 사용자의 컴퓨터에 설치됩니다. 인쇄를 원하면 사용자 컴퓨터를 통해 인쇄 대화 상자에 액세스해야합니다.이 대화 상자는 PHP를 사용하여 수행 할 수 없으며 수행하지 않아야합니다. 방문한 모든 웹 사이트에서 컴퓨터에서 물건을 실행할 수 있다면 어떨까요? – Ben

답변

3

동일한 도메인의 하위 창()에 PDF를 출력 한 다음 해당 창에서 window.print()을 호출 할 수 있습니다. iframe이 페이지에서

<p>Don't forget to print your document!</p> 
<iframe src="/path/to/your/pdfgenerator.php" id="mypdf"></iframe> 

<script> 
function printIframe(id) { 
    var iframe = document.frames ? document.frames[id] : document.getElementById(id); 
    var ifWin = iframe.contentWindow || iframe; 
    iframe.focus(); 
    ifWin.printPage(); 
    return false; 
} 
</script> 

이 추가 : PHP는 서버 시스템에 작용하기 때문에

function printPage() { 
    print(); 
} 
+0

@Steve에 감사드립니다. 편집을 롤백했습니다. '

0

방금 ​​브라우저의 라벨을 네트워크의 dymo 라벨 프린터로 인쇄 한 프로젝트에서 방금 나왔습니다. 당신은 자바 스크립트로 이것을해야합니다. 나는 Dymo의 SDK를 사용하고 키오스크에 등록 된 사람의 이름 태그를 자동 인쇄하기 위해 자체 사용자 인터페이스를 만들었습니다. 이름표는 그 다음 주된 체크인 역에서 그들을 기다리고 있었다.

사용 된 srcipt는 서버에 설치해야하며 네트워크의 다른 모든 사람들이 네트워크 프린터로 인쇄 할 수 있습니다.

+0

은 흥미로운 것 같습니다.하지만이 경우 "사용자"는 전국에 퍼져있는 다양한 사람들이 각기 다른 네트워크 설정 및 프린터를 사용합니다 ... 따라서 로컬로 액세스 할 수있는 프린터를 사용할 수있는 PDF 인쇄가 최선의 선택입니다. 그건 ... 내가 일하고있는 또 다른 프로젝트에 대해 언급 한 것과 같은 것을 고려했을 때 유용 할 것 같다. 코드를 공유하고 여기에 링크를 게시 할 수 있다고 생각하지 않습니까? – techtheatre

+0

@ROY Finley, 코드를 공유 하시겠습니까? 비슷한 프로젝트가 있지만 얼룩말 프린터를 사용하고 배지에 qr 코드를 사용하려고합니다. 데이터베이스에 사용자 데이터가 있고 레이아웃이 tcpdf_min 인 pdf (배지 크기)로되어 있습니다. – alex

관련 문제