[Kde-print-devel] PageSize versus kde-pagesize

Cristian Tibirna tibirna at kde.org
Tue May 8 13:05:04 CEST 2007


On 7 May 2007 14:56, Albert Astals Cid wrote:
> Hi, in kpdf we need to know the paper size because we create our own PS and
> need to know the size so we can write it to the file.
>
> Currently i'm using this code
>
> QString ps = printer.option("PageSize");
>
> if (ps.find(QRegExp("w\\d+h\\d+")) == 0)
> {
>     // size not supported by Qt, KPrinter gives us the size as
> wWIDTHhHEIGHT // remove the w
>     ps = ps.mid(1);
>     int hPos = ps.find("h");
>     paperWidth = ps.left(hPos).toInt();
>     paperHeight = ps.mid(hPos+1).toInt();
> }
> else
> {
>     // size is supported by Qt, we get either the pageSize name or nothing
> because the default pageSize is used
>     QPrinter dummy(QPrinter::PrinterResolution);
>     dummy.setFullPage(true);
>     dummy.setPageSize((QPrinter::PageSize)(ps.isEmpty() ?
> KGlobal::locale()->pageSize() : pageNameToPageSize(ps)));
>
>     QPaintDeviceMetrics metrics(&dummy);
>     paperWidth = metrics.width();
>     paperHeight = metrics.height();
> }
>
> This has been always working for me when printing to a printer, but when,
> for example printing to a PS file i never get the "PageSize" but
> a "kde-pagesize".
>
> Now a user is also getting "kde-pagesize" when printing to a printer
> resulting in wrong printouts.
>
> So can someone give some light on how PageSize and kde-pagesize work and if
> i should be using any other way to get the paper size?

I'm afraid I don't have the original knowledge behind the design of this issue 
inside KDEPrint.

From what the code shows, you can also use KPrinter::pageSize() to fetch the 
current size.

"kde-pagesize" is a printer property that is artificially created by KDEPrint 
when the printer's PPD driver doesn't report a "PageSize" option of its own.

The "PageSize" option should be checked first, then, if it doesn't 
exist, "kde-pagesize" is checked. Using KPrinter::pageSize somehow implements 
this logic for you, if you need.

I don't know about the "w[0-9]*h[0-9]*" format in the PageSize option, that 
you check for.

I would need 1-2h of code reading in order to become more helpful than this, 
and I unfortunately don't have this time right now (leaving for work in 10 
minutes).

Hope this helps at least a bit.

-- 
Cristian Tibirna
KDE developer .. tibirna at kde.org .. http://www.kde.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-print-devel/attachments/20070508/4bedb463/attachment.pgp 


More information about the Kde-print-devel mailing list