⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svgimagemanipulator.java

📁 一个免费的CA,基于EJB平台的,老师叫我们测试,现把之共享出来让大家参考
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	  			hardtokensn, hardtokensnwithoutprefix,				copyoftokensn, copyoftokensnwithoutprefix,				startdate, enddate, clone);      process( "svg:text", userdata, dnfields, pincodes, pukcodes,	  			hardtokensn, hardtokensnwithoutprefix,				copyoftokensn, copyoftokensnwithoutprefix,				startdate, enddate, clone);                             // Add Image      /**      if(userdata.hasimage()){        addImage(userdata);             }        */	  insertImage(userdata, clone); // special dravel for demo      PrintTranscoder t = new PrintTranscoder();	  TranscoderInput input = new TranscoderInput(clone);	  TranscoderOutput output = new TranscoderOutput(new ByteArrayOutputStream());	  t.transcode(input, output);	  {		  final String aDoNot = clone.getRootElement().getAttribute("doNotScaleToPage");		  t.addTranscodingHint( PrintTranscoder.KEY_SCALE_TO_PAGE,		                        new Boolean(aDoNot==null||aDoNot.trim().length()<=0) );	  }      return t;    }    private void process(String tagName, UserDataVO userdata,    		DNFieldExtractor dnfields, String[] pincodes, String[] pukcodes,    		String hardtokensn, String hardtokensnwithoutprefix,    		String copyoftokensn, String copyoftokensnwithoutprefix,    		String startdate, String enddate, SVGDocument clone){    	Collection texts = new ArrayList();    	NodeList list = clone.getDocumentElement().getElementsByTagName(tagName);    	int numberofelements = list.getLength();	      	for(int i=0; i<numberofelements; i++){    		Node node = list.item(i);		      		if(node instanceof SVGTextElement){	    			NodeList list2 = ((SVGTextElement) node).getChildNodes();    			int numberofelements2 = list2.getLength();    			for(int j=0;j<numberofelements2;j++){		  	      				Node node2 = list2.item(j);			      				if(node2 instanceof GenericText)    					texts.add(node2);			        				if(node2 instanceof SVGOMTSpanElement){    					SVGOMTSpanElement tspan = (SVGOMTSpanElement) node2;    					NodeList list3 = tspan.getChildNodes();    					int numberofelements3 = list3.getLength();    					for(int k=0;k<numberofelements3;k++){    						Node node3 = list3.item(k);    						if(node3 instanceof GenericText)    							texts.add(node3);			        					}    				}		      			}    		}    	}  	  Iterator iter = texts.iterator();	  String data = "";	  while(iter.hasNext()){	  	GenericText text = (GenericText) iter.next(); 	  	data = text.getData();	  	data = processString(data, userdata, dnfields, pincodes, pukcodes,	  			hardtokensn, hardtokensnwithoutprefix,				copyoftokensn, copyoftokensnwithoutprefix,				startdate, enddate);			  	  	text.setData(data);	  }    }        private String processString(String text, UserDataVO userdata, DNFieldExtractor dnfields,                                 String[] pincodes, String[] pukcodes,                                  String hardtokensn, String hardtokensnwithoutprefix,                                 String copyoftokensn, String copyoftokensnwithoutprefix,                                 String startdate, String enddate){    	  text = USERNAME.matcher(text).replaceAll(userdata.getUsername());	    	  text = UID.matcher(text).replaceAll(dnfields.getField(DNFieldExtractor.UID, 0));      text = CN.matcher(text).replaceAll(dnfields.getField(DNFieldExtractor.CN, 0));	  text = OU.matcher(text).replaceAll(dnfields.getField(DNFieldExtractor.OU, 0));	  text = O.matcher(text).replaceAll(dnfields.getField(DNFieldExtractor.O, 0));	  text = C.matcher(text).replaceAll(dnfields.getField(DNFieldExtractor.C, 0));	  text = LOCATION.matcher(text).replaceAll(dnfields.getField(DNFieldExtractor.L, 0));	  text = TITLE.matcher(text).replaceAll(dnfields.getField(DNFieldExtractor.T, 0));      text = INITIALS.matcher(text).replaceAll(dnfields.getField(DNFieldExtractor.INITIALS, 0));             text = SN.matcher(text).replaceAll(dnfields.getField(DNFieldExtractor.SN, 0));      text = SURNAME.matcher(text).replaceAll(dnfields.getField(DNFieldExtractor.SURNAME, 0));      text = GIVENNAME.matcher(text).replaceAll(dnfields.getField(DNFieldExtractor.GIVENNAME, 0));	  text = STARTDATE.matcher(text).replaceAll(startdate);				  text = ENDDATE.matcher(text).replaceAll(enddate);        	  text = HARDTOKENSN.matcher(text).replaceAll(hardtokensn);	  text = HARDTOKENSNWITHOUTPREFIX.matcher(text).replaceAll(hardtokensnwithoutprefix);      for(int i=Math.min(PINS.length, pincodes.length)-1; i>=0; i--){      	text = PINS[i].matcher(text).replaceAll(pincodes[i]);      }	  for(int i=Math.min(PUKS.length, pukcodes.length)-1; i>=0; i--){		text = PUKS[i].matcher(text).replaceAll(pukcodes[i]);	  }      //text = CUSTOMTEXTROW1.matcher(text).replaceAll(?);            //text = CUSTOMTEXTROW2.matcher(text).replaceAll(?);      //text = CUSTOMTEXTROW3.matcher(text).replaceAll(?);      //text = CUSTOMTEXTROW4.matcher(text).replaceAll(?);      //text = CUSTOMTEXTROW5.matcher(text).replaceAll(?);      if (StringUtils.isNotEmpty(copyoftokensn) || StringUtils.isNotEmpty(copyoftokensnwithoutprefix)) {          log.debug("copyoftokensn: "+copyoftokensn+" and/or copyoftokensnwithoutprefix: "+copyoftokensnwithoutprefix+" is not used.");                }      //text = COPYOFSN.matcher(text).replaceAll(copyoftokensn);      //text = COPYOFSNWITHOUTPREFIX.matcher(text).replaceAll(copyoftokensnwithoutprefix);      	      return text;	    }    // Private Methods    private void insertImage(UserDataVO userdata, SVGOMDocument clone) throws FileNotFoundException, IOException{    	log.debug(">insertImage("+userdata != null ? userdata.getUsername() : "null"+")");    	int imgx = 0;    	int imgy = 0;    	int imgwidth = 0;    	int imgheight = 0;    	    	String transform = null;    	// Get image info from template    	NodeList list = clone.getDocumentElement().getElementsByTagName("rect");    	int numberofelements = list.getLength();    	for(int i=0; i<numberofelements; i++){    		Node node = list.item(i);		      		if(node instanceof SVGRectElement){    			SVGRectElement rectnode = (SVGRectElement) node;    			if(rectnode.getId().equalsIgnoreCase("USERPICTURE")){    				transform = rectnode.getAttribute("transform");    				imgx = (int) rectnode.getX().getBaseVal().getValue();    				imgy = (int) rectnode.getY().getBaseVal().getValue();                        				imgwidth = (int) rectnode.getWidth().getBaseVal().getValue();    				imgheight = (int) rectnode.getHeight().getBaseVal().getValue();    				    			}    		}    	}      	    	if(imgwidth != 0 && imgheight != 0){    	    		// Special dravel for demo remove    		// BufferedImage image = ImageIO.read(new FileInputStream("c:\\userpicture.jpg"));    		// TODO: get image.    		BufferedImage image = null;    		    		SVGOMImageElement imageelement = new SVGOMImageElement("", clone);    		SimpleImageHandler imagehandler = new SimpleImageHandler(new ImageHandlerBase64Encoder());    		    		SVGGeneratorContext svgcxt = SVGGeneratorContext.createDefault(clone);    		    		imagehandler.handleImage((RenderedImage) image, imageelement,      				imgx, imgy, 					imgwidth, imgheight, 					svgcxt);    		    		if(transform != null && !transform.equals(""))    			imageelement.setAttribute("transform", transform);     		    		clone.getRootElement().appendChild(imageelement);    	}    	    }    // Private Variables    final private SVGOMDocument svgdoc;    final private long validityms;        final private String hardtokensnprefix;        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -