Version: 0.5.5 (using KDE KDE 3.5.5) Installed from: Gentoo Packages OS: Linux I have a pdf file which is password protected. The password contains characters that are not in 7bit ascii map and are therefore not unicode compliant. Kpdf asks me password when I try to open the pdf but if I press for example one ä it echos it as ** so I guess this is a problem with unicode taking the place of two chars. I can't open the file with kpdf however Adobe reader opens the file very nice. I'm using UTF-8 charset and when testing with ISO-8859-15 kpdf was able to open the file just nice.
Reassigning to kdelibs as it's a problem on KPasswordDialog, most probably on KPasswordEdit::keyPressEvent
Reassigning to me again as i'm not sure this is a kdelibs bug
I find this problem when I use spanish keymap and want input spanish password in kdm and kdesktop lockdialog. this is the patch for it. you can use "ñÑÑÑÑ" to test it. --- kpassdlg.cpp 2007-01-15 19:34:22.000000000 +0800 +++ /kpassdlg.cpp 2007-03-06 11:43:46.000000000 +0800 @@ -118,7 +118,7 @@ else m_EchoMode = OneStar; - setInputMethodEnabled( true ); +// setInputMethodEnabled( true ); } KPasswordEdit::KPasswordEdit(QWidget *parent, const char *name, int echoMode) @@ -160,8 +160,8 @@ void KPasswordEdit::insert(const QString &txt) { - const QCString localTxt = txt.local8Bit(); - const unsigned int lim = localTxt.length(); + const char * localTxt = txt.latin1(); + const unsigned int lim = strlen(localTxt); const int m_MaxLength = maxPasswordLength(); for(unsigned int i=0; i < lim; ++i) { @@ -211,9 +211,10 @@ } break; default: - const unsigned char ke = e->text().local8Bit()[0]; + const unsigned char ke = e->text().latin1()[0]; if (ke >= 32) { - insert(e->text()); + //fprintf(stderr,"%s\n\n",e->text().utf8().data()); + insert(e->text().utf8()); } else e->ignore(); break;
SVN commit 731536 by aacid: PDF passwords are latin1, so encode them correctly BUG: 138997 M +1 -1 generator_pdf.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=731536