You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

PSTextPainterTestCase.java 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one or more
  3. * contributor license agreements. See the NOTICE file distributed with
  4. * this work for additional information regarding copyright ownership.
  5. * The ASF licenses this file to You under the Apache License, Version 2.0
  6. * (the "License"); you may not use this file except in compliance with
  7. * the License. You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. /* $Id$ */
  18. package org.apache.fop.svg;
  19. import java.awt.Graphics2D;
  20. import java.io.IOException;
  21. import org.junit.Test;
  22. import org.apache.commons.io.output.NullOutputStream;
  23. import org.apache.batik.bridge.TextPainter;
  24. import org.apache.xmlgraphics.java2d.GraphicContext;
  25. import org.apache.xmlgraphics.java2d.ps.PSGraphics2D;
  26. import org.apache.xmlgraphics.ps.PSGenerator;
  27. import org.apache.fop.fonts.FontInfo;
  28. import org.apache.fop.render.ps.PSTextPainter;
  29. public class PSTextPainterTestCase extends NativeTextPainterTest {
  30. private static class OperatorCheckingPSGraphics2D extends PSGraphics2D {
  31. OperatorCheckingPSGraphics2D(FontInfo fontInfo, final OperatorValidator validator) {
  32. super(false, new PSGenerator(new NullOutputStream()) {
  33. @Override
  34. public void writeln(String cmd) throws IOException {
  35. validator.check(cmd);
  36. }
  37. });
  38. }
  39. }
  40. @Override
  41. protected TextPainter createTextPainter(FontInfo fontInfo) {
  42. return new PSTextPainter(fontInfo);
  43. }
  44. @Override
  45. protected Graphics2D createGraphics2D(FontInfo fontInfo, OperatorValidator validator) {
  46. PSGraphics2D g2d = new OperatorCheckingPSGraphics2D(fontInfo, validator);
  47. g2d.setGraphicContext(new GraphicContext());
  48. return g2d;
  49. }
  50. @Test
  51. public void testRotatedGlyph() throws Exception {
  52. runTest("rotated-glyph.svg", new OperatorValidator()
  53. .addOperatorMatch("Tm", "1 0 0 -1 40 110 Tm")
  54. .addOperatorMatch("xshow", "(A)\n[0] xshow")
  55. .addOperatorMatch("Tm", "0.70711 0.70711 0.70711 -0.70711 106.7 110 Tm")
  56. .addOperatorMatch("xshow", "(B)\n[0] xshow")
  57. .addOperatorMatch("Tm", "1 0 0 -1 173.39999 110 Tm")
  58. .addOperatorMatch("xshow", "(C)\n[0] xshow"));
  59. }
  60. }