diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-05-13 05:05:43 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-05-13 05:05:43 (GMT) |
commit | 8c6b5c53a2f6f8c9113fa616b458dde0be86a9e2 (patch) | |
tree | f3883fb4fce6227a9fe33a4d53449ffc4c4cf505 /src/gui/painting/qprintengine_pdf.cpp | |
parent | 50711dd7aa22052eff58431d9f4e95e1a688047e (diff) | |
parent | d41ccae68683dd0d35c20affec7e5c55ce6bca37 (diff) | |
download | Qt-8c6b5c53a2f6f8c9113fa616b458dde0be86a9e2.zip Qt-8c6b5c53a2f6f8c9113fa616b458dde0be86a9e2.tar.gz Qt-8c6b5c53a2f6f8c9113fa616b458dde0be86a9e2.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (159 commits)
Doc: Adding loading image to search textbox
qdoc: Yet another revision of the top doc page.
Doc: Update on web template
Added QDateTime::msecsTo()
Doc: Fixed tables and images for the new docs
qdoc: Yet another revision of the top doc page.
Revert "Improve QUrl handling of local file paths"
Revert "[QNAM FTP] Check for the "ftp" scheme case-insensitively"
Revert "QUrl::fromLocalFile: fix silly mistake: it's fromNativeSeparators, not to"
Revert "Use QUrl::isLocalFile and fix the scheme checking in local URLs."
qdoc: Another revision of the top doc page.
Doc correction to css
Doc: Updates to the html template and javascript
tst_SuiteTest: Fix a meaningless switch statement
My 4.7.0 changelog entries.
qdoc: Fixed annotated list generation to use <td>, not <th>.
Doc: Tuning search script
qdoc: Reorganized examples panel.
Doc: Chages to search feature, css and table order
QtDeclarative: avoid waiting for a network load on URIs with empty schemes.
...
Diffstat (limited to 'src/gui/painting/qprintengine_pdf.cpp')
-rw-r--r-- | src/gui/painting/qprintengine_pdf.cpp | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/src/gui/painting/qprintengine_pdf.cpp b/src/gui/painting/qprintengine_pdf.cpp index b8bf15e..2955e39 100644 --- a/src/gui/painting/qprintengine_pdf.cpp +++ b/src/gui/painting/qprintengine_pdf.cpp @@ -931,29 +931,16 @@ void QPdfEnginePrivate::writeHeader() void QPdfEnginePrivate::writeInfo() { info = addXrefEntry(-1); - - // The 'text string' type in PDF is encoded either as PDFDocEncoding, or - // Unicode UTF-16 with a Unicode byte order mark as the first character - // (0xfeff), with the high-order byte first. - QByteArray array("<<\n/Title (\xfe\xff"); - const ushort *utf16Title = title.utf16(); - for (int i=0; i < title.size(); ++i) { - array.append((*(utf16Title + i)) >> 8); - array.append((*(utf16Title + i)) & 0xff); - } - array.append(")\n/Creator (\xfe\xff"); - const ushort *utf16Creator = creator.utf16(); - for (int i=0; i < creator.size(); ++i) { - array.append((*(utf16Creator + i)) >> 8); - array.append((*(utf16Creator + i)) & 0xff); - } - array.append(")\n/Producer (Qt " QT_VERSION_STR " (C) 2010 Nokia Corporation and/or its subsidiary(-ies))\n"); - write(array); - + xprintf("<<\n/Title "); + printString(title); + xprintf("\n/Creator "); + printString(creator); + xprintf("\n/Producer "); + printString(QString::fromLatin1("Qt " QT_VERSION_STR " (C) 2010 Nokia Corporation and/or its subsidiary(-ies)")); QDateTime now = QDateTime::currentDateTime().toUTC(); QTime t = now.time(); QDate d = now.date(); - xprintf("/CreationDate (D:%d%02d%02d%02d%02d%02d)\n", + xprintf("\n/CreationDate (D:%d%02d%02d%02d%02d%02d)\n", d.year(), d.month(), d.day(), @@ -1230,6 +1217,25 @@ int QPdfEnginePrivate::addXrefEntry(int object, bool printostr) return object; } +void QPdfEnginePrivate::printString(const QString &string) { + // The 'text string' type in PDF is encoded either as PDFDocEncoding, or + // Unicode UTF-16 with a Unicode byte order mark as the first character + // (0xfeff), with the high-order byte first. + QByteArray array("(\xfe\xff"); + const ushort *utf16 = string.utf16(); + + for (int i=0; i < string.size(); ++i) { + char part[2] = {char((*(utf16 + i)) >> 8), char((*(utf16 + i)) & 0xff)}; + for(int j=0; j < 2; ++j) { + if (part[j] == '(' || part[j] == ')' || part[j] == '\\') + array.append('\\'); + array.append(part[j]); + } + } + array.append(")"); + write(array); +} + QT_END_NAMESPACE #endif // QT_NO_PRINTER |