Module java.desktop

Class MinimalHTMLWriter

java.lang.Object
javax.swing.text.AbstractWriter
javax.swing.text.html.MinimalHTMLWriter

public class MinimalHTMLWriter extends AbstractWriter
MinimalHTMLWriter是HTMLEditorKit使用的回退写入器,用于为非EditorKit生成的文档编写HTML。文档的格式为:
 <html>
   <head>
     <style>
        <!-- 命名样式列表
         p.normal {
            font-family: SansSerif;
            margin-height: 0;
            font-size: 14
         }
        -->
      </style>
   </head>
   <body>
    <p style=normal>
        粗体、斜体和下划线属性
        的运行被作为HTML标签发出。
        其余属性作为<span>标签的style属性的一部分发出。
        语法类似于内联样式。
    </p>
   </body>
 </html>
 
  • Constructor Details

    • MinimalHTMLWriter

      public MinimalHTMLWriter(Writer w, StyledDocument doc)
      创建一个新的MinimalHTMLWriter。
      参数:
      w - Writer
      doc - StyledDocument
    • MinimalHTMLWriter

      public MinimalHTMLWriter(Writer w, StyledDocument doc, int pos, int len)
      创建一个新的MinimalHTMLWriter。
      参数:
      w - Writer
      doc - StyledDocument
      pos - 要获取内容的文档位置。
      len - 要写出的数量。
  • Method Details

    • write

      public void write() throws IOException, BadLocationException
      从StyledDocument生成HTML输出。
      指定者:
      write 在类 AbstractWriter
      抛出:
      IOException - 任何I/O错误
      BadLocationException - 如果pos表示文档中的无效位置。
    • writeAttributes

      protected void writeAttributes(AttributeSet attr) throws IOException
      写出以下类型的所有属性:StyleConstants.ParagraphConstants,StyleConstants.CharacterConstants,StyleConstants.FontConstants,StyleConstants.ColorConstants。属性名和值由冒号分隔。每对由分号分隔。
      覆盖:
      writeAttributes 在类 AbstractWriter
      参数:
      attr - 一个属性集。
      抛出:
      IOException - 任何I/O错误
    • text

      protected void text(Element elem) throws IOException, BadLocationException
      写出文本。
      覆盖:
      text 在类 AbstractWriter
      参数:
      elem - 一个元素。
      抛出:
      IOException - 任何I/O错误
      BadLocationException - 如果pos表示文档中的无效位置。
    • writeStartTag

      protected void writeStartTag(String tag) throws IOException
      适当缩进地写出开始标记。还会增加缩进级别。
      参数:
      tag - 一个开始标记。
      抛出:
      IOException - 任何I/O错误
    • writeEndTag

      protected void writeEndTag(String endTag) throws IOException
      适当缩进地写出结束标记。还会减少缩进级别。
      参数:
      endTag - 一个结束标记。
      抛出:
      IOException - 任何I/O错误
    • writeHeader

      protected void writeHeader() throws IOException
      写出<head>和<style>标签,然后调用writeStyles()将所有命名样式写出为<style>标签的内容。内容被包围在有效的HTML注释标记中,以确保文档在不支持该标签的应用程序/浏览器中可查看。
      抛出:
      IOException - 任何I/O错误
    • writeStyles

      protected void writeStyles() throws IOException
      将所有命名样式写出为<style>标签的内容。
      抛出:
      IOException - 任何I/O错误
    • writeBody

      protected void writeBody() throws IOException, BadLocationException
      遍历文档中的元素,并根据它们是分支元素还是叶子元素来处理元素。此方法特别处理文本的叶子元素。
      抛出:
      IOException - 任何I/O错误
      BadLocationException - 如果我们在文档中的无效位置。
    • writeEndParagraph

      protected void writeEndParagraph() throws IOException
      发出<p>标签的结束标记。在写出标记之前,此方法确保所有其他已打开的标记都适当关闭。
      抛出:
      IOException - 任何I/O错误
    • writeStartParagraph

      protected void writeStartParagraph(Element elem) throws IOException
      发出段落的开始标记。如果段落与命名样式关联,则此方法还为<p>标签生成一个class属性,并将其值设置为样式的名称。
      参数:
      elem - 一个元素
      抛出:
      IOException - 任何I/O错误
    • writeLeaf

      protected void writeLeaf(Element elem) throws IOException
      负责写出其他非文本叶子元素。
      参数:
      elem - 一个元素
      抛出:
      IOException - 任何I/O错误
    • writeImage

      protected void writeImage(Element elem) throws IOException
      负责处理图标元素;故意未实现。如何实现此方法是一项政策问题。例如,如果要生成<img>标签,应该如何表示src属性(图像的位置)?在某些情况下,它可以是URL,在其他情况下,它可以从流中读取。
      参数:
      elem - 一个StyleConstants.IconElementName类型的元素
      抛出:
      IOException - 如果发生I/O错误
    • writeComponent

      protected void writeComponent(Element elem) throws IOException
      负责处理组件元素;故意未实现。如何实现此方法是一项政策问题。
      参数:
      elem - 一个StyleConstants.ComponentElementName类型的元素
      抛出:
      IOException - 如果发生I/O错误
    • isText

      protected boolean isText(Element elem)
      如果元素是文本元素,则返回true。
      参数:
      elem - 一个元素
      返回:
      如果元素是文本元素,则返回true
    • writeContent

      protected void writeContent(Element elem, boolean needsIndenting) throws IOException, BadLocationException
      以符合HTML标准的方式写出属性集。
      参数:
      elem - 一个元素
      needsIndenting - 如果needsIndentingtrue,则将添加缩进
      抛出:
      IOException - 任何I/O错误
      BadLocationException - 如果pos表示文档中的无效位置。
    • writeHTMLTags

      protected void writeHTMLTags(AttributeSet attr) throws IOException
      根据其属性设置生成粗体<b>,斜体<i>和下划线<u>标签的文本。
      参数:
      attr - 一组属性
      抛出:
      IOException - 任何I/O错误
    • writeNonHTMLAttributes

      protected void writeNonHTMLAttributes(AttributeSet attr) throws IOException
      以符合HTML规范的方式写出剩余的字符级属性(除粗体、斜体和下划线之外的属性)。鉴于诸如字体系列和字体大小之类的属性没有直接映射到HTML标签,将生成一个<span>标签,并设置其样式属性,其中包含剩余属性的列表,就像内联样式一样。
      参数:
      attr - 一组属性
      抛出:
      IOException - 在任何I/O错误时
    • inFontTag

      protected boolean inFontTag()
      如果当前位于<font>标签中,则返回true。
      返回:
      true 如果当前位于<font>标签中。
    • endFontTag

      protected void endFontTag() throws IOException
      不再使用此方法,而是将写出<span>。

      为<font>标签写出结束标记。

      抛出:
      IOException - 在任何I/O错误时
    • startFontTag

      protected void startFontTag(String style) throws IOException
      不再使用此方法,而是将写出<span>。

      为<font>标签写出开始标记。因为字体标签不能嵌套,此方法在写出新的开始标记之前关闭任何包含的字体标签。

      参数:
      style - 字体样式
      抛出:
      IOException - 在任何I/O错误时