Russian Qt Forum

Qt => Печать => Тема начата: sergun1604 от Июнь 15, 2011, 11:25



Название: Печать n-ценников на А4 как решить в NCReport?
Отправлено: sergun1604 от Июнь 15, 2011, 11:25
Здравствуйте знатоки NCReport?
Реально ли печатать ценники в NCReport.
Суть - ценников например вмещается 8 на лист в 4 колонки и две строки.
Кто нибудь пробывал такое реализовать?


Название: Re: Печать n-ценников на А4 как решить в NCReport?
Отправлено: sergun1604 от Июнь 15, 2011, 11:55
Или хотя бы какими средствами кому удалось это решить? Вопрос трудный потому что на просторах интернета ничего по этому поводу нет. Может самопальное что нибудь можно придумать


Название: Re: Печать n-ценников на А4 как решить в NCReport?
Отправлено: Пантер от Июнь 15, 2011, 11:59
Формируй html и его печатай.


Название: Re: Печать n-ценников на А4 как решить в NCReport?
Отправлено: sergun1604 от Июнь 15, 2011, 13:21
Понятно тоже вариант. Правда я еще не реализовывал печать через html
Просто использую NCReport и поэтому думаю а вдруг...
Ладно тогда буду разбираться
Спасибо за совет!


Название: Re: Печать n-ценников на А4 как решить в NCReport?
Отправлено: sergun1604 от Июнь 15, 2011, 13:47
а можно узнать что лучше использовать
QTextDocument, QTableView, QWebView
для реализации такой задачи.


Название: Re: Печать n-ценников на А4 как решить в NCReport?
Отправлено: Пантер от Июнь 15, 2011, 13:49
Я формирую просто в QStringList, который потом запихиваю в QTextDocument и им печатаю.


Название: Re: Печать n-ценников на А4 как решить в NCReport?
Отправлено: sergun1604 от Июнь 15, 2011, 14:11
Хорошо буду пытать потом отпишу кодик в сказе о том как я печатал ценники


Название: Re: Печать n-ценников на А4 как решить в NCReport?
Отправлено: sergun1604 от Июнь 22, 2011, 10:58
Значит вот ответ ребята которые задаются тем же вопросом что и я
Я не профессионал поэтому на идеальность не претендую. Главное работает поэтому я не думаю
Я узнал список товаров которые мне надо напечатать ценники
создал форму кинул туда webview
открываю эту форму через слот передаю туда параметры
бью html следующего плана
Код:
sHtml ="<html>";
    sHtml ="<meta http-equiv=Content-Type content=text/html; charset=utf-8 />";
    sHtml+="<body>";
    sHtml+="<div align=center><table><tr><td>";
n=lst.count(); //это мои данные в стринглисте
QString sHtml;
    sHtml ="<html>";
    sHtml ="<meta http-equiv=Content-Type content=text/html; charset=utf-8 />";
    sHtml+="<body>";
    sHtml+="<div align=center><table><tr><td>";
    int x,y;
    x=0; //ячейки - ценники
    y=0; //строки
//у меня вмещаются 6 ценников на лист по 3 в строчке
sHtml+="<table align=center valign=middle cellpadding=7 border=2 cellspacing=-3 style=border-color: #000000;>";
    sHtml+="<tr>";
    for(i=0;i<n;i++)
    {
                  sHtml+="<td WIDTH=250 height=600 VALIGN=top>";
                  sHtml+="<table><tr><td ALIGN=center height=70 VALIGN=top>";
                  sHtml+="<FONT SIZE=+1>REKV<br /><b>REKV</b></font><br /><br />";
                  sHtml+="</td></tr>";
                  sHtml+="<tr><td ALIGN=center height=170>";
                  sHtml+="<FONT SIZE=+3><b>NAME</b></font>";
                  sHtml.replace(QString("NAME"), name);
                  sHtml+="</td></tr>";
                  sHtml+="<tr><td height=50>";
                  sHtml+="<BIG><b>ВЕС: VES</b></BIG><br /><br />";
                  sHtml.replace(QString("VES"), output+" гр." );
                  sHtml+="<BIG><b>ЦЕНА:</b></BIG><br /><br /><br />";
                  sHtml+="</td></tr>";
                  sHtml+="<tr><td ALIGN=center height=250>";
                  sHtml+="<font style=font-size:50pt><b><i>PRICE</i></b></font><br /><br /><br />";
                  sHtml.replace(QString("PRICE"), QString::number(pri,'f',1)+"0" );
                  sHtml+="</td></tr>";
                  sHtml+="<tr><td height=30 VALIGN=bottom>";
                  sHtml+="<FONT SIZE=-2><i>№: NUM дата: DATA</font></i></td>";
                  sHtml+="</td></tr>";
                  sHtml+="</table>";
                  sHtml+="</td>";
                  x=x+1;

                  if(x==3)
                  {
                            sHtml+="</tr>";
                            sHtml+="<tr>";
                            x=0;
                            y=y+1;

                  }
                  if(y==2)
                  {
                      sHtml+="</table>";
                      sHtml+="<br /><br />";
                      sHtml+="<table align=center valign=middle cellpadding=7 border=2 cellspacing=-3 style=border-color: #000000;>";
                      y=0;
                  }


    }

        sHtml+="</tr>";
        sHtml+="</table>";

    sHtml.replace(QString("REKV"), rekv );
    sHtml.replace(QString("NUM"), QString::number(num) );
    sHtml.replace(QString("DATA"), data );


    sHtml+="</td></tr></table></div>";
    sHtml+="</body></html>";

ui->webView->setHtml(sHtml.toAscii());


Вот и все если у когото есть светлые идеи выкладываете наверняка есть что то лучшее