📄 mprintpaper.java
字号:
/******************************************************************************
* The contents of this file are subject to the Compiere License Version 1.1
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the License at http://www.compiere.org/license.html
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Original Code is Compiere ERP & CRM Smart Business Solution. The Initial
* Developer of the Original Code is Jorg Janke. Portions created by Jorg Janke
* are Copyright (C) 1999-2005 Jorg Janke.
* All parts are Copyright (C) 1999-2005 ComPiere, Inc. All Rights Reserved.
* Contributor(s): ______________________________________.
*****************************************************************************/
package org.compiere.print;
import java.sql.*;
import java.util.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import org.compiere.model.*;
import org.compiere.util.*;
/**
* AD_PrintPaper Print Paper Model
*
* @author Jorg Janke
* @version $Id: MPrintPaper.java,v 1.22 2006/01/24 05:17:52 jjanke Exp $
*/
public class MPrintPaper extends X_AD_PrintPaper
{
/**
* Get Paper
* @param AD_PrintPaper_ID id
* @return Paper
*/
static public MPrintPaper get (int AD_PrintPaper_ID)
{
Integer key = new Integer(AD_PrintPaper_ID);
MPrintPaper pp = (MPrintPaper)s_papers.get(key);
if (pp == null)
{
pp = new MPrintPaper (Env.getCtx(), AD_PrintPaper_ID, null);
s_papers.put(key, pp);
}
else
s_log.config("AD_PrintPaper_ID=" + AD_PrintPaper_ID);
return pp;
} // get
/**
* Create Paper and save
* @param name name
* @param landscape landscape
* @return Paper
*/
static MPrintPaper create (String name, boolean landscape)
{
MPrintPaper pp = new MPrintPaper (Env.getCtx(), 0, null);
pp.setName(name);
pp.setIsLandscape(landscape);
pp.save();
return pp;
} // create
/** Logger */
private static CLogger s_log = CLogger.getCLogger(MPrintPaper.class);
/** Cached Fonts */
static private CCache<Integer,MPrintPaper> s_papers
= new CCache<Integer,MPrintPaper>("AD_PrintPaper", 5);
/**************************************************************************
* Constructor
* @param ctx context
* @param AD_PrintPaper_ID ID if 0 A4
*/
public MPrintPaper(Properties ctx, int AD_PrintPaper_ID, String trxName)
{
super(ctx, AD_PrintPaper_ID, trxName);
if (AD_PrintPaper_ID == 0)
{
setIsDefault (false);
setIsLandscape (true);
setCode ("iso-a4");
setMarginTop (36);
setMarginBottom (36);
setMarginLeft (36);
setMarginRight (36);
}
} // MPrintPaper
/**
* Load Constructor
* @param ctx context
* @param rs result set
* @param trxName trx
*/
public MPrintPaper (Properties ctx, ResultSet rs, String trxName)
{
super (ctx, rs, trxName);
} // MPrintPaper
/** Media Size */
private MediaSize m_mediaSize = null;
/**************************************************************************
* Get Media Size.
* The search is hard coded as the javax.print.MediaSize* info is private
* @return MediaSize from Code
*/
public MediaSize getMediaSize()
{
if (m_mediaSize != null)
return m_mediaSize;
//
String nameCode = getCode();
if (nameCode != null)
{
// Get Name
MediaSizeName nameMedia = null;
CMediaSizeName msn = new CMediaSizeName(4);
String[] names = msn.getStringTable();
for (int i = 0; i < names.length; i++)
{
String name = names[i];
if (name.equalsIgnoreCase(nameCode))
{
nameMedia = (MediaSizeName)msn.getEnumValueTable()[i];
log.finer("Name=" + nameMedia);
break;
}
}
if (nameMedia != null)
{
m_mediaSize = MediaSize.getMediaSizeForName(nameMedia);
log.fine("Name->Size=" + m_mediaSize);
}
}
// Create New Media Size
if (m_mediaSize == null)
{
float x = getSizeX().floatValue();
float y = getSizeY().floatValue();
if (x > 0 && y > 0)
{
m_mediaSize = new MediaSize(x, y, getUnitsInt(), MediaSizeName.A);
log.fine("Size=" + m_mediaSize);
}
}
// Fallback
if (m_mediaSize == null)
m_mediaSize = getMediaSizeDefault();
return m_mediaSize;
} // getMediaSize
/**
* Get Media Size
* @return Default Media Size based on Language
*/
public MediaSize getMediaSizeDefault()
{
m_mediaSize = Language.getLoginLanguage().getMediaSize();
if (m_mediaSize == null)
m_mediaSize = MediaSize.ISO.A4;
log.fine("Size=" + m_mediaSize);
return m_mediaSize;
} // getMediaSizeDefault
/**
* Get Units Int
* @return units
*/
public int getUnitsInt()
{
String du = getDimensionUnits();
if (du == null || DIMENSIONUNITS_MM.equals(du))
return Size2DSyntax.MM;
else
return Size2DSyntax.INCH;
} // getUnits
/**
* Get CPaper
* @return CPaper
*/
public CPaper getCPaper()
{
CPaper retValue = new CPaper (getMediaSize(), isLandscape(),
getMarginLeft(), getMarginTop(), getMarginRight(), getMarginBottom());
return retValue;
} // getCPaper
/**
* Media Size Name
*/
class CMediaSizeName extends MediaSizeName
{
public CMediaSizeName(int code)
{
super (code);
} // CMediaSizeName
/**
* Get String Table
* @return string
*/
public String[] getStringTable ()
{
return super.getStringTable ();
}
/**
* Get Enum Value Table
* @return Media Sizes
*/
public EnumSyntax[] getEnumValueTable ()
{
return super.getEnumValueTable ();
}
} // CMediaSizeName
/**************************************************************************
* Test
* @param args args
*/
public static void main(String[] args)
{
org.compiere.Compiere.startupEnvironment(true);
// create ("Standard Landscape", true);
// create ("Standard Portrait", false);
// Read All Papers
int[] IDs = PO.getAllIDs ("AD_PrintPaper", null, null);
for (int i = 0; i < IDs.length; i++)
{
System.out.println("--");
MPrintPaper pp = new MPrintPaper(Env.getCtx(), IDs[i], null);
pp.dump();
}
}
} // MPrintPaper
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -