A method for facilitating a printer recommendation in an enterprise environment, comprising: discovering a respective printer accessible from the enterprise environment based on a discovery mechanism; determining information associated with the respective printer accessible from the enterprise environment; determining supplemental information associated with the respective printer by analyzing a location of the printer, including discovering print-related resources within a predetermined proximity of the discovered printer; in response to the discovery of the printer, obtaining, via a user interface, a policy dictating printing options associated with the printer; storing the information, the supplemental information, and the policy associated with the discovered printer in a printer database in association with an identifier of the discovered printer; receiving, from user device in the enterprise environment, a print task for a file; determining, based on information associated with the print task, metadata associated with the file, an objective, and a set of features of the print task; determining weights for the printer information, the policy and the supplemental information with respect to the objective; determining, from the printer database, a list of printers accessible from the enterprise environment based on the metadata associated with the file, the features of the file, and the policy associated with a respective printer in the list of printers, wherein a respective printer in the list of printers is available and feasible for the print task; calculating a weight for each printer in the list of printers based on the determined weights from for the printer information, the policy and the supplemental information; ranking the list of printers with respect to an objective of the print task based on the calculated weights; and presenting the ranked list as a printer recommendation for the print task in the user interface to the user. discovering a respective printer accessible from the enterprise environment based on a discovery mechanism; determining information associated with the respective printer accessible from the enterprise environment; determining supplemental information associated with the respective printer by analyzing a location of the printer, including discovering print-related resources within a predetermined proximity of the discovered printer; in response to the discovery of the printer, obtaining, via a user interface, a policy dictating printing options associated with the printer; storing the information, the supplemental information, and the policy associated with the discovered printer in a printer database in association with an identifier of the discovered printer; receiving, from user device in the enterprise environment, a print task for a file; determining, based on information associated with the print task, metadata associated with the file, an objective, and a set of features of the print task; determining weights for the printer information, the policy and the supplemental information with respect to the objective; determining, from the printer database, a list of printers accessible from the enterprise environment based on the metadata associated with the file, the features of the file, and the policy associated with a respective printer in the list of printers, wherein a respective printer in the list of printers is available and feasible for the print task; calculating a weight for each printer in the list of printers based on the determined weights from for the printer information, the policy and the supplemental information; ranking the list of printers with respect to an objective of the print task based on the calculated weights; and presenting the ranked list as a printer recommendation for the print task in the user interface to the user.