code: protected boolean canBePrintable(
          String  str)
      {
          for (int i = str.length() - 1; i >= 0; i--)
          {
              char    ch = str.charAt(i);
  
              if (str.charAt(i) > 0x007f)
              {
                  return false;
              }
  
              if ('a' <= ch && ch <= 'z')
              {
                  continue;
              }
  
              if ('A' <= ch && ch <= 'Z')
              {
                  continue;
              }
  
              if ('0' <= ch && ch <= '9')
              {
                  continue;
              }
  
              switch (ch)
              {
              case ' ':
              case '\'':
              case '(':
              case ')':
              case '+':
              case '-':
              case '.':
              case ':':
              case '=':
              case '?':
                  continue;
              }
  
              return false;
          }
  
          return true;
      }
docs: return true if the passed in String can be represented without
  loss as a PrintableString, false otherwise.