📄 printutil.java
字号:
System.out.println("DocFlavor=" + docFlavor + ", Output=" + outputMimeType);
StreamPrintServiceFactory[] spsfactories =
StreamPrintServiceFactory.lookupStreamPrintServiceFactories(docFlavor, outputMimeType);
for (int i = 0; i < spsfactories.length; i++)
{
System.out.println("- " + spsfactories[i]);
DocFlavor dfs[] = spsfactories[i].getSupportedDocFlavors();
for (int j = 0; j < dfs.length; j++)
{
System.out.println(" -> " + dfs[j]);
}
}
} // dump
/**
* Dump Stream Print Services
* @param docFlavor flavor
*/
public static void dump (DocFlavor docFlavor)
{
System.out.println();
System.out.println("DocFlavor=" + docFlavor);
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
PrintService[] pss =
PrintServiceLookup.lookupPrintServices(docFlavor, pras);
for (int i = 0; i < pss.length; i++)
{
PrintService ps = pss[i];
System.out.println("- " + ps);
System.out.println(" Factory=" + ps.getServiceUIFactory());
ServiceUIFactory uiF = pss[i].getServiceUIFactory();
if (uiF != null)
{
System.out.println("about");
JDialog about = (JDialog) uiF.getUI (ServiceUIFactory.ABOUT_UIROLE, ServiceUIFactory.JDIALOG_UI);
about.show();
System.out.println("admin");
JDialog admin = (JDialog) uiF.getUI (ServiceUIFactory.ADMIN_UIROLE, ServiceUIFactory.JDIALOG_UI);
admin.show();
System.out.println("main");
JDialog main = (JDialog) uiF.getUI (ServiceUIFactory.MAIN_UIROLE, ServiceUIFactory.JDIALOG_UI);
main.show();
System.out.println("reserved");
JDialog res = (JDialog) uiF.getUI (ServiceUIFactory.RESERVED_UIROLE, ServiceUIFactory.JDIALOG_UI);
res.show();
}
//
DocFlavor dfs[] = pss[i].getSupportedDocFlavors();
System.out.println(" - Supported Doc Flavors");
for (int j = 0; j < dfs.length; j++)
System.out.println(" -> " + dfs[j]);
//
Class[] attCat = pss[i].getSupportedAttributeCategories();
System.out.println(" - Supported Attribute Categories");
for (int j = 0; j < attCat.length; j++)
System.out.println(" -> " + attCat[j].getName() + " = " + pss[i].getDefaultAttributeValue(attCat[j]));
//
}
} // dump
/*************************************************************************/
/**
* Test Print Services
*/
private static void testPS()
{
PrintService ps = getDefaultPrintService();
ServiceUIFactory factory = ps.getServiceUIFactory();
System.out.println(factory);
if (factory != null)
{
System.out.println("Factory");
JPanel p0 = (JPanel) factory.getUI(ServiceUIFactory.ABOUT_UIROLE, ServiceUIFactory.JDIALOG_UI);
p0.setVisible(true);
JPanel p1 = (JPanel) factory.getUI(ServiceUIFactory.ADMIN_UIROLE, ServiceUIFactory.JDIALOG_UI);
p1.setVisible(true);
JPanel p2 = (JPanel) factory.getUI(ServiceUIFactory.MAIN_UIROLE, ServiceUIFactory.JDIALOG_UI);
p2.setVisible(true);
}
System.out.println("1----------");
PrinterJob pj = PrinterJob.getPrinterJob();
PrintRequestAttributeSet pratts = getDefaultPrintRequestAttributes();
// Page Dialog
PageFormat pf = pj.pageDialog(pratts);
System.out.println("Pratts Size = " + pratts.size());
Attribute[] atts = pratts.toArray();
for (int i = 0; i < atts.length; i++)
System.out.println(atts[i].getName() + " = " + atts[i] + " - " + atts[i].getCategory());
System.out.println("PageFormat h=" + pf.getHeight() + ",w=" + pf.getWidth() + " - x=" + pf.getImageableX() + ",y=" + pf.getImageableY() + " - ih=" + pf.getImageableHeight() + ",iw=" + pf.getImageableWidth()
+ " - Orient=" + pf.getOrientation());
ps = pj.getPrintService();
System.out.println("PrintService = " + ps.getName());
// Print Dialog
System.out.println("2----------");
pj.printDialog(pratts);
System.out.println("Pratts Size = " + pratts.size());
atts = pratts.toArray();
for (int i = 0; i < atts.length; i++)
System.out.println(atts[i].getName() + " = " + atts[i] + " - " + atts[i].getCategory());
pf = pj.defaultPage();
System.out.println("PageFormat h=" + pf.getHeight() + ",w=" + pf.getWidth() + " - x=" + pf.getImageableX() + ",y=" + pf.getImageableY() + " - ih=" + pf.getImageableHeight() + ",iw=" + pf.getImageableWidth()
+ " - Orient=" + pf.getOrientation());
ps = pj.getPrintService();
System.out.println("PrintService= " + ps.getName());
System.out.println("3----------");
try
{
pj.setPrintService(ps);
}
catch (PrinterException pe)
{
System.out.println(pe);
}
pf = pj.validatePage(pf);
System.out.println("PageFormat h=" + pf.getHeight() + ",w=" + pf.getWidth() + " - x=" + pf.getImageableX() + ",y=" + pf.getImageableY() + " - ih=" + pf.getImageableHeight() + ",iw=" + pf.getImageableWidth()
+ " - Orient=" + pf.getOrientation());
ps = pj.getPrintService();
System.out.println("PrintService= " + ps.getName());
System.out.println("4----------");
pj.printDialog();
} // testPS
/**
* Test Stream Print Services
*/
private static void testSPS()
{
// dump (DocFlavor.INPUT_STREAM.GIF, DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType());
// dump (DocFlavor.SERVICE_FORMATTED.PAGEABLE, DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType());
// dump (DocFlavor.INPUT_STREAM.GIF, DocFlavor.BYTE_ARRAY.PDF.getMimeType());
// dump (DocFlavor.SERVICE_FORMATTED.PAGEABLE, DocFlavor.BYTE_ARRAY.GIF.getMediaSubtype());
// dump (DocFlavor.SERVICE_FORMATTED.PAGEABLE, DocFlavor.BYTE_ARRAY.JPEG.getMediaSubtype());
// dump (DocFlavor.SERVICE_FORMATTED.PAGEABLE); // lists devices able to output pageable
// dump (DocFlavor.SERVICE_FORMATTED.PRINTABLE);
// dump (DocFlavor.INPUT_STREAM.TEXT_PLAIN_HOST);
// dump (DocFlavor.INPUT_STREAM.POSTSCRIPT);
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
PrintService[] pss =
PrintServiceLookup.lookupPrintServices(DocFlavor.SERVICE_FORMATTED.PAGEABLE, pras);
for (int i = 0; i < pss.length; i++)
{
PrintService ps = pss[i];
String name = ps.getName();
if (name.indexOf("PDF") != -1 || name.indexOf("Acrobat") != -1)
{
System.out.println("----");
System.out.println(ps);
Class[] cat = ps.getSupportedAttributeCategories();
for (int j = 0; j < cat.length; j++)
{
System.out.println("- " + cat[j]);
}
}
}
// dump (null, DocFlavor.BYTE_ARRAY.PDF.getMimeType()); // lists PDF output
// dump (null, DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMediaType()); // lists PS output
// dump(null, null);
} // testSPS
/*************************************************************************/
/**
* Create Print Form & Print Formats for a new Client.
* - Order, Invoice, etc.
* Called from VSetup
* @param AD_Client_ID new Client
*/
public static void setupPrintForm (int AD_Client_ID)
{
Log.trace(Log.l3_Util, "PrintUtil.createDocuments", "AD_Client_ID=" + AD_Client_ID);
Properties ctx = Env.getCtx();
int traceLevel = Log.getTraceLevel();
Log.setTraceLevel(1);
//
// Order Template
int Order_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 100, AD_Client_ID).getID();
int OrderLine_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 101, AD_Client_ID).getID();
updatePrintFormatHeader(Order_PrintFormat_ID, OrderLine_PrintFormat_ID);
// Invoice
int Invoice_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 102, AD_Client_ID).getID();
int InvoiceLine_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 103, AD_Client_ID).getID();
updatePrintFormatHeader(Invoice_PrintFormat_ID, InvoiceLine_PrintFormat_ID);
// Shipment
int Shipment_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 104, AD_Client_ID).getID();
int ShipmentLine_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 105, AD_Client_ID).getID();
updatePrintFormatHeader(Shipment_PrintFormat_ID, ShipmentLine_PrintFormat_ID);
// Check
int Check_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 106, AD_Client_ID).getID();
int RemittanceLine_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 107, AD_Client_ID).getID();
updatePrintFormatHeader(Check_PrintFormat_ID, RemittanceLine_PrintFormat_ID);
// Remittance
int Remittance_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 108, AD_Client_ID).getID();
updatePrintFormatHeader(Remittance_PrintFormat_ID, RemittanceLine_PrintFormat_ID);
int AD_PrintForm_ID = DB.getKeyNextNo (AD_Client_ID, "N", "AD_PrintForm");
String sql = "INSERT INTO AD_PrintForm(AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_PrintForm_ID,"
+ "Name,Order_PrintFormat_ID,Invoice_PrintFormat_ID,Remittance_PrintFormat_ID,Shipment_PrintFormat_ID)"
//
+ " VALUES (" + AD_Client_ID + ",0,'Y',SysDate,0,SysDate,0," + AD_PrintForm_ID + ","
+ "'" + Msg.translate(ctx, "Standard") + "',"
+ Order_PrintFormat_ID + "," + Invoice_PrintFormat_ID + ","
+ Remittance_PrintFormat_ID + "," + Shipment_PrintFormat_ID + ")";
int no = DB.executeUpdate(sql);
if (no != 1)
Log.error("PrintUtil.createDocuments PrintForm NOT inserted");
//
Log.setTraceLevel(traceLevel);
} // createDocuments
/**
* Update the PrintFormat Header lines with Reference to Child Print Format.
* @param Header_ID AD_PrintFormat_ID for Header
* @param Line_ID AD_PrintFormat_ID for Line
*/
static private void updatePrintFormatHeader (int Header_ID, int Line_ID)
{
StringBuffer sb = new StringBuffer();
sb.append("UPDATE AD_PrintFormatItem SET AD_PrintFormatChild_ID=")
.append(Line_ID)
.append(" WHERE AD_PrintFormatChild_ID IS NOT NULL AND AD_PrintFormat_ID=")
.append(Header_ID);
int no = DB.executeUpdate(sb.toString());
} // updatePrintFormatHeader
/*************************************************************************/
/**
* Test
* @param args arg
*/
public static void main(String[] args)
{
// org.compiere.Compiere.startupClient();
// setupPrintForm (11);
// setupPrintForm (1000000);
// testPS();
testSPS();
// dumpSPS(null, null);
// dumpPS(null);
} // main
} // PrintUtil
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -