How to save a Cyrillic font string

Dear all,
I have an application which I can display Russian character, but when I save to an image file (it is a format defined in our company), the display is mess. We have a workaround to realize this: if you set your default local to China then it is OK. But our user is not in China so we can't ask them to set this. I feel very strange about this, I also tried to output unicode (UTF-8) but it does not work. Anybody has idea?
Thanks
Samuel

How can you "save" a string in an image file? Don't you mean that you try to draw it?

Similar Messages

  • How Do you use Cyrillic Fonts (Russian) in InDesign CS4 or CS3

    I have a headline in Russian a client sent me in an e-mail that I need to use on a poster I'm laying out in InDesign.
    I downloaded ERUniverse cyrillic font, and when I paste the Russian headline in a text box and go to select ERUniverse cyrillic, there's no Russian!
    Also, I go down to the bottom of my fonts there's Hebrew, Japanesse, Chinese fonts, etc...but no Russian.
    Please help with instructions on how to use a cyrillic font!!!

    I downloaded ERUniverse cyrillic font, and when I paste the Russian headline in a text box and go to select ERUniverse cyrillic, there's no Russian!
    That font must not be Unicode enabled. An old hack to insert Cyrillic characters into a regular font was to replace "unused" characters with Cyrillic ones. So, to type a 'de' д, you would insert the character code for an 'ê'.
    Modern fonts are Unicode enabled, which simply means that in every font Cyrillic characters are found in the same place. Thus, changing the font does not change the text.
    If you are working on Windows, check the Character Map for fonts that support Cyrillic. Select 'Advanced view', Character set: Unicode, Group by: Unicode Subrange. A small window pops up, enumerating all possible Unicode groups. Scroll down and select 'Cyrillic'. Now the character map will only show these characters for each font, so simply scroll through your font list to see which one have them.
    (And OSX no doubt has a similar feature.)
    The older Windows system fonts Times New Roman, Arial, Georgia, Verdana, and the newer ones Calibri, Cambria, and Candara, and lots of the fonts that came with your InDesign installation support Cyrillic (at least Minion Pro and Myriad Pro do).
    It's also possible the original text has not been typed using a Unicode font. If you need a quick check, select some of the text and select the font Arial Unicode (on a Mac, I think "LastResort" will do). If you see useful text, you're okay to go. If not, you have a huge problem. You will have to find the exact font that was used in the original document and use that, or use Find and Replace to change each character to the actual Cyrillic one (and you will need a hardcopy before you can do that).

  • How to save data in a string control?

    I want to save data in a string control or indicator. I know that I can rt-click and make the data default. But can it be done through a proberty node or something else when the program is running?

    There isn't a "Make Current Value Default" method that you can invoke programmatically, this would require your VI to be saved when it was closed, which obviously couldn't be done if it had been built into an executable.
    You could read the values from the controls/indicators and save them in a .ini file using the Configuration File VIs on the File I/O palette, and have some code at the start of your program that reads the values from the file and puts them into the objects using local variables.

  • How To use Arial (Cyrillic) font  in Reports 10g for PDF output

    Hi,
    My reports are in Arial (Cyrillic) font, but there are only hieroglyphes in pdf output. Is there a problem with fonts on Report Server or something else?
    My Report Server is 10g R2 (10.1.2.2) and OS is RHEL 4.
    I followed metalink notes 750805.1 and 356221.1 but it didn't help me.

    You also have to be careful with fonts. The font you download may be the same name, but a different font. Just because you find a Zurich BT font, does not mean it is the same. If you search on the internet, there are several sources of some Zurich BT fonts free. However, they may or may not be the same font. Editing is best done on the original document and not the PDF. One of the PDFs I found on the Landis site was only in Zurich font. I would think that the original file is available from the company and that should be the document you edit, not the PDF. It appears the original was created in InDesign (CS3).

  • Hi, How to save UTF-8 encoded string into Mysql DB with jdbc?

    Mysql doesn't support UTF-8, right? is there any way we can bridge it?

    Hi,
    By using the latest versions of MySql and mm mysql jdbc drivers you can
    read and write unicode characters from/into MySql database. You can download
    mm.mysql jdbc driver from http://mmmysql.sourceforge.net/
    We haven't tested this jdbc driver officially.
    Hope this helps.
    Good Luck.
    Gayam.Srinivasa Reddy
    Developer Technical Support
    Sun Micro Systems
    http://www.sun.com/developers/support/

  • How do I save my CMYK font settings & make it avaliable for all files ?

    How do I save my CMYK font settings & make it avaliable for all files ? (adobe PS indesign file)

    Could you explain what you want to do a little bit better? CMYK and fonts aren't really related to each other.
    Also, are you using Photoshop or InDesign?

  • How to save font colour in mail

    How to save font colour in mail

    You can create the Draft Letter & save it as a draft. Then open the draft letter, copy the entire text & paste it into a new email.
     Cheers, Tom

  • How do i change the font, save in messages i'm reading in ipad 3?

    how do i change the font, save in messages i'm reading in ipad 3?

    I have an custom app that I want to change the size of the fonts cause the app font size is too long so i cannot see the whole sentence. thanks.

  • How to save a string input by the user to a file

    Hi,
    Can anyone please teach me how to save a string or several string that requires the input of the user into a text file?
    Your help is very much appreciated!
    Thank you!

    http://java.sun.com/docs/books/tutorial/essential/io/index.html

  • How to save the string from JTextFied to database?

    can i know how to save the data from JTextFied to databse. Is it using update?

    The most straightforward way would be something like:
    String myKey=myKeyField.getText();
    String foo=fooField.getText();
    String sql="update mytable set foo='"+foo+"' where mykey='"+myKey+"'";
    connection.createStatement().executeUpdate(sql);
    This example assumes that the input fields cannot possibly contain quotes or the string won't be built correctly. Which by the way brings up a question I'd be interested in hearing others answer: What do you do about this? Sometimes I use PreparedStatement which handles that problem, other times I write my own little function to escape the string properly.
    You can also read the record into a ResultSet and use ResultSet.update(). I'm mostly using mySql and I found that in mySql ResultSet.update just creates a SQL update statement like I did above and executes it, so the only real advantage would be if you find the syntax more convenient. Perhaps other database drivers do something different that would give other pros and cons.

  • How do I change/save the default font in mail from helvetica to something else?

    How do I change/save the default font in mail from helvetica to something else?

    Mail > Preferences > Fonts & Colors > Messages font:
    Click the "Select" button next to "Helvetica 13" textbox.
    Select your choice from the window that opens up.

  • How do I use a font that a user of my screen saver might not have?

    I am trying to do a little experiment with fonts. I downloaded a font that was not previously installed on my computer, and am trying to make a "Hello, World!" screen saver with that font(which I installed).
    The problem is that I can not even use that font. When I attempt to make a "Hello, World!" screen saver with that font, it uses the default font. Here's the code:
    #import "saverView.h"
    @implementation saverView
    - (id)initWithFrame:(NSRect)frame isPreview:(BOOL)isPreview
    self = [super initWithFrame:frame isPreview:isPreview];
    if (self) {
    [self setAnimationTimeInterval:1/30.0];
    //either my mistake is here:
    hylianFont = [NSFont fontWithName:@"Ancient Hylian - English" size:20];
    attrs = [NSMutableDictionary dictionaryWithCapacity:2];
    //NSForegroundColorAttributeName -- [Color green]
    [attrs setValue:[NSColor greenColor] forKey: NSForegroundColorAttributeName];
    // or it is here:
    [attrs setValue:hylianFont forKey: NSFontAttributeName];
    displayer = [[NSAttributedString alloc] initWithString:@"Hello, World!" attributes:attrs];
    return self;
    //... more stuff I do not use...
    //simply draws "Hello, World!" in green at the top right of the screen.
    //meant to draw it in the different font, but draws it in the standard font.
    - (void)animateOneFrame
    [displayer drawInRect:[self bounds]];
    return;
    @end
    Where did I mistype?

    I think I solved the problem. I just put the font and the screen saver in a pkg file, and make the pkg file install the font. Or I guess I could keep the font in my screen saver and test it that way. Either way, I found the answer.

  • How to save image?

    Hi all,
    I have drawn an Image using Graphics, and then I have drawn some rectangles on it.
    How can I save that image with drawn rectangles?
    any idea or link which should I refer?

    Example 1:
    import java.awt.BasicStroke;
    import java.awt.Color;
    import java.awt.Font;
    import java.awt.FontMetrics;
    import java.awt.GradientPaint;
    import java.awt.Graphics2D;
    import java.awt.geom.Ellipse2D;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
    public class WriteImageType {
      static public void main(String args[]) throws Exception {
        try {
          int width = 200, height = 200;
          // TYPE_INT_ARGB specifies the image format: 8-bit RGBA packed
          // into integer pixels
          BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
          Graphics2D ig2 = bi.createGraphics();
          Font font = new Font("TimesRoman", Font.BOLD, 20);
          ig2.setFont(font);
          String message = "www.java2s.com!";
          FontMetrics fontMetrics = ig2.getFontMetrics();
          int stringWidth = fontMetrics.stringWidth(message);
          int stringHeight = fontMetrics.getAscent();
          ig2.setPaint(Color.black);
          ig2.drawString(message, (width - stringWidth) / 2, height / 2 + stringHeight / 4);
          ImageIO.write(bi, "PNG", new File("c:\\yourImageName.PNG"));
          ImageIO.write(bi, "JPEG", new File("c:\\yourImageName.JPG"));
          ImageIO.write(bi, "gif", new File("c:\\yourImageName.GIF"));
          ImageIO.write(bi, "BMP", new File("c:\\yourImageName.BMP"));
        } catch (IOException ie) {
          ie.printStackTrace();
    Example 2:
    // Create an image to save
        RenderedImage rendImage = myCreateImage();
        // Write generated image to a file
        try {
            // Save as PNG
            File file = new File("newimage.png");
            ImageIO.write(rendImage, "png", file);
            // Save as JPEG
            file = new File("newimage.jpg");
            ImageIO.write(rendImage, "jpg", file);
        } catch (IOException e) {
        // Returns a generated image.
        public RenderedImage myCreateImage() {
            int width = 100;
            int height = 100;
            // Create a buffered image in which to draw
            BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
            // Create a graphics contents on the buffered image
            Graphics2D g2d = bufferedImage.createGraphics();
            // Draw graphics
            g2d.setColor(Color.white);
            g2d.fillRect(0, 0, width, height);
            g2d.setColor(Color.black);
            g2d.fillOval(0, 0, width, height);
            // Graphics context no longer needed so dispose it
            g2d.dispose();
            return bufferedImage;
        }

  • How to: Save jpg frames to swf animation.

    I create signatures for my friends to use in posts on forums
    at the end of their messages.
    Examples here:
    http://s12.invisionfree.com/venvenaevici
    Recently I decided to try animation, but saving in gif format
    isnt allowing me to save with as much detail as I would like and
    the backgrounds are comming out grainy and not smooth. After a
    weeks worth of trouble shooting I think my solution is to save the
    several .jpg files I have refined into a flash, but I dont know how
    to do that. Can anyone help?
    Also when it is saved I would like it to auto play and loop
    like this gif animation I have. If only I could get it to save as
    it looks on preview, or if I had proper training :/
    Animation Example:
    http://w3.the-kgb.com/venvenae/shalieeani.gif
    Background Example without the animation of above:
    http://w3.the-kgb.com/venvenae/shaliee.jpg
    The program I used to get the animation frames in the first
    place is called wow model viewer. Any assistance would be wonderful
    and much appreciated and I would be willing to do a signature for
    someone here that has helped me, if there is interst.
    I wasnt sure where to post this. Im sorry if its in the wrong
    place.

    Sorry I was not in Station!!!!!and hence the delay in replying
    Check this example for more details
    public WriteImageIW( String filename, String type ) {
    try {
    int width = 200, height = 200;
    int x0 = 20, y0 = 20, x1 = width-20, y1 = width-20;
    BufferedImage bi = new BufferedImage( width, height,
    BufferedImage.TYPE_INT_ARGB );
    Graphics2D ig2 = bi.createGraphics();
    GradientPaint paint =
    new GradientPaint( x0, y0, Color.white, x1, y1, Color.black );
    ig2.setPaint( paint );
    ig2.fillRect( 0, 0, width-1, height-1 );
    BasicStroke stroke = new BasicStroke( 10, BasicStroke.CAP_ROUND,
    BasicStroke.JOIN_ROUND );
    ig2.setPaint( Color.lightGray );
    ig2.setStroke( stroke );
    ig2.draw( new Ellipse2D.Double( x0, y0, x1-x0, y1-y0 ) );
    Font font = new Font( "TimesRoman", Font.BOLD, 20 );
    ig2.setFont( font );
    String message = "Java2D!";
    FontMetrics fontMetrics = ig2.getFontMetrics();
    int stringWidth = fontMetrics.stringWidth( message );
    int stringHeight = fontMetrics.getAscent();
    ig2.setPaint( Color.black );
    ig2.drawString( message, (width-stringWidth)/2,
    height/2+stringHeight/4 );
    Iterator imageWriters =
    ImageIO.getImageWritersByFormatName( type );
    ImageWriter imageWriter = (ImageWriter)imageWriters.next();
    File file = new File( filename );
    ImageOutputStream ios =
    ImageIO.createImageOutputStream( file );
    imageWriter.setOutput( ios );
    imageWriter.write( bi );
    } catch( IOException ie ) {
    ie.printStackTrace();
    the file is being created, the type of the file must be specified on the command line.

  • How  to  save  content of a  whole  swing  page

    Hi everyone ..
    can any of u tell me ,how to save contents of a java swing page in a single file with all components viz . textfield,textarea,JTable,JPanel etc .. with their respective formatting ie.e Font,Color etc ..
    Plz let me know it soon .. its very urgent ..
    Can I save it as Screenshot or Jpeg Image .. or how to go about it .
    Mohit

    Sure: see below!
    WARNING: this code will not compile as is because it uses some other classes from my personal code library (FileUtil & StringUtil). The particular methods of those classes which are used below are trivial methods that anyone can write, which is is why I have not posted them as well. So, to get the code below to compile, you can
    a) write your own versions of these classes or
    b) simply add the necessary methods to this class or
    c) simply comment out their usage (in the case of StringUtil, which is just used for arg checking)
    But if you still want me to post them, then I can post the relevant fragments of those classes.
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import java.io.*;
    import javax.imageio.*;
    import javax.swing.*;
    import bb.io.FileUtil;
    import bb.util.StringUtil;
    * Class which supports taking screen shots of the entire desktop, AWT Components, or Swing JComponents.
    * This functionality is implemented in a series of <code>take</code> methods, each of which returns a BufferedImage.
    * This class also offers convenience <code>write</code> methods for storing BufferedImages to files.
    * <p>
    * The images taken by this class should be the precise images seen on the screen.
    * <b>However, the images written to files may deviate from the originals.</b>
    * One obvious cause is limitations of the chosen file format (especially with lossy formats like jpeg).
    * A subtle issue can occur, however, even when using lossless formats like png:
    * if the file is subsequently opened by another application,
    * that application may rescale the image, which can often cause visible artifacts.
    * <blockquote>
    *     To see this last problem on Windows XP,
    *     call {@link #take()} which returns an image of the entire desktop and write it to a file,
    *     and then open the file with XP's default graphics file viewer ("Windows Picture And Fax Viewer").
    *     This program shrinks the desktop image in order to fit it inside the program's window,
    *     and rescaling artifacts are readily seen, especially if the desktop image has any kind of text in it.
    *     If "Windows Picture And Fax Viewer" instead cropped the image or had a scroll pane, then this should not happen.
    * </blockquote>
    * <p>
    * Acknowledgement: this class was inspired by the program
    * <a href="http://www.discoverteenergy.com/files/ScreenImage.java">ScreenImage</a>.
    * Differences from the above program:
    * <ol>
    *  <li>this class uses {@link BufferedImage#TYPE_INT_ARGB} instead of {@link BufferedImage#TYPE_INT_RGB} in order to preserve alpha</li>
    *  <li>this class's {@link #formatNameDefault default image file format} is PNG instead of JPEG</li>
    *  <li>this class's <code>take</code> methods simply take snapshots and never have the side effect of writing image files</li>
    *  <li>this class added a version of <code>take</code> which can get a snapshot of a region of a Component</li>
    *  <li>
    *          when taking a snapshot of a region of a Component or JComponent,
    *          the Rectangle that specifies the region always has coordinates relative to the origin of the item
    *  </li>
    * </ol>
    * See also:
    * <a href="http://forum.java.sun.com/thread.jspa?forumID=57&threadID=597936">forum discussion #1 on screen shots</a>
    * <a href="http://forum.java.sun.com/thread.jspa?forumID=256&threadID=529933">forum discussion #2 on screen shots</a>
    * <a href="http://forum.java.sun.com/thread.jspa?forumID=57&threadID=622393">forum discussion #3 on screen shots</a>.
    * <p>
    * It might appear that this class is multithread safe
    * because it is immutable (both its immediate state, as well as the deep state of its fields).
    * However, typical Java gui code is not multithread safe, in particular, once a component has been realized
    * it should only be accessed by the event dispatch thread
    * (see <a href="http://java.sun.com/developer/JDCTechTips/2003/tt1208.html#1">Multithreading In Swing</a>
    * and <a href="http://java.sun.com/developer/JDCTechTips/2004/tt0611.html#1">More Multithreading In Swing</a>).
    * So, in order to enforce that requirement, all methods of this class which deal with components
    * require the calling thread to be the event dispatch thread.
    * See the javadocs of each method for its thread requirements.
    * <p>
    * @author bbatman
    public class ScreenShot {
         // -------------------- constants --------------------
         * Defines the image type for the BufferedImages that will create when taking snapshots.
         * The current value is {@link BufferedImage#TYPE_INT_ARGB}, which was chosen because
         * <ol>
         *  <li>the 'A' in its name means that it preserves any alpha in the image (cannot use the "non-A" types)</li>
         *  <li>the "_INT" types are the fastest types (the "BYTE" types are slower)
         * </ol>
         * @see <a href="http://forum.java.sun.com/thread.jspa?threadID=709109&tstart=0">this forum posting</a>
         private static final int imageType = BufferedImage.TYPE_INT_ARGB;
         * Default value for the graphics file format that will be written by this class.
         * The current value is "png" because the PNG format is by far the best lossless format currently available.
         * Furthermore, java cannot write to GIF anyways (only read).
         * <p>
         * @see <a href="http://www.w3.org/TR/PNG/">Portable Network Graphics (PNG) Specification (Second Edition)</a>
         * @see <a href="http://www.w3.org/QA/Tips/png-gif">GIF or PNG</a>
         * @see <a href="http://www.libpng.org/pub/png/">PNG Home Site</a>
         public static final String formatNameDefault = "png";
         // -------------------- take --------------------
         // desktop versions:
         * Takes a screen shot of the entire desktop.
         * <p>
         * Any thread may call this method.
         * <p>
         * @return a BufferedImage representing the entire screen
         * @throws AWTException if the platform configuration does not allow low-level input control. This exception is always thrown when GraphicsEnvironment.isHeadless() returns true
         * @throws SecurityException if createRobot permission is not granted
         public static BufferedImage take() throws AWTException, SecurityException {
              Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
              Rectangle region = new Rectangle(0, 0, d.width, d.height);
              return take(region);
         * Takes a screen shot of the specified region of the desktop.
         * <p>
         * Any thread may call this method.
         * <p>
         * @param region the Rectangle within the screen that will be captured
         * @return a BufferedImage representing the specified region within the screen
         * @throws IllegalArgumentException if region == null; region's width and height are not greater than zero
         * @throws AWTException if the platform configuration does not allow low-level input control. This exception is always thrown when GraphicsEnvironment.isHeadless() returns true
         * @throws SecurityException if createRobot permission is not granted
         public static BufferedImage take(Rectangle region) throws IllegalArgumentException, AWTException, SecurityException {
              if (region == null) throw new IllegalArgumentException("region == null");
              return new Robot().createScreenCapture( region );     // altho not currently mentioned in its javadocs, if you look at its source code, the Robot class is synchronized so it must be multithread safe, which is why any thread should be able to call this method
         // AWT Component versions:
         * Takes a screen shot of that part of the desktop whose area is where component lies.
         * Any other gui elements in this area, including ones which may lie on top of component,
         * will be included, since the result always reflects the current desktop view.
         * <p>
         * Only {@link EventQueue}'s {@link EventQueue#isDispatchThread dispatch thread} may call this method.
         * <p>
         * @param component AWT Component to take a screen shot of
         * @return a BufferedImage representing component
         * @throws IllegalArgumentException if component == null; component's width and height are not greater than zero
         * @throws IllegalStateException if calling thread is not EventQueue's dispatch thread
         * @throws AWTException if the platform configuration does not allow low-level input control. This exception is always thrown when GraphicsEnvironment.isHeadless() returns true
         * @throws SecurityException if createRobot permission is not granted
         public static BufferedImage take(Component component) throws IllegalArgumentException, IllegalStateException, AWTException, SecurityException {
              if (component == null) throw new IllegalArgumentException("component == null");
              if (!EventQueue.isDispatchThread()) throw new IllegalStateException("calling thread (" + Thread.currentThread().toString() + ") is not EventQueue's dispatch thread");
              Rectangle region = component.getBounds();
              region.x = 0;     // CRITICAL: this and the next line are what make region relative to component
              region.y = 0;
              return take(component, region);
         * Takes a screen shot of that part of the desktop whose area is the region relative to where component lies.
         * Any other gui elements in this area, including ones which may lie on top of component,
         * will be included, since the result always reflects the current desktop view.
         * <p>
         * Only {@link EventQueue}'s {@link EventQueue#isDispatchThread dispatch thread} may call this method.
         * <p>
         * @param component AWT Component to take a screen shot of
         * @param region the Rectangle <i>relative to</i> component that will be captured
         * @return a BufferedImage representing component
         * @throws IllegalArgumentException if component == null; component's width and height are not greater than zero; region == null
         * @throws IllegalStateException if calling thread is not EventQueue's dispatch thread
         * @throws AWTException if the platform configuration does not allow low-level input control. This exception is always thrown when GraphicsEnvironment.isHeadless() returns true
         * @throws SecurityException if createRobot permission is not granted
         public static BufferedImage take(Component component, Rectangle region) throws IllegalArgumentException, IllegalStateException, AWTException, SecurityException {
              if (component == null) throw new IllegalArgumentException("component == null");
              if (region == null) throw new IllegalArgumentException("region == null");
              if (!EventQueue.isDispatchThread()) throw new IllegalStateException("calling thread (" + Thread.currentThread().toString() + ") is not EventQueue's dispatch thread");
              Point p = new Point(0, 0);
              SwingUtilities.convertPointToScreen(p, component);
              region.x += p.x;
              region.y += p.y;
              return take(region);
         // Swing JComponent versions:
         * Takes a screen shot of <i>just</i> jcomponent
         * (no other gui elements will be present in the result).
         * <p>
         * Only {@link EventQueue}'s {@link EventQueue#isDispatchThread dispatch thread} may call this method.
         * <p>
         * @param jcomponent Swing JComponent to take a screen shot of
         * @return a BufferedImage representing jcomponent
         * @throws IllegalArgumentException if jcomponent == null
         * @throws IllegalStateException if calling thread is not EventQueue's dispatch thread
         public static BufferedImage take(JComponent jcomponent) throws IllegalArgumentException, IllegalStateException {
              if (jcomponent == null) throw new IllegalArgumentException("jcomponent == null");
              if (!EventQueue.isDispatchThread()) throw new IllegalStateException("calling thread (" + Thread.currentThread().toString() + ") is not EventQueue's dispatch thread");
              Dimension d = jcomponent.getSize();
              Rectangle region = new Rectangle(0, 0, d.width, d.height);
              return take(jcomponent, region);
         * Takes a screen shot of <i>just</i> the specified region of jcomponent
         * (no other gui elements will be present in the result).
         * <p>
         * Only {@link EventQueue}'s {@link EventQueue#isDispatchThread dispatch thread} may call this method.
         * <p>
         * @param jcomponent Swing JComponent to take a screen shot of
         * @param region the Rectangle <i>relative to</i> jcomponent that will be captured
         * @return a BufferedImage representing the region within jcomponent
         * @throws IllegalArgumentException if jcomponent == null; region == null
         * @throws IllegalStateException if calling thread is not EventQueue's dispatch thread
         public static BufferedImage take(JComponent jcomponent, Rectangle region) throws IllegalArgumentException, IllegalStateException {
              if (jcomponent == null) throw new IllegalArgumentException("jcomponent == null");
              if (region == null) throw new IllegalArgumentException("region == null");
              if (!EventQueue.isDispatchThread()) throw new IllegalStateException("calling thread (" + Thread.currentThread().toString() + ") is not EventQueue's dispatch thread");
              boolean opaquenessOriginal = jcomponent.isOpaque();
              Graphics2D g2d = null;
              try {
                   jcomponent.setOpaque( true );
                   BufferedImage image = new BufferedImage(region.width, region.height, imageType);
                   g2d = image.createGraphics();
                   g2d.translate(-region.x, -region.y) ;     // CRITICAL: this and the next line are what make region relative to component
                   g2d.setClip( region );
                   jcomponent.paint( g2d );
                   return image;
              finally {
                   jcomponent.setOpaque( opaquenessOriginal );
                   if (g2d != null) g2d.dispose();
         // -------------------- write --------------------
         * Writes image to a newly created File named fileName.
         * The graphics format will either be the extension found in fileName
         * or else {@link #formatNameDefault} if no extension exists.
         * <p>
         * Any thread may call this method.
         * <p>
         * @param image the BufferedImage to be written
         * @param fileName name of the File that will write image to
         * @throws IllegalArgumentException if image == null; fileName is blank
         * @throws IOException if an I/O problem occurs
         public static void write(BufferedImage image, String fileName) throws IllegalArgumentException, IOException {
              if (image == null) throw new IllegalArgumentException("image == null");
              if (StringUtil.isBlank(fileName)) throw new IllegalArgumentException("fileName is blank");
              File file = new File(fileName);
              String formatName = FileUtil.getExtension(file);
              if (formatName.length() == 0) formatName = formatNameDefault;
              write(image, formatName, file);
         * Writes image to file in the format specified by formatName.
         * <p>
         * Any thread may call this method.
         * <p>
         * @param image the BufferedImage to be written
         * @param formatName the graphics file format (e.g. "pnj", "jpeg", etc);
         * must be in the same set of values supported by the formatName arg of {@link ImageIO#write(RenderedImage, String, File)}
         * @param file the File that will write image to
         * @throws IllegalArgumentException if image == null; type is blank; file == null
         * @throws IOException if an I/O problem occurs
         public static void write(BufferedImage image, String formatName, File file) throws IllegalArgumentException, IOException {
              if (image == null) throw new IllegalArgumentException("image == null");
              if (StringUtil.isBlank(formatName)) throw new IllegalArgumentException("formatName is blank");
              if (file == null) throw new IllegalArgumentException("file == null");
              ImageIO.write(image, formatName, file);
         // -------------------- Test (inner class) --------------------
         * An inner class that consists solely of test code for the parent class.
         * <p>
         * Putting all the test code in this inner class (rather than a <code>main</code> method of the parent class) has the following benefits:
         * <ol>
         *  <li>test code is cleanly separated from working code</li>
         *  <li>any <code>main</code> method in the parent class is now reserved for a true program entry point</li>
         *  <li>test code may be easily excluded from the shipping product by removing all the Test class files (e.g. on Windoze, delete all files that end with <code>$Test.class</code>)</li>
         * </ol>
         * Putting all the test code in this inner class (rather than a shadow external class) has the following benefits:
         * <ol>
         *  <li>non-public members may be accessed</li>
         *  <li>the test code lives very close to (so is easy to find) yet is distinct from the working code</li>
         *  <li>there is no need to set up a test package structure</li>
         * </ol>
         public static class Test {
              public static void main(String[] args) throws Exception {
                   Gui gui = new Gui();
                   EventQueue.invokeLater( gui.getBuilder() );
                   new Timer(1000, gui.getTimerActionListener()).start();
              private static class Gui {
                   private Frame frame;
                   private TextField textField;
                   private JFrame jframe;
                   private JLabel jlabel;
                   private JPanel jpanel;
                   private int count = 0;
                   private Runnable getBuilder() {
                        return new Runnable() {
                             public void run() {
                                  System.out.println("Creating a Frame with AWT widgets inside...");
                                  frame = new Frame("ScreenShot.Test.main Frame");
                                  textField = new TextField();
                                  textField.setText( "Waiting for the screen shot process to automatically start..." );
                                  frame.add(textField);                              
                                  frame.pack();
                                  frame.setLocationRelativeTo(null);     // null will center it in the middle of the screen
                                  frame.setVisible(true);
                                  System.out.println("Creating a JFrame with Swing widgets inside...");
                                  jframe = new JFrame("ScreenShot.Test.main JFrame");
                                  jlabel = new JLabel(
                                       "<html>" +
                                            "To be, or not to be: that is the question:" + "<br>" +
                                            "Whether 'tis nobler in the mind to suffer" + "<br>" +
                                            "The slings and arrows of outrageous fortune," + "<br>" +
                                            "Or to take arms against a sea of troubles," + "<br>" +
                                            "And by opposing end them?" + "<br>" +
                                            "To die: to sleep; No more;" + "<br>" +
                                            "and by a sleep to say we end" + "<br>" +
                                            "The heart-ache and the thousand natural shocks" + "<br>" +
                                            "That flesh is heir to," + "<br>" +
                                            "'tis a consummation Devoutly to be wish'd." + "<br>" +
                                       "</html>"
                                  jpanel = new JPanel();
                                  jpanel.setBorder( BorderFactory.createEmptyBorder(20, 20, 20, 20) );
                                  jpanel.add(jlabel);
                                  jframe.getContentPane().add(jpanel);
                                  jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                  jframe.pack();
                                  Point p = frame.getLocation();
                                  p.translate(0, frame.getSize().height  + 10);
                                  jframe.setLocation(p);
                                  jframe.setVisible(true);
                   private ActionListener getTimerActionListener() {
                        return new ActionListener() {
                             public void actionPerformed(ActionEvent evt) {
                                  try {
                                       switch (count++) {
                                            case 0:
                                                 displayMessage("Taking a screen shot of the entire desktop...");
                                                 ScreenShot.write( ScreenShot.take(), "desktop.png" );
                                                 break;
                                            case 1:
                                                 displayMessage("Taking a screen shot of the central rectangle of the desktop...");
                                                 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
                                                 Rectangle region = getCenteredRectangle(d);
                                                 ScreenShot.write( ScreenShot.take(region), "desktopCenteredRectangle.png" );
                                                 break;
                                            case 2:
                                                 displayMessage("Taking a screen shot of the TextField...");
                                                 ScreenShot.write( ScreenShot.take(textField), "textField.png" );
                                                 break;
                                            case 3:
                                                 displayMessage("Taking a screen shot of the central rectangle of the TextField...");
                                                 d = textField.getSize();
                                                 region = getCenteredRectangle(d);
                                                 ScreenShot.write( ScreenShot.take(textField, region), "textFieldCenteredRectangle.png" );
                                                 break;
                                            case 4:
                                                 displayMessage("Taking a screen shot of the JLabel...");
                                                 ScreenShot.write( ScreenShot.take(jlabel), "jlabel.png" );
                                                 break;
                                            case 5:
                                                 displayMessage("Taking a screen shot of the central rectangle of the JLabel...");
                                                 d = jpanel.getSize();
                                                 region = getCenteredRectangle(d);
                                                 ScreenShot.write( ScreenShot.take(jpanel, region), "jpanelCenteredRectangle.png" );
                                                 break;
                                            default:
                                                 System.exit(0);
                                                 break;
                                  catch (Throwable t) {
                                       t.printStackTrace(System.err);
                             private void displayMessage(String text) {
                                  System.out.println(text);
                                  textField.setText(text);
                                  frame.pack();
                                  frame.invalidate();
                             private Rectangle getCenteredRectangle(Dimension d) {
                                  int x = d.width / 4;
                                  int y = d.height / 4;
                                  int width = d.width / 2;
                                  int height = d.height / 2;
                                  return new Rectangle(x, y, width, height);
    }

Maybe you are looking for

  • Include signature in the reply

    Hi everybody, Somebody know how I include the signatura or a text that I created when I choose the option Reply (SU99) in the message for support ? Thanks.

  • PACKAGE

    Dear all, 1) Can anyone tell me how to import all java packages like java.util , java.io in a single import statement. 2) If i want to find a perticular .class file from the all packages of java , how can I achieve this? With Regards. SUJOY

  • No longer able to download podcasts, get an exclamation mark on left of episode listing after clicking download icon

    suddenly cannot download new podcasts to my Shuffle.  After clicking the download icon, I get an exclamation mark to the left of the podcast label.  I tried resubscribing to the podcast with no success.

  • F.13 Clearing - Only Accounts With Debit & Credit Postings Included

    Does anyone know if it is possible to configure F.13 to clear if there are not both debit and credit postings in an account? I am using an IS-Retail solution where sales are posted through the customers and reconciled through an account (110825).  Th

  • Error sqlldr with plink in remote command

    Hi all, My OS is Windows, I tried to launch a sqlldr remote command with plink (putty) : Command dos: "plink host -l oracle -pw oracle sqlldr -userid schema/pwd -control /tmp/test.ctl" I had this error : "ksh: sqlldr: not found" Setting of server : $