亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? svgoutputtest.java

?? 這是個國外JAVA愛好者寫的條形碼生成器
?? JAVA
字號:
/***********************************************************************************************************************
Copyright (c) 2003, International Barcode Consortium
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice, this list of
      conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright notice, this list of
      conditions and the following disclaimer in the documentation and/or other materials
      provided with the distribution.
    * Neither the name of the International Barcode Consortium nor the names of any contributors may be used to endorse
      or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
***********************************************************************************************************************/

package net.sourceforge.barbecue.output;

import net.sourceforge.barbecue.BarcodeTestCase;
import net.sourceforge.barbecue.env.DefaultEnvironment;

import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.font.TextLayout;
import java.awt.font.FontRenderContext;
import java.io.StringWriter;
import java.text.StringCharacterIterator;
import java.text.CharacterIterator;

public class SVGOutputTest extends BarcodeTestCase {
	private SVGOutput output;
	private StringWriter svg;
	private Color fgColour;
	private Color bgColour;
	public static final String HEADER = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
			"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 20001102//EN\" \"http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10.0in\" height=\"10.0in\"";
	public static final String FOOTER = "</svg>";
	private LabelLayout centeredLayout;

	protected void setUp() throws Exception {
		super.setUp();
		svg = new StringWriter();
		fgColour = Color.black;
		bgColour = Color.white;
		output = new SVGOutput(svg, DefaultEnvironment.DEFAULT_FONT, fgColour, bgColour, 1, "in");
		output.beginDraw();
		centeredLayout = LabelLayoutFactory.createCenteredLayout(10, 10, 100);
		centeredLayout.setTextLayout(new TextLayout("FOO", DefaultEnvironment.DEFAULT_FONT, new FontRenderContext(new AffineTransform(0, 0, 0, 0, 0, 0), false, false)));
	}

	public void testBeginDrawWritesSVGHeader() throws Exception {
		output.endDraw(10, 10);
		String expected = HEADER + " />\n";
		assertSVGEquals(expected, svg.toString());
	}

	public void testUnitsAreCorrectInSVG() throws Exception {
		output = new SVGOutput(svg, DefaultEnvironment.DEFAULT_FONT, fgColour, bgColour, 1, "cm");
		output.beginDraw();
		output.endDraw(10, 10);
		assertSVGEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
					 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 20001102//EN\" \"http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10.0cm\" height=\"10.0cm\" />", svg.toString().trim());
	}

	public void testDrawBarOutputsSVGRectangle() throws Exception {
		output.drawBar(10, 10, 1, 50, true);
		output.endDraw(10, 10);
		assertSVGEquals(HEADER + "><rect xmlns=\"\" x=\"10.0in\" y=\"10.0in\" width=\"1.0in\" height=\"50.0in\" style=\"fill:#000000;\" />" + FOOTER, svg.toString().trim());
	}

	public void testDrawBarInBackGroundColourChangesSVGFill() throws Exception {
		output.drawBar(10, 10, 1, 50, false);
		output.endDraw(10, 10);
		assertSVGEquals(HEADER + "><rect xmlns=\"\" x=\"10.0in\" y=\"10.0in\" width=\"1.0in\" height=\"50.0in\" style=\"fill:#FFFFFF;\" />" + FOOTER, svg.toString().trim());
	}

	public void testDrawTextOutputsSVGText() throws Exception {
		output.drawText("FOO", centeredLayout);
		output.endDraw(10, 10);
		assertSVGEquals(HEADER + "><text xmlns=\"\" x=\"10.0in\" y=\"10.0in\" style=\"font-family: Arial; font-size: 20pt; font-style: normal; \">FOO</text>" + FOOTER, svg.toString().trim());
	}

	public void testFontFaceIsReflectedInSVG() throws Exception {
		Font font = new Font("Times New Roman", Font.PLAIN, 20);
		output = new SVGOutput(svg, font, fgColour, bgColour, 1, "in");
		centeredLayout.setTextLayout(new TextLayout("FOO", font, new FontRenderContext(new AffineTransform(0, 0, 0, 0, 0, 0), false, false)));
		output.beginDraw();
		output.drawText("FOO", centeredLayout);
		output.endDraw(10, 10);
		assertSVGEquals(HEADER + "><text xmlns=\"\" x=\"10.0in\" y=\"10.0in\" style=\"font-family: Times New Roman; font-size: 20pt; font-style: normal; \">FOO</text>" + FOOTER, svg.toString());
	}

	public void testBoldFontIsDecoractedCorrectlyInSVG() throws Exception {
		Font font = new Font("Times New Roman", Font.BOLD, 20);
		output = new SVGOutput(svg, font, fgColour, bgColour, 1, "in");
		centeredLayout.setTextLayout(new TextLayout("FOO", font, new FontRenderContext(new AffineTransform(0, 0, 0, 0, 0, 0), false, false)));
		output.beginDraw();
		output.drawText("FOO", centeredLayout);
		output.endDraw(10, 10);
		assertSVGEquals(HEADER + "><text xmlns=\"\" x=\"10.0in\" y=\"10.0in\" style=\"font-family: Times New Roman; font-size: 20pt; font-weight: bold; \">FOO</text>" + FOOTER, svg.toString());
	}
	
	public void testItalicFontIsDecoractedCorrectlyInSVG() throws Exception {
		Font font = new Font("Times New Roman", Font.ITALIC, 20);
		output = new SVGOutput(svg, font, fgColour, bgColour, 1, "in");
		centeredLayout.setTextLayout(new TextLayout("FOO", font, new FontRenderContext(new AffineTransform(0, 0, 0, 0, 0, 0), false, false)));
		output.beginDraw();
		output.drawText("FOO", centeredLayout);
		output.endDraw(10, 10);
		assertSVGEquals(HEADER + "><text xmlns=\"\" x=\"10.0in\" y=\"10.0in\" style=\"font-family: Times New Roman; font-size: 20pt; font-style: italic; \">FOO</text>" + FOOTER, svg.toString());
	}

	public void testUnknownFontDecorationIsShownAsNormalInSVG() throws Exception {
		Font font = new Font("Times New Roman", 99, 20);
		output = new SVGOutput(svg, font, fgColour, bgColour, 1, "in");
		centeredLayout.setTextLayout(new TextLayout("FOO", font, new FontRenderContext(new AffineTransform(0, 0, 0, 0, 0, 0), false, false)));		
		output.beginDraw();
		output.drawText("FOO", centeredLayout);
		output.endDraw(10, 10);
		assertSVGEquals(HEADER + "><text xmlns=\"\" x=\"10.0in\" y=\"10.0in\" style=\"font-family: Times New Roman; font-size: 20pt; font-style: normal; \">FOO</text>" + FOOTER, svg.toString());
	}
    
    public void testDefaultFontInformationUsedIfFontIsNull() throws Exception {
        output = new SVGOutput(svg, null, fgColour, bgColour, 1, "in");
		output.beginDraw();
		output.drawText("FOO", centeredLayout);
		output.endDraw(10, 10);
		assertSVGEquals(HEADER + "><text xmlns=\"\" x=\"10.0in\" y=\"10.0in\" style=\"font-family: Arial; font-size: 20pt; font-style: normal; \">FOO</text>\n</svg>\n", svg.toString());
    }

	private void assertSVGEquals(String s1, String s2) {
		s1 = normalise(s1);
		s2 = normalise(s2);
		assertEquals(s1, s2);
	}

	private String normalise(String s) {
		StringBuffer buf = new StringBuffer();
		StringCharacterIterator iter = new StringCharacterIterator(s);
		for (char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) {
			if (Character.isDefined(c) && !Character.isISOControl(c)) {
				buf.append(c);
			}
		}
		return buf.toString();
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人综合精品三级| 美美哒免费高清在线观看视频一区二区| 亚洲欧美日韩国产另类专区| 午夜av一区二区三区| 不卡电影一区二区三区| 精品国产一区二区亚洲人成毛片| 亚洲精品高清视频在线观看| 成人综合在线视频| 精品免费视频.| 奇米精品一区二区三区四区| 91高清视频在线| 中文字幕亚洲不卡| 成人激情动漫在线观看| 久久久精品日韩欧美| 免费看欧美美女黄的网站| 欧美日韩你懂的| 亚洲一区二区三区影院| 一本一道综合狠狠老| 国产精品理论片在线观看| 秋霞电影网一区二区| 免费一级片91| 日韩欧美不卡一区| 日韩精品一级中文字幕精品视频免费观看 | 成人黄色av电影| 2021国产精品久久精品| 制服丝袜亚洲精品中文字幕| 激情国产一区二区| 欧美午夜一区二区| 亚洲欧美综合在线精品| 成人精品视频网站| 日本一区二区三区在线不卡| 三级欧美在线一区| 综合久久国产九一剧情麻豆| 成人网在线免费视频| 久久亚洲综合av| 国产成人鲁色资源国产91色综 | 亚洲天堂av一区| 9i看片成人免费高清| 亚洲三级小视频| 欧洲精品视频在线观看| 午夜精品久久久久久| 欧美一区二区三区免费在线看| 日韩精品电影在线| 久久影音资源网| 99久久久免费精品国产一区二区| 欧美不卡一二三| 欧美日韩精品欧美日韩精品一综合| 欧美一区三区四区| 免费在线观看一区二区三区| 日韩欧美电影一二三| 国产 欧美在线| 亚洲欧美日韩一区| 欧美一区二区三区视频| 国产米奇在线777精品观看| 国产精品全国免费观看高清| 99久久精品免费看| 免费久久精品视频| 国产日韩欧美a| 欧美日韩精品一区视频| 国内久久精品视频| 亚洲精品欧美激情| 欧美一区二区三级| voyeur盗摄精品| 免费人成精品欧美精品| 亚洲国产岛国毛片在线| 欧美性猛片aaaaaaa做受| 国产九色sp调教91| 亚洲在线观看免费视频| 国产精品黄色在线观看| 丝袜美腿亚洲色图| www日韩大片| 91在线精品一区二区三区| 偷偷要91色婷婷| 欧美激情中文不卡| 日韩手机在线导航| 91麻豆自制传媒国产之光| 久久国产精品色婷婷| 综合自拍亚洲综合图不卡区| 欧美xxxx在线观看| 在线观看亚洲专区| 国产精品99久久久久久久vr| 亚洲bt欧美bt精品777| 中文字幕成人网| 欧美成人一级视频| 制服丝袜中文字幕一区| 在线影视一区二区三区| 国产精品一区免费视频| 日韩精品一二三四| 亚洲第一狼人社区| 自拍偷拍欧美激情| 国产精品久久久久久久午夜片 | 久久99国产精品麻豆| 日韩精品久久理论片| 国产精品成人一区二区艾草| 欧美大片在线观看| 在线播放91灌醉迷j高跟美女| www.欧美日韩| 国产河南妇女毛片精品久久久| 五月天激情综合网| 香蕉加勒比综合久久| 亚洲免费在线视频| 国产精品色婷婷| 久久精品视频一区| 精品国产乱码久久久久久久| 91精品国产91综合久久蜜臀| 欧美日高清视频| 欧美日韩亚洲另类| 欧美日韩在线一区二区| 欧美三级韩国三级日本一级| 欧美伊人久久久久久午夜久久久久| 丰满亚洲少妇av| 成人激情午夜影院| 成人av资源下载| 99久久99精品久久久久久| 国产精品一卡二| 色婷婷av一区二区三区gif| 国产电影一区在线| 久久福利视频一区二区| 激情五月播播久久久精品| 久久精品99国产国产精| 国内精品久久久久影院一蜜桃| 久久91精品久久久久久秒播 | 国产精品污www在线观看| 国产欧美日韩亚州综合| 国产精品国产三级国产| 日韩理论片在线| 亚洲国产日韩a在线播放性色| 一区二区三区四区在线| 午夜精品免费在线| 美女视频黄频大全不卡视频在线播放| 裸体一区二区三区| 国产91精品欧美| 日本道在线观看一区二区| 欧美三级乱人伦电影| 欧美tickling挠脚心丨vk| 久久久国际精品| 亚洲乱码日产精品bd| 日韩成人午夜精品| 国产69精品久久777的优势| 麻豆91在线观看| 91在线码无精品| 欧美做爰猛烈大尺度电影无法无天| 一本久道久久综合中文字幕 | 激情综合色播激情啊| 久久超碰97人人做人人爱| 久久99国产乱子伦精品免费| 成人av一区二区三区| 欧美性高清videossexo| www激情久久| 一区二区三区精品久久久| 人人爽香蕉精品| 91污片在线观看| 欧美电视剧在线看免费| 中文字幕乱码亚洲精品一区| 午夜视频一区二区三区| 粉嫩欧美一区二区三区高清影视| 色999日韩国产欧美一区二区| 精品久久国产字幕高潮| 亚洲精品少妇30p| 国产美女精品人人做人人爽| 欧美三级日本三级少妇99| 国产偷国产偷精品高清尤物| 中文字幕一区二区三| 亚洲高清在线视频| 久久精品噜噜噜成人av农村| av影院午夜一区| 久久综合视频网| 人人精品人人爱| 在线观看中文字幕不卡| 国产精品成人在线观看| 国产酒店精品激情| 欧美成人三级电影在线| 亚洲成人免费在线| 一本大道久久a久久综合| 欧美激情一区二区三区全黄| 蜜臀久久99精品久久久画质超高清 | 国产女人水真多18毛片18精品视频| 伊人婷婷欧美激情| 成人免费va视频| 国产亚洲精品aa| 国产精品一卡二卡| 欧美精品一区二区三区视频| 男男成人高潮片免费网站| 欧美亚洲国产怡红院影院| 日韩一区日韩二区| 91在线观看美女| 国产精品视频免费看| 成人毛片在线观看| 久久久噜噜噜久久中文字幕色伊伊| 免费不卡在线观看| 欧美一区二区三区影视| 丝袜美腿亚洲色图| 欧美另类久久久品| 亚洲成人动漫在线观看| 欧美日韩视频在线一区二区| 亚洲国产另类av| 欧美精品乱码久久久久久| 视频一区在线视频| 精品国产一区二区精华| 国产资源在线一区|