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.

RtfTemplate.java 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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.render.rtf.rtflib.rtfdoc;
  19. /*
  20. * This file is part of the RTF library of the FOP project, which was originally
  21. * created by Bertrand Delacretaz bdelacretaz@codeconsult.ch and by other
  22. * contributors to the jfor project (www.jfor.org), who agreed to donate jfor to
  23. * the FOP project.
  24. */
  25. import java.io.IOException;
  26. /**
  27. * Singelton of the RTF style template
  28. * This class belongs to the jfor:style-template tag processing.
  29. */
  30. public final class RtfTemplate {
  31. /** Singelton instance */
  32. private static RtfTemplate instance = new RtfTemplate();
  33. private String templateFilePath;
  34. /**
  35. * Constructor.
  36. */
  37. private RtfTemplate() {
  38. }
  39. /**
  40. * Singelton.
  41. *
  42. * @return The instance of RtfTemplate
  43. */
  44. public static RtfTemplate getInstance() {
  45. return instance;
  46. }
  47. /**
  48. * Set the template file and adjust tha path separator
  49. * @param templateFilePath The full path of the template
  50. * @throws IOException for I/O problems
  51. **/
  52. public void setTemplateFilePath(String templateFilePath) throws IOException {
  53. // no validity checks here - leave this to the RTF client
  54. if (templateFilePath == null) {
  55. this.templateFilePath = null;
  56. } else {
  57. this.templateFilePath = templateFilePath.trim();
  58. }
  59. }
  60. /**
  61. * Write the rtf template
  62. * @param header Rtf header is the parent
  63. * @throws IOException On write error
  64. */
  65. public void writeTemplate(RtfHeader header) throws IOException {
  66. if (templateFilePath == null || templateFilePath.length() == 0) {
  67. return;
  68. }
  69. header.writeGroupMark(true);
  70. header.writeControlWord("template");
  71. header.writeRtfString(this.templateFilePath);
  72. header.writeGroupMark(false);
  73. header.writeGroupMark(true);
  74. header.writeControlWord("linkstyles");
  75. header.writeGroupMark(false);
  76. }
  77. }