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 18 /* $Id: PDFWritable.java 1228243 2012-01-06 16:03:44Z cbowditch $ */ 19 20 package org.apache.fop.pdf; 21 22 import java.io.IOException; 23 import java.io.OutputStream; 24 25 /** 26 * This interface is implemented by classes that can be serialized to a PDF file either by 27 * serializing the object or by writing a indirect reference to the actual object. 28 */ 29 public interface PDFWritable { 30 31 /** 32 * Writes a "direct object" (inline object) representation to the stream. A text buffer is given 33 * for optimized encoding of text content. 34 * <p> 35 * IMPORTANT: If you need to write out binary output, call 36 * {@link PDFDocument#flushTextBuffer(StringBuilder, OutputStream)} before writing any content 37 * to the {@link OutputStream}! 38 * @param out the OutputStream (for binary content) 39 * @param textBuffer the text buffer for text content 40 * @throws IOException if an I/O error occurs 41 */ outputInline(OutputStream out, StringBuilder textBuffer)42 void outputInline(OutputStream out, StringBuilder textBuffer) throws IOException; 43 44 } 45