diff options
Diffstat (limited to 'xmerge/source/xmerge/java/org/openoffice/xmerge/util/TwipsConverter.java')
-rw-r--r-- | xmerge/source/xmerge/java/org/openoffice/xmerge/util/TwipsConverter.java | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/xmerge/source/xmerge/java/org/openoffice/xmerge/util/TwipsConverter.java b/xmerge/source/xmerge/java/org/openoffice/xmerge/util/TwipsConverter.java new file mode 100644 index 000000000..a8501f8b9 --- /dev/null +++ b/xmerge/source/xmerge/java/org/openoffice/xmerge/util/TwipsConverter.java @@ -0,0 +1,84 @@ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +package org.openoffice.xmerge.util; + +/** + * Helper class providing static methods to convert data to/from twips. + */ +public class TwipsConverter { + + /** + * Convert from twips to cm's. + * + * @param value The {@code short} to be converted. + * + * @return {@code float} containing the converted. + */ + public static float twips2cm(int value) { + float inches = (float) value/1440; + float cm = inches*(float)2.54; + return cm; + } + + /** + * Convert from cm's to twips. + * + * @param value {@code float} containing the representation of the value. + * + * @return {@code int} containing the converted value. + */ + private static int cm2twips(float value) { + int twips = (int) ((value/2.54)*1440); + return twips; + } + + /** + * Convert from cm's to twips. + * + * @param value {@code float} containing the representation of the value. + * + * @return {@code int} containing the converted value. + */ + private static int inches2twips(float value) { + return (int) (value*1440); + } + + /** + * Convert {@code String} to twips. + * + * @param value {@code String} in the form {@literal "1.234cm"} or + * {@literal "1.234inch"}. + * @param defaultValue the default value. + * @return the converted value if {@code value} is a well-formatted {@code + * String}, {@code defaultValue} otherwise. + */ + public static int convert2twips(String value, int defaultValue) { + int posi; + + if ((posi = value.indexOf("cm")) != -1) { + float cm = Float.parseFloat(value.substring(0,posi)); + return cm2twips(cm); + } else if ((posi = value.indexOf("inch")) != -1) { + float inches = Float.parseFloat(value.substring(0,posi)); + return inches2twips(inches); + } + + return defaultValue; + } +}
\ No newline at end of file |