팝업 프린트 관련 질문드립니다.

팝업 프린트 관련 질문드립니다.

QA

팝업 프린트 관련 질문드립니다.

답변 2

본문

1893379372_1741163993.7607.png
이런 팝업을 제작했고
 

<div class="popup">
               <div class="bar_tit_wrap mb20">
                  <div class="bar_tit">사업신청서</div>
                  <div class="btb_btn">
                     <a href="#" class="btn-default btn-excel mar">PDF 저장</a>
                     <a href="#" class="btn-default btn-print">인쇄</a>
                  </div>
               </div>
               <div class="height_scroll h657">
                  <div class="ok_field_wrap">
                     <div class="ok_field_box mar">
                        <div class="ok_field">
                           <div class="th">테스터</div>
                           <div class="td">
                              <div class="isradio_wrap">
                                 <div class="isradio mar">
                                    <input type="radio" id="cycapplyGubunN" name="cycapplyGubun" value="N">
                                       <label for="cycapplyGubunN">신규</label>
                                 </div>
                                 <div class="isradio mar">
                                    <input type="radio" id="cycapplyGubunM" name="cycapplyGubun" value="M">
                                       <label for="cycapplyGubunM">변경</label>
                                 </div>
                              </div>
                           </div>
                        </div>
                     </div>
                     <div class="ok_field_box mar">
                        <div class="ok_field">
                           <div class="th">테스터</div>
                           <div class="td" id="orgNm"></div>
                        </div>
                     </div>
                     <div class="ok_field_box mar">
                        <div class="ok_field full">
                           <div class="th">테스터</div>
                           <div class="td">
                              <div class="table_scroll">
                                 <table class="rtable sm w960">
                                    <colgroup>
                                       <col width="15%">
                                       <col width="13%">
                                       <col width="10%">
                                       <col width="10%">
                                       <col width="17%">
                                       <col width="*">
                                       <col width="6%">
                                    </colgroup>
                                    <tbody id="manageList">
                                    <tr>
                                       <th>테스터</th>
                                       <th>테스터</th>
                                       <th>테스터</th>
                                       <th>테스터</th>
                                       <th>테스터</th>
                                       <th>테스터</th>
                                       <th>테스터</th>
                                    </tr>
                                    <tr><td><select class="gselect" name="cycapplyGubun"><option value="M" selected="">테스터</option><option value="S">테스터</option></select></td><td><input type="text" class="ginput wfull" name="cycapplyDept" value="테스터"></td><td><input type="text" class="ginput wfull" name="cycapplyNm" value="테스터"></td><td><input type="text" class="ginput wfull" name="cycapplyPos" value="테스터"></td><td><input type="text" class="ginput wfull" name="cycapplyTel" value="*** 개인정보보호를 위한 휴대폰번호 노출방지 ***"></td><td><input type="text" class="ginput wfull" name="cycapplyEmail" value="*** 개인정보보호를 위한 이메일주소 노출방지 ***"></td><td><div class="mincenter"><a href="#" class="add"><img src="/images/common/btn_plus.svg" alt=""></a></div></td></tr>
                                 </tbody></table>
                              </div>
                           </div>
                        </div>
                     </div>
                     <div class="ok_field_box mar">
                        <div class="ok_field full">
                           <div class="th">테스터</div>
                           <div class="td">
                              <div class="table_scroll">
                                 <table class="rtable sm w960">
                                    <colgroup>
                                       <col width="16%">
                                       <col width="17%">
                                       <col width="8%">
                                       <col width="8%">
                                       <col width="12%">
                                       <col width="8%">
                                       <col width="*">
                                       <col width="6%">
                                    </colgroup>
                                    <tbody id="surgery">
                                    <tr>
                                       <th>테스터</th>
                                       <th>테스터</th>
                                       <th>테스터</th>
                                       <th>테스터</th>
                                       <th>테스터</th>
                                       <th>테스터</th>
                                       <th>테스터</th>
                                       <th>테스터</th>
                                    </tr>
                                    <tr><td><select class="gselect" name="cycapplyDisease"><option value="I2" selected="">테스터</option><option value="I7">테스터</option><option value="K5">테스터</option><option value="K6">테스터</option><option value="O0">테스터</option><option value="R0">테스터</option></select></td><td><select class="gselect" name="cycapplyIsclinic"><option value="Y" selected="">Y</option><option value="N">N</option></select></td><td><input type="text" class="ginput wfull" name="cycapplyNm" value="테스터"></td><td><input type="text" class="ginput wfull" name="cycapplyMjr" value="테스팅과"></td><td><input type="text" class="ginput wfull" name="cycapplyMjrDetail" value="테스팅과"></td><td><input type="text" class="ginput wfull" name="cycapplySurCnt" value="3"></td><td><input type="text" class="ginput wfull" name="cycapplyReason" value="null"></td><td><div class="mincenter"><a href="#" class="sur_add"><img src="/images/common/btn_plus.svg" alt=""></a></div></td></tr>
                                        <tr><td><select class="gselect" name="cycapplyDisease"><option value="I2">응급혈관질환</option><option value="I7" selected="">급성대동맥증후군</option><option value="K5">소아급성복부질환
                                            (만 12세 이하)</option><option value="K6">성인복부질환</option><option value="O0">산부인과응급질환</option><option value="R0">기관지출혈/이물질</option></select></td><td><select class="gselect" name="cycapplyIsclinic"><option value="Y" selected="">Y</option><option value="N">N</option></select></td><td><input type="text" class="ginput wfull" name="cycapplyNm" value="테스터"></td><td><input type="text" class="ginput wfull" name="cycapplyMjr" value="테스팅과"></td><td><input type="text" class="ginput wfull" name="cycapplyMjrDetail" value="테스팅과"></td><td><input type="text" class="ginput wfull" name="cycapplySurCnt" value="4"></td><td><input type="text" class="ginput wfull" name="cycapplyReason" value="null"></td><td><div class="mincenter"><a href="#" class="del"><img src="/images/common/btn_del.svg" alt=""></a></div></td></tr>
                                 </tbody></table>
                              </div>
                           </div>
                        </div>
                     </div>
                     <div class="ok_field_box mar">
                        <div class="ok_field full">
                           <div class="th"></div>
                           <div class="td">
                              <div class="table_scroll">
                                 <table class="rtable sm w960">
                                    <colgroup>
                                       <col width="15%">
                                       <col width="12%">
                                       <col width="*">
                                       <col width="45%">
                                    </colgroup>
                                    <tbody id="bankList">
                                    <tr>
                                       <th>은행명</th>
                                       <th>예금주</th>
                                       <th>계좌번호</th>
                                       <th>통장사본 업로드</th>
                                    </tr>
                                    <tr><td><input type="text" class="ginput wfull" name="cycapplyBanknm" value=""></td><td><input type="text" class="ginput wfull" name="cycapplyOwnnm" value=""></td><td><input type="text" class="ginput wfull" name="cycapplyAccount" value=""></td><td><div class="file_list f2"><div class="btnin"><input id="accountFile" type="text" class="ginput wfull" readonly=""><div class="fileUpload btn btn-default btn-file jqx-widget jqx-widget-office jqx-widget-content jqx-widget-content-office jqx-rc-all jqx-rc-all-office jqx-file-upload jqx-file-upload-office" id="jqxWidget4b3ae98b" style="width: auto; height: auto;"><button id="jqxWidget4b3ae98bBrowseButton" class="jqx-file-upload-button-browse jqx-file-upload-button-browse-office jqx-rc-all jqx-rc-all-office jqx-button jqx-button-office jqx-widget jqx-widget-office jqx-fill-state-normal jqx-fill-state-normal-office" role="button" aria-disabled="false" style="width: auto;">파일찾기</button><div style="clear: both;"></div><div class="jqx-file-upload-buttons-container jqx-file-upload-buttons-container-office"><button id="jqxWidget4b3ae98bUploadButton" class="jqx-file-upload-button-upload jqx-file-upload-button-upload-office jqx-rc-all jqx-rc-all-office jqx-button jqx-button-office jqx-widget jqx-widget-office jqx-fill-state-normal jqx-fill-state-normal-office" role="button" aria-disabled="false" style="width: 90px;">Upload All</button><button id="jqxWidget4b3ae98bCancelButton" class="jqx-file-upload-button-cancel jqx-file-upload-button-cancel-office jqx-rc-all jqx-rc-all-office jqx-button jqx-button-office jqx-widget jqx-widget-office jqx-fill-state-normal jqx-fill-state-normal-office" role="button" aria-disabled="false" style="width: 90px;">Cancel All</button></div><div style="clear: both;"></div><iframe name="jqxWidget4b3ae98bIframe" class="jqx-file-upload-iframe jqx-file-upload-iframe-office" src=""></iframe><form class="jqx-file-upload-form jqx-file-upload-form-office" action="/component/board/boardFileUploadAjax.do" target="jqxWidget4b3ae98bIframe" method="post" enctype="multipart/form-data"><input type="file" class="jqx-file-upload-file-input jqx-file-upload-file-input-office"></form></div></div></div></td></tr>
                                 </tbody></table>
                              </div>
                           </div>
                        </div>
                     </div>
                     <div class="ok_field_box">
                        <div class="ok_field textareapad">
                           <div class="th">첨부파일</div>
                           <div class="td">
                              <div class="btnin xsfull"><input type="text" class="ginput wfull" value=""><a href="#" class="fileUpload2 btn btn-default btn-file"></a></div>
                              <div class="file_list" id="file_list">
                                <div class="fl_cell" style="cursor:pointer;" data-id="22077">KakaoTalk.jpg<div class="file_div_delete"><button class="btn_delete" data-id="22077" type="button" onclick="boardFileDelete(this)">삭제</button></div></div>
                              </div>
                           </div>
                        </div>
                     </div>
                  </div>
               </div>

               <div class="btn_area center">
                  <button type="button" class="btn-default btn-save save mar">저장</button>
                  
                  <button type="button" class="btn-default btn-no">취소</button>
               </div>
            </div>

이런 구조입니다.
 

 document.addEventListener("DOMContentLoaded", function () {

    let printButton = document.querySelector(".btn-print");

 

    if (!printButton) {

        console.error("");

        return;

    }

 

    printButton.addEventListener("click", function () {

        window.print();

    });

});
이런 js로 print창을 띄우면
1893379372_1741164116.697.png

화면에 가득 차지 않고 매우 작게 나옵니다.
 

    @media print {

    body * {

        visibility: hidden;

    }


 

    .popup, .popup * {

        visibility: visible !important;

    }

 

    .popup {

        position: absolute !important;

        left: 50% !important;

        top: 0 !important;

        transform: translateX(-50%) !important;

        width: 210mm !important;

        height: 297mm !important;

        background: white !important;

        padding: 10mm !important;

        display: flex !important;

        flex-direction: column !important;

        justify-content: space-between !important;

        box-shadow: none !important;

        overflow: hidden !important;

    }

 

    {

        size: A4;

        margin: 0;

    }

 

    .popup table {

        width: 100% !important;

        border-collapse: collapse !important;

        font-size: 14px !important;

    }

 

    .btn-print {

        display: none !important;

    }

}

@media print는 이렇게 짯는데 어떤 부분이 잘못되었을까요
항상 부족해서 질문하게 됩니다. ㅠ
잘 부탁드립니다 열심히 발전하겠습니다

 

이 질문에 댓글 쓰기 :

답변 2

@media print 내의 .popup 클래스에 고정된 position과 width·height 사용 대신,

유연한 레이아웃(position: static, width: 100% 등)을 적용하시면~

>>> 아래는, 인쇄 시 팝업이 화면에 가득 차고

  브라우저나 프린터 설정에 따라 자동으로 맞춤 인쇄되는 방안을 찾아봅니다.

*.popup에 position: static !important;나 position: relative !important;를 적용하여,

  절대 배치와 수평 이동(transform)을 제거.

*.popup에 width: 100% !important; height: auto !important;를 설정해

  브라우저가 용지 크기에 맞춰 최적의 비율로 인쇄할 수 있게 함.

*body * { visibility: hidden; }와 같이 일괄 숨김 처리 후

  .popup, .popup *만 visibility: visible !important;로 바꾸는 것은 인쇄용으로 종종 사용 됨.

  -- .popup이 부모 요소의 영향을 받지 않도록

     position: static이나 z-index를 적절히 조정해 주는 것이 중요 함.

*필요시, "@ page 규칙"으로 용지 방향이나 여백을 세부적으로 조정 가능.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 434
© SIRSOFT
현재 페이지 제일 처음으로