CHANGES IN CUPS V1.1.20rc1
+ - The PDF filter no longer prints form widgets; this
+ duplicates the behavior of Acrobat Reader (STR #241)
- cupsGetPPD() didn't handle a late termination of a
HTTP connection with the server (STR #220)
- ppdOpen() did not correctly check for "*PPD-Adobe-4."
return;
}
if (pos >= 0) {
- fprintf(stderr, "Error (%d): ", pos);
+ fprintf(stderr, "ERROR: (%d) ", pos);
} else {
- fprintf(stderr, "Error: ");
+ fprintf(stderr, "ERROR: ");
}
va_start(args, msg);
vfprintf(stderr, msg, args);
void Gfx::doAnnot(Object *str, double xMin, double yMin,
double xMax, double yMax) {
Dict *dict, *resDict;
- Object matrixObj, bboxObj, resObj;
+ Object matrixObj, bboxObj, resObj, subTypeObj;
Object obj1;
double m[6], bbox[6], ictm[6];
double *ctm;
// get stream dict
dict = str->streamGetDict();
+ // check if the SubType is set to Widget, and ignore if so - we don't
+ // need no stinkin' buttons in the PS output!
+ dict->lookup("SubType", &subTypeObj);
+
+ if (!subTypeObj.isName()) {
+ if (subTypeObj.isNull()) {
+ error(getPos(), "Missing (required) SubType in Annot object");
+ } else {
+ error(getPos(), "Bad Annot object SubType of type %s", subTypeObj.getTypeName());
+ }
+
+ subTypeObj.free();
+ return;
+ }
+
+ if (subTypeObj.isName("Widget")) {
+ // Don't draw form widgets...
+ subTypeObj.free();
+ return;
+ }
+
+ subTypeObj.free();
+
// get the form bounding box
dict->lookup("BBox", &bboxObj);
if (!bboxObj.isArray()) {