/**************************************************************
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
package convwatch;
import java.io.File;
import java.io.FileWriter;
import helper.OSHelper;
public class HTMLOutputter
{
FileWriter m_aOut;
String m_sFilename;
String m_sNamePrefix; // the HTML files used a suffix to build it's right name
/**
* ls is the current line separator (carridge return)
*/
String ls;
HTMLOutputter() {}
public static HTMLOutputter create( String _sOutputPath, String _sHTMLFilename, String _sNamePrefix, String _sTitle )
{
FileHelper.makeDirectories("", _sOutputPath);
HTMLOutputter a = new HTMLOutputter();
String fs = System.getProperty("file.separator");
String sFilename = _sOutputPath + fs + _sHTMLFilename;
try
{
File outputFile = new File(sFilename);
a.m_aOut = new FileWriter(outputFile.toString());
a.ls = System.getProperty("line.separator");
}
catch (java.io.IOException e)
{
e.printStackTrace();
GlobalLogWriter.get().println("ERROR: Can't create HTML Outputter");
return null;
}
a.m_sFilename = sFilename;
a.m_sNamePrefix = _sNamePrefix;
return a;
}
public String getFilename() {return m_sFilename;}
public void header(String _sTitle)
{
try
{
m_aOut.write( "" + ls);
m_aOut.write( "
" + ls);
m_aOut.write( "" + ls);
m_aOut.flush();
m_aOut.close();
}
catch (java.io.IOException e)
{
}
}
// -----------------------------------------------------------------------------
String stronghtml(String _sValue)
{
StringBuffer a = new StringBuffer();
a.append("");
a.append(_sValue);
a.append("");
return a.toString();
}
final static String FIRSTGFX_TABLETITLE = "Original print file as jpeg";
final static String SECONDGFX_TABLETITLE = "New print file as jpeg";
final static String DIFFER_TABLETITLE = "Difference file";
final static String STATUS_TABLETITLE = "Status";
final static String PIXELDIFF_TABLETITLE = "Pixel difference in %";
final static String PIXELDIFF_BM_TABLETITLE = "P.diff. in % after remove border";
final static String DIFFER_BM_TABLETITLE = "Diff file (RB)";
final static String OK_TABLETITLE = "OK?";
public void checkSection(String _sDocumentName)
{
try
{
m_aOut.write( "
Results for the document " + _sDocumentName + "
" + ls);
m_aOut.write( "
Legend: ");
m_aOut.write( stronghtml(FIRSTGFX_TABLETITLE) + " contains the output printed via 'ghostscript' as a jpeg picture. ");
m_aOut.write( stronghtml(SECONDGFX_TABLETITLE) + " contains the same document opened within OpenOffice.org also printed via ghostscript as jpeg. ");
m_aOut.write( stronghtml(DIFFER_TABLETITLE)+" is build via composite from original and new picture. The result should be a whole black picture, if there are no differences. At the moment "+stronghtml(STATUS_TABLETITLE)+" is only ok, if the difference file contains only one color (black).
" );
m_aOut.write( stronghtml(DIFFER_BM_TABLETITLE) + " is build via composite from original and new picture after the border of both pictures are removed, so differences based on center problems may solved here");
m_aOut.write( "");
m_aOut.write( "
Some words about the percentage value ");
m_aOut.write( "If a character is on the original page (a) and on the new page this character is moved to an other position only (b) , this means the difference is 100%. ");
m_aOut.write( "If character (b) is also bigger than character (a) the percentage is grow over the 100% mark. ");
m_aOut.write( "This tool count only the pixels which are differ to it's background color. It makes no sense to count all pixels, or the difference percentage will most the time in a very low percentage range.");
m_aOut.write( "