파이썬으로 인쇄 기본설정을 열고 싶습니다.

조회수 423회

혹시 실행 명령어라도 없습니까?

  • (•́ ✖ •̀)
    알 수 없는 사용자

9 답변

  • def btnClick(self): # 프린터 생성, 실행 printer = QPrinter() dlg = QPrintDialog(printer, self) if dlg.exec() == QDialog.Accepted: # Painter 생성 qp = QPainter() qp.begin(printer)

            # 여백 비율
            wgap = printer.pageRect().width()*0.1
            hgap = printer.pageRect().height()*0.1
    
            # 화면 중앙에 위젯 배치
            xscale = (printer.pageRect().width()-wgap)/self.table.width()
            yscale = (printer.pageRect().height()-hgap)/self.table.height()
            scale = xscale if xscale < yscale else yscale        
            qp.translate(printer.paperRect().x() + printer.pageRect().width()/2, printer.paperRect().y() + printer.pageRect().height()/2)
            qp.scale(scale, scale);
            qp.translate(-self.table.width()/2, -self.table.height()/2);        
    
            # 인쇄
            self.table.render(qp)
    
            qp.end()  
    
    def btnClick2(self):
        # pdf 생성
        pdf = QPdfWriter('test.pdf')
        pdf.setPageSize(QPagedPaintDevice.A4)
    
        # 화면 캡쳐        
        screen = QApplication.primaryScreen()
        img = screen.grabWindow(self.winId(), 0,0, self.rect().width(),self.rect().height())
    
        # 3항 연산자 (a if test else b, 만약 test가 참이면 a, 아니면 b)
        # 이미지 크기는 큰 값 기준, PDF 크기는 작은값 기준(화면 초과 방지)
        img_size = img.width() if img.width()-img.height() > 0 else img.height()
        pdf_size = pdf.width() if pdf.width()-pdf.height() < 0 else pdf.height()
    
        # 최적 비율 얻기
        ratio = pdf_size / img_size
    
        # pdf에 쓰기
        qp = QPainter()
        qp.begin(pdf)
        point = QPoint(0, 0)
        qp.drawPixmap(point, img.width()*ratio, img.height()*ratio, img)
        qp.end()
    
  • def btnClick(self): # 프린터 생성, 실행 printer = QPrinter() dlg = QPrintDialog(printer, self) if dlg.exec() == QDialog.Accepted: # Painter 생성 qp = QPainter() qp.begin(printer)

            # 여백 비율
            wgap = printer.pageRect().width()*0.1
            hgap = printer.pageRect().height()*0.1
    
            # 화면 중앙에 위젯 배치
            xscale = (printer.pageRect().width()-wgap)/self.table.width()
            yscale = (printer.pageRect().height()-hgap)/self.table.height()
            scale = xscale if xscale < yscale else yscale        
            qp.translate(printer.paperRect().x() + printer.pageRect().width()/2, printer.paperRect().y() + printer.pageRect().height()/2)
            qp.scale(scale, scale);
            qp.translate(-self.table.width()/2, -self.table.height()/2);        
    
            # 인쇄
            self.table.render(qp)
    
            qp.end()  
    
    def btnClick2(self):
        # pdf 생성
        pdf = QPdfWriter('test.pdf')
        pdf.setPageSize(QPagedPaintDevice.A4)
    
        # 화면 캡쳐        
        screen = QApplication.primaryScreen()
        img = screen.grabWindow(self.winId(), 0,0, self.rect().width(),self.rect().height())
    
        # 3항 연산자 (a if test else b, 만약 test가 참이면 a, 아니면 b)
        # 이미지 크기는 큰 값 기준, PDF 크기는 작은값 기준(화면 초과 방지)
        img_size = img.width() if img.width()-img.height() > 0 else img.height()
        pdf_size = pdf.width() if pdf.width()-pdf.height() < 0 else pdf.height()
    
        # 최적 비율 얻기
        ratio = pdf_size / img_size
    
        # pdf에 쓰기
        qp = QPainter()
        qp.begin(pdf)
        point = QPoint(0, 0)
        qp.drawPixmap(point, img.width()*ratio, img.height()*ratio, img)
        qp.end()
    
  • def btnClick(self): # 프린터 생성, 실행 printer = QPrinter() dlg = QPrintDialog(printer, self) if dlg.exec() == QDialog.Accepted: # Painter 생성 qp = QPainter() qp.begin(printer)

            # 여백 비율
            wgap = printer.pageRect().width()*0.1
            hgap = printer.pageRect().height()*0.1
    
            # 화면 중앙에 위젯 배치
            xscale = (printer.pageRect().width()-wgap)/self.table.width()
            yscale = (printer.pageRect().height()-hgap)/self.table.height()
            scale = xscale if xscale < yscale else yscale        
            qp.translate(printer.paperRect().x() + printer.pageRect().width()/2, printer.paperRect().y() + printer.pageRect().height()/2)
            qp.scale(scale, scale);
            qp.translate(-self.table.width()/2, -self.table.height()/2);        
    
            # 인쇄
            self.table.render(qp)
    
            qp.end()  
    
    def btnClick2(self):
        # pdf 생성
        pdf = QPdfWriter('test.pdf')
        pdf.setPageSize(QPagedPaintDevice.A4)
    
        # 화면 캡쳐        
        screen = QApplication.primaryScreen()
        img = screen.grabWindow(self.winId(), 0,0, self.rect().width(),self.rect().height())
    
        # 3항 연산자 (a if test else b, 만약 test가 참이면 a, 아니면 b)
        # 이미지 크기는 큰 값 기준, PDF 크기는 작은값 기준(화면 초과 방지)
        img_size = img.width() if img.width()-img.height() > 0 else img.height()
        pdf_size = pdf.width() if pdf.width()-pdf.height() < 0 else pdf.height()
    
        # 최적 비율 얻기
        ratio = pdf_size / img_size
    
        # pdf에 쓰기
        qp = QPainter()
        qp.begin(pdf)
        point = QPoint(0, 0)
        qp.drawPixmap(point, img.width()*ratio, img.height()*ratio, img)
        qp.end()
    
  • def btnClick(self): # 프린터 생성, 실행 printer = QPrinter() dlg = QPrintDialog(printer, self) if dlg.exec() == QDialog.Accepted: # Painter 생성 qp = QPainter() qp.begin(printer)

            # 여백 비율
            wgap = printer.pageRect().width()*0.1
            hgap = printer.pageRect().height()*0.1
    
            # 화면 중앙에 위젯 배치
            xscale = (printer.pageRect().width()-wgap)/self.table.width()
            yscale = (printer.pageRect().height()-hgap)/self.table.height()
            scale = xscale if xscale < yscale else yscale        
            qp.translate(printer.paperRect().x() + printer.pageRect().width()/2, printer.paperRect().y() + printer.pageRect().height()/2)
            qp.scale(scale, scale);
            qp.translate(-self.table.width()/2, -self.table.height()/2);        
    
            # 인쇄
            self.table.render(qp)
    
            qp.end()  
    
    def btnClick2(self):
        # pdf 생성
        pdf = QPdfWriter('test.pdf')
        pdf.setPageSize(QPagedPaintDevice.A4)
    
        # 화면 캡쳐        
        screen = QApplication.primaryScreen()
        img = screen.grabWindow(self.winId(), 0,0, self.rect().width(),self.rect().height())
    
        # 3항 연산자 (a if test else b, 만약 test가 참이면 a, 아니면 b)
        # 이미지 크기는 큰 값 기준, PDF 크기는 작은값 기준(화면 초과 방지)
        img_size = img.width() if img.width()-img.height() > 0 else img.height()
        pdf_size = pdf.width() if pdf.width()-pdf.height() < 0 else pdf.height()
    
        # 최적 비율 얻기
        ratio = pdf_size / img_size
    
        # pdf에 쓰기
        qp = QPainter()
        qp.begin(pdf)
        point = QPoint(0, 0)
        qp.drawPixmap(point, img.width()*ratio, img.height()*ratio, img)
        qp.end()
    
  • def btnClick(self): # 프린터 생성, 실행 printer = QPrinter() dlg = QPrintDialog(printer, self) if dlg.exec() == QDialog.Accepted: # Painter 생성 qp = QPainter() qp.begin(printer)

            # 여백 비율
            wgap = printer.pageRect().width()*0.1
            hgap = printer.pageRect().height()*0.1
    
            # 화면 중앙에 위젯 배치
            xscale = (printer.pageRect().width()-wgap)/self.table.width()
            yscale = (printer.pageRect().height()-hgap)/self.table.height()
            scale = xscale if xscale < yscale else yscale        
            qp.translate(printer.paperRect().x() + printer.pageRect().width()/2, printer.paperRect().y() + printer.pageRect().height()/2)
            qp.scale(scale, scale);
            qp.translate(-self.table.width()/2, -self.table.height()/2);        
    
            # 인쇄
            self.table.render(qp)
    
            qp.end()  
    
    def btnClick2(self):
        # pdf 생성
        pdf = QPdfWriter('test.pdf')
        pdf.setPageSize(QPagedPaintDevice.A4)
    
        # 화면 캡쳐        
        screen = QApplication.primaryScreen()
        img = screen.grabWindow(self.winId(), 0,0, self.rect().width(),self.rect().height())
    
        # 3항 연산자 (a if test else b, 만약 test가 참이면 a, 아니면 b)
        # 이미지 크기는 큰 값 기준, PDF 크기는 작은값 기준(화면 초과 방지)
        img_size = img.width() if img.width()-img.height() > 0 else img.height()
        pdf_size = pdf.width() if pdf.width()-pdf.height() < 0 else pdf.height()
    
        # 최적 비율 얻기
        ratio = pdf_size / img_size
    
        # pdf에 쓰기
        qp = QPainter()
        qp.begin(pdf)
        point = QPoint(0, 0)
        qp.drawPixmap(point, img.width()*ratio, img.height()*ratio, img)
        qp.end()
    
  • def btnClick(self): # 프린터 생성, 실행 printer = QPrinter() dlg = QPrintDialog(printer, self) if dlg.exec() == QDialog.Accepted: # Painter 생성 qp = QPainter() qp.begin(printer)

            # 여백 비율
            wgap = printer.pageRect().width()*0.1
            hgap = printer.pageRect().height()*0.1
    
            # 화면 중앙에 위젯 배치
            xscale = (printer.pageRect().width()-wgap)/self.table.width()
            yscale = (printer.pageRect().height()-hgap)/self.table.height()
            scale = xscale if xscale < yscale else yscale        
            qp.translate(printer.paperRect().x() + printer.pageRect().width()/2, printer.paperRect().y() + printer.pageRect().height()/2)
            qp.scale(scale, scale);
            qp.translate(-self.table.width()/2, -self.table.height()/2);        
    
            # 인쇄
            self.table.render(qp)
    
            qp.end()  
    
    def btnClick2(self):
        # pdf 생성
        pdf = QPdfWriter('test.pdf')
        pdf.setPageSize(QPagedPaintDevice.A4)
    
        # 화면 캡쳐        
        screen = QApplication.primaryScreen()
        img = screen.grabWindow(self.winId(), 0,0, self.rect().width(),self.rect().height())
    
        # 3항 연산자 (a if test else b, 만약 test가 참이면 a, 아니면 b)
        # 이미지 크기는 큰 값 기준, PDF 크기는 작은값 기준(화면 초과 방지)
        img_size = img.width() if img.width()-img.height() > 0 else img.height()
        pdf_size = pdf.width() if pdf.width()-pdf.height() < 0 else pdf.height()
    
        # 최적 비율 얻기
        ratio = pdf_size / img_size
    
        # pdf에 쓰기
        qp = QPainter()
        qp.begin(pdf)
        point = QPoint(0, 0)
        qp.drawPixmap(point, img.width()*ratio, img.height()*ratio, img)
        qp.end()
    
  • def btnClick(self): # 프린터 생성, 실행 printer = QPrinter() dlg = QPrintDialog(printer, self) if dlg.exec() == QDialog.Accepted: # Painter 생성 qp = QPainter() qp.begin(printer)

            # 여백 비율
            wgap = printer.pageRect().width()*0.1
            hgap = printer.pageRect().height()*0.1
    
            # 화면 중앙에 위젯 배치
            xscale = (printer.pageRect().width()-wgap)/self.table.width()
            yscale = (printer.pageRect().height()-hgap)/self.table.height()
            scale = xscale if xscale < yscale else yscale        
            qp.translate(printer.paperRect().x() + printer.pageRect().width()/2, printer.paperRect().y() + printer.pageRect().height()/2)
            qp.scale(scale, scale);
            qp.translate(-self.table.width()/2, -self.table.height()/2);        
    
            # 인쇄
            self.table.render(qp)
    
            qp.end()  
    
    def btnClick2(self):
        # pdf 생성
        pdf = QPdfWriter('test.pdf')
        pdf.setPageSize(QPagedPaintDevice.A4)
    
        # 화면 캡쳐        
        screen = QApplication.primaryScreen()
        img = screen.grabWindow(self.winId(), 0,0, self.rect().width(),self.rect().height())
    
        # 3항 연산자 (a if test else b, 만약 test가 참이면 a, 아니면 b)
        # 이미지 크기는 큰 값 기준, PDF 크기는 작은값 기준(화면 초과 방지)
        img_size = img.width() if img.width()-img.height() > 0 else img.height()
        pdf_size = pdf.width() if pdf.width()-pdf.height() < 0 else pdf.height()
    
        # 최적 비율 얻기
        ratio = pdf_size / img_size
    
        # pdf에 쓰기
        qp = QPainter()
        qp.begin(pdf)
        point = QPoint(0, 0)
        qp.drawPixmap(point, img.width()*ratio, img.height()*ratio, img)
        qp.end()
    
  • def btnClick(self): # 프린터 생성, 실행 printer = QPrinter() dlg = QPrintDialog(printer, self) if dlg.exec() == QDialog.Accepted: # Painter 생성 qp = QPainter() qp.begin(printer)

            # 여백 비율
            wgap = printer.pageRect().width()*0.1
            hgap = printer.pageRect().height()*0.1
    
            # 화면 중앙에 위젯 배치
            xscale = (printer.pageRect().width()-wgap)/self.table.width()
            yscale = (printer.pageRect().height()-hgap)/self.table.height()
            scale = xscale if xscale < yscale else yscale        
            qp.translate(printer.paperRect().x() + printer.pageRect().width()/2, printer.paperRect().y() + printer.pageRect().height()/2)
            qp.scale(scale, scale);
            qp.translate(-self.table.width()/2, -self.table.height()/2);        
    
            # 인쇄
            self.table.render(qp)
    
            qp.end()  
    
    def btnClick2(self):
        # pdf 생성
        pdf = QPdfWriter('test.pdf')
        pdf.setPageSize(QPagedPaintDevice.A4)
    
        # 화면 캡쳐        
        screen = QApplication.primaryScreen()
        img = screen.grabWindow(self.winId(), 0,0, self.rect().width(),self.rect().height())
    
        # 3항 연산자 (a if test else b, 만약 test가 참이면 a, 아니면 b)
        # 이미지 크기는 큰 값 기준, PDF 크기는 작은값 기준(화면 초과 방지)
        img_size = img.width() if img.width()-img.height() > 0 else img.height()
        pdf_size = pdf.width() if pdf.width()-pdf.height() < 0 else pdf.height()
    
        # 최적 비율 얻기
        ratio = pdf_size / img_size
    
        # pdf에 쓰기
        qp = QPainter()
        qp.begin(pdf)
        point = QPoint(0, 0)
        qp.drawPixmap(point, img.width()*ratio, img.height()*ratio, img)
        qp.end()
    
  • def btnClick(self): # 프린터 생성, 실행 printer = QPrinter() dlg = QPrintDialog(printer, self) if dlg.exec() == QDialog.Accepted: # Painter 생성 qp = QPainter() qp.begin(printer)

            # 여백 비율
            wgap = printer.pageRect().width()*0.1
            hgap = printer.pageRect().height()*0.1
    
            # 화면 중앙에 위젯 배치
            xscale = (printer.pageRect().width()-wgap)/self.table.width()
            yscale = (printer.pageRect().height()-hgap)/self.table.height()
            scale = xscale if xscale < yscale else yscale        
            qp.translate(printer.paperRect().x() + printer.pageRect().width()/2, printer.paperRect().y() + printer.pageRect().height()/2)
            qp.scale(scale, scale);
            qp.translate(-self.table.width()/2, -self.table.height()/2);        
    
            # 인쇄
            self.table.render(qp)
    
            qp.end()  
    
    def btnClick2(self):
        # pdf 생성
        pdf = QPdfWriter('test.pdf')
        pdf.setPageSize(QPagedPaintDevice.A4)
    
        # 화면 캡쳐        
        screen = QApplication.primaryScreen()
        img = screen.grabWindow(self.winId(), 0,0, self.rect().width(),self.rect().height())
    
        # 3항 연산자 (a if test else b, 만약 test가 참이면 a, 아니면 b)
        # 이미지 크기는 큰 값 기준, PDF 크기는 작은값 기준(화면 초과 방지)
        img_size = img.width() if img.width()-img.height() > 0 else img.height()
        pdf_size = pdf.width() if pdf.width()-pdf.height() < 0 else pdf.height()
    
        # 최적 비율 얻기
        ratio = pdf_size / img_size
    
        # pdf에 쓰기
        qp = QPainter()
        qp.begin(pdf)
        point = QPoint(0, 0)
        qp.drawPixmap(point, img.width()*ratio, img.height()*ratio, img)
        qp.end()
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)