Печать нескольких страниц с помощью wxPython - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть текстовый редактор wxPython, к которому я только что добавил функцию печати. ​​

Я тестировал его и печатал документ PDF, используя MS Print To PDF.

Когда яоткрыл документ pdf. Сначала все выглядело нормально, но когда я прокрутил страницу вниз, и не было второй страницы, где она должна была быть.

Вот мой код:

def printwindow(self, event):
    pd = wx.PrintData()
    pd.SetPrinterName("")
    pd.SetOrientation(wx.PORTRAIT)
    pd.SetPaperId(wx.PAPER_A4)
    pd.SetQuality(wx.PRINT_QUALITY_DRAFT)
    pd.SetColour(True)
    pd.SetNoCopies(1)
    pd.SetCollate(True)

    pdd = wx.PrintDialogData()
    pdd.SetPrintData(pd)
    pdd.SetMinPage(1)
    pdd.SetMaxPage(1)
    pdd.SetFromPage(1)
    pdd.SetToPage(1)
    pdd.SetPrintToFile(False)
    pdd.EnablePageNumbers(True)
    pdd.EnableHelp(True)

    dlg = wx.PrintDialog(self, pdd)
    if dlg.ShowModal() == wx.ID_OK:
        text = self.control.GetText()
        dc = dlg.GetPrintDC()

        dc.StartDoc("MyDoc")
        dc.StartPage()
        dc.SetMapMode(wx.MM_POINTS)

        dc.SetTextForeground("black")
        dc.SetFont(self.font)
        dc.DrawText(text, 50, 100)

        dc.EndPage()
        dc.EndDoc()
        del dc
    else:
        dlg.Destroy()

Кто-нибудь знает, как печатать на нескольких страницах?Длина документа превышает одну страницу.

1 Ответ

0 голосов
/ 03 августа 2019

Нашли способ обойти это:

class Printer(wx.html.HtmlEasyPrinting):

    def __init__(self):
        HtmlEasyPrinting.__init__(self)

    def print(self, text, docname):
        self.SetHeader(docname)
        self.PrintText(text, docname)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...