pietsch 2002/07/14 08:34:33
Modified: src/org/apache/fop/apps Tag: fop-0_20_2-maintain
CommandLineOptions.java
src/org/apache/fop/render/txt Tag: fop-0_20_2-maintain
TXTRenderer.java TXTStream.java
Log:
Command line option for setting encoding of the output
file for text renderer.
Submitted by: Oleg Tkachenko [EMAIL PROTECTED]
Reviewed by: J.Pietschmann
Revision Changes Path
No revision
No revision
1.14.2.5 +17 -4 xml-fop/src/org/apache/fop/apps/CommandLineOptions.java
Index: CommandLineOptions.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/apps/CommandLineOptions.java,v
retrieving revision 1.14.2.4
retrieving revision 1.14.2.5
diff -u -r1.14.2.4 -r1.14.2.5
--- CommandLineOptions.java 6 Jul 2002 16:43:45 -0000 1.14.2.4
+++ CommandLineOptions.java 14 Jul 2002 15:34:32 -0000 1.14.2.5
@@ -16,6 +16,7 @@
import org.apache.fop.configuration.Configuration;
import org.apache.fop.apps.FOPException;
import org.apache.fop.messaging.MessageHandler;
+import org.apache.fop.render.txt.TXTRenderer;
// Avalon
import org.apache.avalon.framework.logger.ConsoleLogger;
@@ -78,7 +79,7 @@
/* language for user information */
String language = null;
- private java.util.Hashtable rendererOptions;
+ private java.util.HashMap rendererOptions;
private Logger log;
@@ -88,7 +89,7 @@
setLogger(new ConsoleLogger(ConsoleLogger.LEVEL_INFO));
boolean optionsParsed = true;
- rendererOptions = new java.util.Hashtable();
+ rendererOptions = new java.util.HashMap();
try {
optionsParsed = parseOptions(args);
if (optionsParsed) {
@@ -252,6 +253,14 @@
outfile = new File(args[i + 1]);
i++;
}
+ } else if (args[i].equals("-" + TXTRenderer.encodingOptionName)) {
+ if ((i + 1 == args.length)
+ || (args[i + 1].charAt(0) == '-')) {
+ throw new FOPException("you must specify text renderer
encoding");
+ } else {
+ rendererOptions.put(TXTRenderer.encodingOptionName, args[i +
1]);
+ i++;
+ }
} else {
printUsage();
return false;
@@ -375,7 +384,7 @@
}
}
- public java.util.Hashtable getRendererOptions() {
+ public java.util.HashMap getRendererOptions() {
return rendererOptions;
}
@@ -505,6 +514,8 @@
+ " -pcl outfile input will be rendered as pcl
file (outfile req'd) \n"
+ " -ps outfile input will be rendered as
PostScript file (outfile req'd) \n"
+ " -txt outfile input will be rendered as
text file (outfile req'd) \n"
+ + " -"+TXTRenderer.encodingOptionName+" encoding
use the encoding for the output file.\n"
+ + " the encoding must be a valid
java encoding.\n"
+ " -svg outfile input will be rendered as an
svg slides file (outfile req'd) \n"
+ " -at outfile representation of area tree
as XML (outfile req'd) \n"
+ " -print input file will be rendered
and sent to the printer \n"
@@ -587,6 +598,8 @@
case TXT_OUTPUT:
log.debug("txt");
log.debug("output file: " + outfile.toString());
+ if (rendererOptions.containsKey(TXTRenderer.encodingOptionName))
+ log.debug("output encoding: " +
rendererOptions.get(TXTRenderer.encodingOptionName));
break;
case SVG_OUTPUT:
log.debug("svg");
No revision
No revision
1.12.2.3 +10 -1 xml-fop/src/org/apache/fop/render/txt/TXTRenderer.java
Index: TXTRenderer.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/txt/TXTRenderer.java,v
retrieving revision 1.12.2.2
retrieving revision 1.12.2.3
diff -u -r1.12.2.2 -r1.12.2.3
--- TXTRenderer.java 23 Apr 2002 22:33:40 -0000 1.12.2.2
+++ TXTRenderer.java 14 Jul 2002 15:34:32 -0000 1.12.2.3
@@ -46,6 +46,7 @@
* the current stream to add Text commands to
*/
TXTStream currentStream;
+ public static final String encodingOptionName = "txt.encoding";
private int pageHeight = 7920;
@@ -1719,6 +1720,14 @@
throws IOException {
log.info("rendering areas to TEXT");
currentStream = new TXTStream(outputStream);
+ String encoding = (String)options.get(encodingOptionName);
+ try {
+ byte buff[] = " ".getBytes(encoding);
+ } catch (java.io.UnsupportedEncodingException uee) {
+ log.warn("Encoding '"+encoding+"' is not a valid Java encoding. Use
UTF-8.");
+ encoding = "UTF-8";
+ }
+ currentStream.setEncoding(encoding);
firstPage=true;
}
1.1.4.1 +8 -1 xml-fop/src/org/apache/fop/render/txt/TXTStream.java
Index: TXTStream.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/txt/TXTStream.java,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -r1.1 -r1.1.4.1
--- TXTStream.java 31 Jan 2002 18:14:42 -0000 1.1
+++ TXTStream.java 14 Jul 2002 15:34:32 -0000 1.1.4.1
@@ -11,6 +11,7 @@
public class TXTStream {
OutputStream out = null;
boolean doOutput = true;
+ private String encoding;
public TXTStream(OutputStream os) {
out = os;
@@ -21,7 +22,7 @@
return;
try {
- byte buff[] = str.getBytes("UTF-8");
+ byte buff[] = str.getBytes(encoding);
out.write(buff);
} catch (IOException e) {
throw new RuntimeException(e.toString());
@@ -32,4 +33,10 @@
doOutput = doout;
}
+ public void setEncoding(String encoding) {
+ if (encoding != null)
+ this.encoding = encoding;
+ else
+ this.encoding = "UTF-8";
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]