Don't use this patch! ;-) diff -rup xpdf-3.02.orig/xpdf/PDFCore.cc xpdf-3.02/xpdf/PDFCore.cc --- xpdf/PDFCore.cc 2007-02-27 23:05:52.000000000 +0100 +++ xpdf/PDFCore.cc 2007-03-25 14:52:23.000000000 +0200 @@ -1563,9 +1563,6 @@ GString *PDFCore::extractText(int pg, do int x0, y0, x1, y1, t; GString *s; - if (!doc->okToCopy()) { - return NULL; - } if ((page = findPage(pg))) { cvtUserToDev(pg, xMin, yMin, &x0, &y0); cvtUserToDev(pg, xMax, yMax, &x1, &y1); diff -rup xpdf-3.02.orig/xpdf/XPDFCore.cc xpdf-3.02/xpdf/XPDFCore.cc --- xpdf/XPDFCore.cc 2007-02-27 23:05:52.000000000 +0100 +++ xpdf/XPDFCore.cc 2007-03-25 14:52:31.000000000 +0200 @@ -388,6 +388,7 @@ void XPDFCore::endSelection(int wx, int copySelection(); } else { error(-1, "Copying of text from this document is not allowed."); + copySelection(); } } #endif @@ -407,9 +408,6 @@ void XPDFCore::copySelection() { int pg; double ulx, uly, lrx, lry; - if (!doc->okToCopy()) { - return; - } if (getSelection(&pg, &ulx, &uly, &lrx, &lry)) { //~ for multithreading: need a mutex here if (currentSelection) { diff -rup xpdf-3.02.orig/xpdf/XPDFViewer.cc xpdf-3.02/xpdf/XPDFViewer.cc --- xpdf/XPDFViewer.cc 2007-02-27 23:05:52.000000000 +0100 +++ xpdf/XPDFViewer.cc 2007-03-25 14:50:05.000000000 +0200 @@ -3408,7 +3408,9 @@ void XPDFViewer::printPrintCbk(Widget wi doc = viewer->core->getDoc(); if (!doc->okToPrint()) { error(-1, "Printing this document is not allowed."); +#if 0 return; +#endif } viewer->core->setBusyCursor(gTrue); diff -rup xpdf-3.02.orig/xpdf/pdfimages.cc xpdf-3.02/xpdf/pdfimages.cc --- xpdf/pdfimages.cc 2007-02-27 23:05:52.000000000 +0100 +++ xpdf/pdfimages.cc 2007-03-25 14:49:50.000000000 +0200 @@ -121,8 +121,10 @@ int main(int argc, char *argv[]) { // check for copy permission if (!doc->okToCopy()) { error(-1, "Copying of images from this document is not allowed."); +#if 0 exitCode = 3; goto err1; +#endif } // get page range diff -rup xpdf-3.02.orig/xpdf/pdftops.cc xpdf-3.02/xpdf/pdftops.cc --- xpdf/pdftops.cc 2007-02-27 23:05:52.000000000 +0100 +++ xpdf/pdftops.cc 2007-03-25 14:49:18.000000000 +0200 @@ -281,8 +281,10 @@ int main(int argc, char *argv[]) { // check for print permission if (!doc->okToPrint()) { error(-1, "Printing this document is not allowed."); +#if 0 exitCode = 3; goto err1; +#endif } // construct PostScript file name diff -rup xpdf-3.02.orig/xpdf/pdftotext.cc xpdf-3.02/xpdf/pdftotext.cc --- xpdf/pdftotext.cc 2007-02-27 23:05:52.000000000 +0100 +++ xpdf/pdftotext.cc 2007-03-25 14:49:28.000000000 +0200 @@ -163,8 +163,10 @@ int main(int argc, char *argv[]) { // check for copy permission if (!doc->okToCopy()) { error(-1, "Copying of text from this document is not allowed."); +#if 0 exitCode = 3; goto err2; +#endif } // construct text file name