Help - need printer recommendations

I just bought a MacBook pro and need a printer for high quality photo printing that will double as an everyday document printer and won't cost me an arm and a leg. Reliability is key - my last printer was absolute crap. Your advice is much appreciated. Thanks!

i would recommend buying a simple black and white laser printer for your everyday printing needs. i bought a used HP LaserJet 4 off eBay about 5 years ago for $150 shipped. The cartridges for those are about $70-$90, but in 5 years i bought only 2, becayse they last forever. plus that printer has a network connection. The downside is that it is pretty big and ugly.
You can also find a used HP LaserJet 1100, those are way smaller than the one i have and cartridges run about $50, but you still get the same great laser quiality and dont spend nearly as much money on supplies as you would with an Ink Jet

Similar Messages

  • Help needed:Printing HTML file using javax.print

    Hi
    I am using the following code which i got form the forum for rpinting an HTML file.
    The folllowing code is working fine, but the problem is the content of HTML file is not getting printed. I am geeting a blank page with no content. What is the change that is required in the code? ALso is there any simpler way to implement this. Help needed ASAP.
    public boolean printHTMLFile(String filename) {
              try {
                   JEditorPane editorPane = new JEditorPane();
                   editorPane.setEditorKit(new HTMLEditorKit());
                   //editorPane.setContentType("text/html");
                   editorPane.setSize(500,500);
                   String text = getFileContents(filename);
                   if (text != null) {
                        editorPane.setText(text);                    
                   } else {
                        return false;
                   printEditorPane(editorPane);
                   return true;
              } catch (Exception tce) {
                   tce.printStackTrace();
              return false;
         public String getFileContents(String filename) {
              try {
                   File file = new File(filename);
                   BufferedReader br = new BufferedReader(new FileReader(file));
                   String line;
                   StringBuffer sb = new StringBuffer();
                   while ((line = br.readLine()) != null) {
                        sb.append(line);
                   br.close();
                   return sb.toString();
              } catch (Exception tce) {
                   tce.printStackTrace();
              return null;
         public void printEditorPane(JEditorPane editorPane) {
                   try {
                        HTMLPrinter htmlPrinter = new HTMLPrinter();
                        htmlPrinter.printJEditorPane(editorPane, htmlPrinter.showPrintDialog());
                   } catch (Exception tce) {
                        tce.printStackTrace();
         * Sets up to easily print HTML documents. It is not necessary to call any of the setter
         * methods as they all have default values, they are provided should you wish to change
         * any of the default values.
         public class HTMLPrinter {
         public int DEFAULT_DPI = 72;
         public float DEFAULT_PAGE_WIDTH_INCH = 8.5f;
         public float DEFAULT_PAGE_HEIGHT_INCH = 11f;
         int x = 100;
         int y = 80;
         GraphicsConfiguration gc;
         PrintService[] services;
         PrintService defaultService;
         DocFlavor flavor;
         PrintRequestAttributeSet attributes;
         Vector pjlListeners = new Vector();
         Vector pjalListeners = new Vector();
         Vector psalListeners = new Vector();
         public HTMLPrinter() {
              gc = null;
              attributes = new HashPrintRequestAttributeSet();
              flavor = null;
              defaultService = PrintServiceLookup.lookupDefaultPrintService();
              services = PrintServiceLookup.lookupPrintServices(flavor, attributes);
              // do something with the supported docflavors
              DocFlavor[] df = defaultService.getSupportedDocFlavors();
              for (int i = 0; i < df.length; i++)
              System.out.println(df.getMimeType() + " " + df[i].getRepresentationClassName());
              // if there is a default service, but no other services
              if (defaultService != null && (services == null || services.length == 0)) {
              services = new PrintService[1];
              services[0] = defaultService;
         * Set the GraphicsConfiguration to display the print dialog on.
         * @param gc a GraphicsConfiguration object
         public void setGraphicsConfiguration(GraphicsConfiguration gc) {
              this.gc = gc;
         public void setServices(PrintService[] services) {
              this.services = services;
         public void setDefaultService(PrintService service) {
              this.defaultService = service;
         public void setDocFlavor(DocFlavor flavor) {
              this.flavor = flavor;
         public void setPrintRequestAttributes(PrintRequestAttributeSet attributes) {
              this.attributes = attributes;
         public void setPrintDialogLocation(int x, int y) {
              this.x = x;
              this.y = y;
         public void addPrintJobListener(PrintJobListener pjl) {
              pjlListeners.addElement(pjl);
         public void removePrintJobListener(PrintJobListener pjl) {
              pjlListeners.removeElement(pjl);
         public void addPrintServiceAttributeListener(PrintServiceAttributeListener psal) {
              psalListeners.addElement(psal);
         public void removePrintServiceAttributeListener(PrintServiceAttributeListener psal) {
              psalListeners.removeElement(psal);
         public boolean printJEditorPane(JEditorPane jep, PrintService ps) {
                   if (ps == null || jep == null) {
                        System.out.println("printJEditorPane: jep or ps is NULL, aborting...");
                        return false;
                   // get the root view of the preview pane
                   View rv = jep.getUI().getRootView(jep);
                   // get the size of the view (hopefully the total size of the page to be printed
                   int x = (int) rv.getPreferredSpan(View.X_AXIS);
                   int y = (int) rv.getPreferredSpan(View.Y_AXIS);
                   // find out if the print has been set to colour mode
                   DocPrintJob dpj = ps.createPrintJob();
                   PrintJobAttributeSet pjas = dpj.getAttributes();
                   // get the DPI and printable area of the page. use default values if not available
                   // use this to get the maximum number of pixels on the vertical axis
                   PrinterResolution pr = (PrinterResolution) pjas.get(PrinterResolution.class);
                   int dpi;
                   float pageX, pageY;
                   if (pr != null)
                        dpi = pr.getFeedResolution(PrinterResolution.DPI);
                   else
                        dpi = DEFAULT_DPI;
                   MediaPrintableArea mpa = (MediaPrintableArea) pjas.get(MediaPrintableArea.class);
                   if (mpa != null) {
                        pageX = mpa.getX(MediaPrintableArea.INCH);
                        pageY = mpa.getX(MediaPrintableArea.INCH);
                   } else {
                        pageX = DEFAULT_PAGE_WIDTH_INCH;
                        pageY = DEFAULT_PAGE_HEIGHT_INCH;
                   int pixelsPerPageY = (int) (dpi * pageY);
                   int pixelsPerPageX = (int) (dpi * pageX);
                   int minY = Math.max(pixelsPerPageY, y);
                   // make colour true if the user has selected colour, and the PrintService can support colour
                   boolean colour = pjas.containsValue(Chromaticity.COLOR);
                   colour = colour & (ps.getAttribute(ColorSupported.class) == ColorSupported.SUPPORTED);
                   // create a BufferedImage to draw on
                   int imgMode;
                   if (colour)
                        imgMode = BufferedImage.TYPE_3BYTE_BGR;
                   else
                        imgMode = BufferedImage.TYPE_BYTE_GRAY;
                   BufferedImage img = new BufferedImage(pixelsPerPageX, minY, imgMode);
                   Graphics myGraphics = img.getGraphics();
                   myGraphics.setClip(0, 0, pixelsPerPageX, minY);
                   myGraphics.setColor(Color.WHITE);
                   myGraphics.fillRect(0, 0, pixelsPerPageX, minY);
                        java.awt.Rectangle rectangle=new java.awt.Rectangle(0,0,pixelsPerPageX, minY);
                   // call rootView.paint( myGraphics, rect ) to paint the whole image on myGraphics
                   rv.paint(myGraphics, rectangle);
                   try {
                        // write the image as a JPEG to the ByteArray so it can be printed
                        Iterator writers = ImageIO.getImageWritersByFormatName("jpeg");
                        ImageWriter writer = (ImageWriter) writers.next();
                                       // mod: Added the iwparam to create the highest quality image possible
                        ImageWriteParam iwparam = writer.getDefaultWriteParam();
                        iwparam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT) ;
                        iwparam.setCompressionQuality(1.0f); // highest quality
                        ByteArrayOutputStream out = new ByteArrayOutputStream();
                        ImageOutputStream ios = ImageIO.createImageOutputStream(out);
                        writer.setOutput(ios);
                        // get the number of pages we need to print this image
                        int imageHeight = img.getHeight();
                        int numberOfPages = (int) Math.ceil(minY / (double) pixelsPerPageY);
                        // print each page
                        for (int i = 0; i < numberOfPages; i++) {
                             int startY = i * pixelsPerPageY;
                             // get a subimage which is exactly the size of one page
                             BufferedImage subImg = img.getSubimage(0, startY, pixelsPerPageX, Math.min(y - startY, pixelsPerPageY));
                                                 // mod: different .write() method to use the iwparam parameter with highest quality compression
                             writer.write(null, new IIOImage(subImg, null, null), iwparam);
                             SimpleDoc sd = new SimpleDoc(out.toByteArray(), DocFlavor.BYTE_ARRAY.JPEG, null);
                             printDocument(sd, ps);
                             // reset the ByteArray so we can start the next page
                             out.reset();
                   } catch (PrintException e) {
                        System.out.println("Error printing document.");
                        e.printStackTrace();
                        return false;
                   } catch (IOException e) {
                        System.out.println("Error creating ImageOutputStream or writing to it.");
                        e.printStackTrace();
                        return false;
                   // uncomment this code and comment out the 'try-catch' block above
                   // to print to a JFrame instead of to the printer
                   /*          JFrame jf = new JFrame();
                             PaintableJPanel jp = new PaintableJPanel();
                             jp.setImage( img );
                             JScrollPane jsp = new JScrollPane( jp );
                             jf.getContentPane().add( jsp );
                             Insets i = jf.getInsets();
                             jf.setBounds( 0, 0, newX, y );
                             jf.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
                             jf.setVisible( true );*/
                   return true;
              * Print the document to the specified PrintService.
              * This method cannot tell if the printing was successful. You must register
              * a PrintJobListener
              * @return false if no PrintService is selected in the dialog, true otherwise
              public boolean printDocument(Doc doc, PrintService ps) throws PrintException {
                   if (ps == null)
                   return false;
                   addAllPrintServiceAttributeListeners(ps);
                   DocPrintJob dpj = ps.createPrintJob();
                   addAllPrintJobListeners(dpj);
                   dpj.print(doc, attributes);
                   return true;
              public PrintService showPrintDialog() {
                   return ServiceUI.printDialog(gc, x, y, services, defaultService, flavor, attributes);
              private void addAllPrintServiceAttributeListeners(PrintService ps) {
                   // add all listeners that are currently added to this object
                   for (int i = 0; i < psalListeners.size(); i++) {
                   PrintServiceAttributeListener p = (PrintServiceAttributeListener) psalListeners.get(i);
                   ps.addPrintServiceAttributeListener(p);
              private void addAllPrintJobListeners(DocPrintJob dpj) {
                   // add all listeners that are currently added to this object
                   for (int i = 0; i < pjlListeners.size(); i++) {
                   PrintJobListener p = (PrintJobListener) pjlListeners.get(i);
                   dpj.addPrintJobListener(p);
              // uncomment this also to print to a JFrame instead of a printer
              /* protected class PaintableJPanel extends JPanel {
                   Image img;
                   protected PaintableJPanel() {
                        super();
                   public void setImage( Image i ) {
                        img = i;
                   public void paint( Graphics g ) {
                        g.drawImage( img, 0, 0, this );
    Thanks
    Ram

    Ram,
    I have had printing problems too a year and a half ago. I used all printing apis of java and I still find that it is something java lacks. Now basically you can try autosense. To check whether your printer is capable of printing the docflavor use this PrintServiceLookup.lookupPrintServices(flavor, aset); . If it lists the printer then he can print the document otherwise he can't. I guess that is why you get the error.
    Regards,
    Kevin

  • Need printer recommendation

    My Epson r340 printer is having gaps on my black ink even after cleaning several times. Funny is when doing the test print all the colors even the black ink would show all the lines coming out. If this can't be fixed I need a recommendation for a replacement printer that has a CD tray that can print cd/DVD. I'm not sure if I want Epson again as this is my second printer from them that's having a problem.

    I switch to Canon printers ages ago and haven't looked back. Epson lost my business with poor post-purchase support and ink shenanigans. The Canon IP 7220 has been good printer for me so far and replaced the Canon IP 3600 I used for nearly 5 years and thousands of sheets of paper.

  • Help:Need Printer when deploy report on Web?

    Hi, Remote Friends,
    I encounter a problem when I try to deploy a report on Web. That
    is: When I enter the report's URL, I got a message from my
    Report Server which is "REP-3002: Error initializing printer.
    Please make sure a printer is installed". I checked my NT Server
    and Windows98 Client machine,all install printer correctly. I
    even print a test page to make sure. I don't know why this error
    occurs. Can anybody help out?
    Very grateful in advance.
    Robby
    null

    its default bahaviour
    so u can use
    web.show_documnet for running your report
    http://<hostname>:<port>/reports/rwservlet?server=<reportserver_tns>&report=<report>.rdf&de
    sformat=[ htmlcss|pdf|xml|delimited|]&destype=cache&userid=<user/[email protected]>&paramfor
    m=[ no|yes]
    and enjoy your life :-)
    kuljeet pal singh

  • Need Printer recommendation to print AR Invoices

    I need a "modern day" printer which will print on a single form, which will also impact the white, pink, yellow pages too with good clarity.
    Any suggestions to Printer models available in the market?

    After some research, I came up with this list of dot matrix printers:
    Epson DFX-9000
    Epson DFX-5000+
    Epson FX-2190
    Lexmark Forms Printer 4227
    Lexmark Forms Printer 2480
    Epson DLQ-3500 for color
    All of the above printers support multi-part forms.

  • Color management help needed for adobe CS5 and Epson printer 1400-Prints coming out too dark with re

    Color management help needed for adobe CS5 and Epson printer 1400-Prints coming out too dark with reddish cast and loss of detail
    System: Windows 7
    Adobe CS5
    Printer: Epson Stylus Photo 1400
    Paper: Inkjet matte presentation paper with slight luster
    Installed latest patch for Adobe CS5
    Epson driver up to date
    After reading solutions online and trying them for my settings for 2 days I am still unable to print what I am seeing on my screen in Adobe CS5. I calibrated my monitor, but am not sure once calibration is saved if I somehow use this setting in Photoshop’s color management.
    The files I am printing are photographs of dogs with lots of detail  I digitally painted with my Wacom tablet in Photoshop CS5 and then printed with Epson Stylus 1400 on inkjet paper 20lb with slight luster.
    My Printed images lose a lot of the detail & come out way to dark with a reddish cast and loss of detail when I used these settings in the printing window:
    Color Handling: Photoshop manages color, Color management -ICM, OFF no color adjustment.
    When I change to these settings in printer window: Color Handling:  Printer manages color.  Color management- Color Controls, 1.8 Gamma and choose Epson Standard it prints lighter, but with reddish cast and very little detail and this is the best setting I have used so far.
    Based on what I have read on line, I think the issue is mainly to do with what controls are set in the Photoshop Color Settings window and the Epson Printer preferences. I have screen images attached of these windows and would appreciate knowing what you recommend I enter for each choice.
    Also I am confused as to what ICM color management system to use with this printer and CS5:
    What is the best ICM to use with PS CS5 & the Epson 1400 printer? Should I use the same ICM for both?
    Do I embed the ICM I choose into the new files I create? 
    Do I view all files in the CS5 workspace in this default ICM?
    Do I set my monitor setting to the same ICM?
    If new file opens in CS5 workspace and it has a different embedded profile than my workspace, do I convert it?
    Do I set my printer, Monitor and PS CS5 color settings to the same ICM?
    Is using the same ICM for all devices what is called a consistent workflow?
    I appreciate any and all advice that can be sent my way on this complicated issue. Thank you in advance for your time and kind help.

    It may be possible to figure out by watching a Dr.Brown video on the subject of color printing. Adobe tv
    I hope this may help...............

  • Wireless printing help needed

    How do I print wireless to my hp office pro 8500 from my I pad mini, help needed please

    use the hp eprint app. For more details, see: http://h10025.www1.hp.com/ewfrf/wc/document?cc=us&lc=en&docname=c01619067#N52

  • MacBook - Newbie: Need help on printing wirelessly to XP shared printer

    MacBook - Newbie: Need help on printing to XP shared printer
    Bear with me please. I read tons of articles on this but somehow as a newbie to MAC (girlfriends sick daughter), I am missing something. 10.5.2
    Currently, she can print directly if we plug in the HP Deskjet printer directly via USB to the MACBook. No problem.
    When we first got the MACBOOK I tried setting up the MACBOOK wirelessly to recognize the workgroup where the printer was attached via USB to the Windows XP PC. However it printed out garbage since I did not know there was a difference between XP printing and MAC (Gutenberg/gimp printing/drivers).
    Now I know there is a difference.
    But in reading various instructions, I no longer can find how to connect the MAC to the Windows workgroup. Note we do have a printer set up currently as USB-HP Deskjet on the Macbook (not sure I need to delete it yet).
    I went to System Preferences on MACBOOK and clicked on printers, more printers. In the drop down box was CANON, APPLETALK, IP HP printing and Firewire. There was no WINDOWS selection as I saw in other online web instructions.
    So not sure how to proceed to find a way to:
    1. Connect to Windows workgroup (click on what exactly), step by step please!!
    2. Add correct HP Deskjet 5490 printer (perhaps there is one with Gutenberg or perhaps I need Gutenprint-really not sure what I am talking about)
    Thanks so much in advance. Fiancé's kid has had her cancer recur in a different place and someone was nice enough to buy her a MACBOOK as a gift.
    Sincerely
    Peter

    ccarbery wrote:
    OK...I figured it out...no need to reply.  I noticed that there was another Protocol to use to set up the printer on the Mac, I was using LPD, so I switched it to HP Jet Direct-socket, and it prints fine...thanks.  I am curious as to why LPD wouldn't work; if anyone has that answer I would like to know...thanks
    Any chance of posting the Protocol you used to connect to your printer with your laptop?  I'm have the exact same problem printing from my MB.  Same error message "..is busy".

  • I need help with printing labels.  please

    I need help with printing labels.  thanks in advance

    Welcome to Apple Support Communities.
    In Address Book, first select a name or group of names to print.
    Then File, Print, select Style, Mailing Labels, then Layout to select a specific target label (such as an Avery number), or define your own...

  • Need a recommendation for the best LP turntable to transfer lps to iTunes library...recieved a SONY that is recommended for windows only. Have a brand new SONY ps-lx300USB recieved as a gift that only says they will not guarentee results w/ mac.Help.

    Need a recommendation for the best LP turntable to transfer lps to iTunes library...recieved a SONY that is recommended for windows only. Have a brand new SONY ps-lx300USB recieved as a gift that only says they will not guarentee results w/ mac. Please Help.

    Just use that turntable with -> Audacity

  • A3 Printer Recommendation

    My canon 9000 printer has died so need new - A3 Printer - Recommendation on  a printer that will operate on my old power mac G5 - OS X 10.5.8 would be very much appreciated

    Welcome, Wombat!
    I don't have a specific recommendation for an A#-capable unit (not a common size in my corner of the world) but can relate my experiences with finding printers for older Macs.
    In helping a friend get a printer for an old Mac, we found no current multifunctions that did not require an Intel processor, something the G5 lacks. However, we did find some inexpensive print-only ink jets from Canon and Brother that, by getting drivers from their web sites, would support as far back as G3 processors and Mac OS10.3.9. We set him up with a Canon PIXMA 3100 (I think--that was about 18 months ago!).

  • Help Needed REP-1800 Formatter error VGS-1701 Not enough memory

    Hi. Gents
    Help needed
    I’m working on a Report, it gets some 2 million records and the report pages are approximately 52,000
    It works fine if the pages are lesser then 48,000 or the data is less let say one and half a million, the problem occurs only after 48000 + pages formatted.
    Report is generated successfully when trying to go to the last page it throw an error.
    REP-1800 Formatter error
    VGS-1701 Not enough memory
    I have already gone through the metalink DOC Id 95505.1 as well as OTN
    But all in vain,
    Any comments or help much appreciated.
    Details are:
    Reports 6i (Clients/Server) on Windows platform
    (Windows XP Professional with SP 2)
    Database: Oracle9i Enterprise Edition Release 9.2.0.5.0
    Computer:
    Pentium(R) 4, CPU 3.00GHz, 1 GB of RAM
    Still 20 GB free space
    Thanks & Regards

    I don't see the point in making a report with more than 48,000 pages, I think Al Gore will not be happy when you start printing it...
    The problem might be caused by the fact that Reports needs to format all output at once, and then even 1GB of memory will probably be not enough. Formatting all pages at once is needed if you use pagination with displaying total number of pages. If you have this, try to get that out of the report definition and try again.

  • Laser printer recommendations please

    I need a printer that will work well with my 2008 iMac (Snow Lep) ideally wirelessly.  I need printing, scanning and copying - not huge quantities but need the quality to be good. My budget is around £150 and if I can find something that doesn't require cartridges that cost £1m each that would be a bonus!  There is so much contradictory info out there any recommendations would be gratefully received.

    got a Samsung SCX-4500W
    it's laserprinter, scanner, copy
    it's wifi
    it works on osx it works on windows8 pro
    it works on iphone and ipad (if I use the free samsung  printing app)
    or if I use the netgear Genie program running on one of the computers

  • Printer recommendations for iMAc Core Duo

    Greetings! I need a recommendation from anyone who is successfully using a multi function printer with an iMac Core Duo. I am returning an EPSON CX5800f because the scanning driver does not work. The printer works great but the scanner does not. Any success stories? Thanks Billy D

    Hello, again! I am back. I returned the EPSON today and I am looking at an HP OfficeJet 7310 for printing, faxing, and scannng on my iMac Core Duo running OS 10.4.6. Any one with good or bad experiences with the 7310? I received an email back from HP saying that the 7310 would work with Intel Macs but I see no such indication on their web site driver download page. Plus HP has not said that the scanning driver for the 7310 would work with the iMac Core Duo. Any comments? Thanks!

  • Having Problem in access to Source Code Control System (URGENT help needed)

    I am using JDeveloper 9i first time. The repository is in Oracle 8i.
    I have established a connection from JDeveloper 9i to Oracle 8i repository running on Sun Solaris.
    We have created a shared area and my colleague have checked-in some files. I have all access to shared area and I can see the checked-in files, but I am not able to check-out to the local folder.
    I need help to resolve this problem urgently. Please consider this as an SOS call. Thanks

    Hi,
    The JDeveloper help system strongly recommends that you don't use shared workareas in this way. In fact, it's not possible in the beta release of JDeveloper to work this way at all, because there is no way for you both to get the files on to your file system in a way that JDeveloper will recognize.
    The JDeveloper documentation on Repository is a very good source of information on the best way to organize developer workareas (particularly the section on best usage recommendations). The Repository is a very complex product originally intended for much more than just source control and there are many ways of using it. We have necessarily had to focus on a subset of this functionality in JDeveloper, mainly to keep the UI from being excessively complex for new users.
    Here's a summary of the way we recommend working:
    o Create a workarea in the RON which will be used as the basis of developer workareas (developers will not actually use this workarea directly). Make this workarea shared by granting access rights to the PUBLIC role.
    o Each developer uses the Workarea wizard in JDeveloper (Source Control->Configure... in the beta release) to create a developer workarea based on the shared workarea.
    Thanks,
    Brian
    JDeveloper Team
    null

Maybe you are looking for

  • Major SSD crash

    My startup SSD crashed while using FCP X. FCP X was getting slower and slower as it tried to deal with thousands of clips in a project which were the result of thousands of time code breaks. Fast forwarding and rewinding the tape got rid of a few hun

  • Routing Table Linking.

    I am currently working on a project whereby I am linking in MS Access the data in the "MTL_SYSTEM_ITEMS_B" Table, "BOM_OPERATIONAL_ROUTING" Table, "BOM_OPERATION_SEQUENCE" Table and "BOM_OPERATION_RESOURCES" Table. As for the link between the "MTL_SY

  • Exporting alpha channel problem

    i have simple file, no footage; just illustrator artwork. the only way i can see the alpha channel in motion is to have the project background (set in the project prefs) set to 0% opacity (i'm using white). when i do this, i can see that there is tra

  • Valitadion of xml with schema declared in it

    Hey, I can compile this and run it; but I don't know if it works because it will not throw any exceptions if I change my xmlfile to be not valid. So I'm not getting any printouts... This is not good at all. What have I done wrong? I'm totally new to

  • Can't locate any printers (w/ Java Print Service)

    Hi all, I'm using the following code to locate print services on my Windows 2000 laptop: private PrintService[] drucker; private DocFlavor format = DocFlavor.INPUT_STREAM.TEXT_HTML_HOST; private Doc output; private PrintRequestAttributeSet printerAtt


HashFlare