- java.lang.Object
-
- com.lowagie.text.Document
-
- All Implemented Interfaces:
DocListener,ElementListener,AutoCloseable,EventListener
- Direct Known Subclasses:
PdfDocument
public class Document extends Object implements DocListener
A generic Document class.All kinds of Text-elements can be added to a
HTMLDocument. TheDocumentsignals all the listeners when an element has been added.Remark:
- Once a document is created you can add some meta information.
- You can also set the headers/footers.
- You have to open the document before you can write content.
- You can only write content (no more meta-formation!) once a document is opened.
- When you change the header/footer on a certain page, this will be effective starting on the next page.
- After closing the document, every listener (as well as its
OutputStream) is closed too.
// creation of the document with a certain size and certain margins Document document = new Document(PageSize.A4, 50, 50, 50, 50); try { // creation of the different writers HtmlWriter.getInstance(document , System.out); PdfWriter.getInstance(document , new FileOutputStream("text.pdf")); // we add some meta information to the document document.addAuthor("Bruno Lowagie"); document.addSubject("This is the result of a Test."); // we open the document for writing document.open(); document.add(new Paragraph("Hello world")); } catch(DocumentException de) { System.err.println(de.getMessage()); } document.close();
-
-
Field Summary
Fields Modifier and Type Field Description protected intchapternumberThis is a chapter number in case ChapterAutoNumber is used.protected booleancloseHas the document already been closed?static booleancompressAllows the pdf documents to be produced without compression for debugging purposes.protected HeaderFooterfooterThis is the textual part of the footerprotected HeaderFooterheaderThis is the textual part of a Page; it can contain a headerprotected StringhtmlStyleClassStyle class in HTML body tagprotected StringjavaScript_onLoadContent of JavaScript onLoad functionprotected StringjavaScript_onUnLoadContent of JavaScript onUnLoad functionprotected floatmarginBottommargin in y direction starting from the bottomprotected floatmarginLeftmargin in x direction starting from the leftprotected booleanmarginMirroringmirroring of the left/right marginsprotected booleanmarginMirroringTopBottommirroring of the top/bottom marginsprotected floatmarginRightmargin in x direction starting from the rightprotected floatmarginTopmargin in y direction starting from the topprotected booleanopenIs the document open or not?protected intpageNCurrent pagenumberprotected RectanglepageSizeThe size of the page.static booleanplainRandomAccessWhen true the file access is not done through a memory mapped file.static floatwmfFontCorrectionScales the WMF font size.
-
Constructor Summary
Constructors Constructor Description Document()Constructs a newDocument-object with the default page size asPageSize.A4.Document(Rectangle pageSize)Constructs a newDocument-object using the given rectangle as page size and default margin of 36.Document(Rectangle pageSize, float marginLeft, float marginRight, float marginTop, float marginBottom)Constructs a newDocument-object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(Element element)Adds anElementto theDocument.booleanaddAuthor(String author)Adds the author to a Document.booleanaddCreationDate()Adds the current date and time to a Document.booleanaddCreationDate(PdfDate date)Adds the current date and time to a Document.booleanaddCreator(String creator)Adds the creator to a Document.voidaddDocListener(DocListener listener)Adds aDocListenerto theDocument.booleanaddHeader(String name, String content)Adds a user defined header to the document.booleanaddKeywords(String keywords)Adds the keywords to a Document.booleanaddModificationDate()Adds the current date and time to a Document.booleanaddModificationDate(PdfDate date)Adds the current date and time to a Document.booleanaddProducer()Adds the producer to a Document.booleanaddProducer(String producer)Adds the provided value as the producer to a Document.booleanaddSubject(String subject)Adds the subject to a Document.booleanaddTitle(String title)Adds the title to a Document.floatbottom()Returns the lower left y-coordinate.floatbottom(float margin)Returns the lower left y-coordinate, considering a given margin.floatbottomMargin()Returns the bottom margin.voidclose()Closes the document.StringgetDocumentLanguage()The default language of the document.StringgetHtmlStyleClass()Gets the style class of the HTML body tagStringgetJavaScript_onLoad()Gets the JavaScript onLoad command.StringgetJavaScript_onUnLoad()Gets the JavaScript onUnLoad command.intgetPageNumber()Returns the current page number.RectanglegetPageSize()Gets the pagesize.static StringgetProduct()Gets the product name.static StringgetRelease()Gets the release number.TextRenderingOptionsgetTextRenderingOptions()Gets the text rendering options.static StringgetVersion()Gets the iText version.booleanisGlyphSubstitutionEnabled()Returns the glyph substitution enabled flag.booleanisMarginMirroring()Gets the margin mirroring flag.booleanisOpen()Checks if the document is open.floatleft()Returns the lower left x-coordinate.floatleft(float margin)Returns the lower left x-coordinate considering a given margin.floatleftMargin()Returns the left margin.booleannewPage()Signals to all listeners, that a new page has to be started.voidopen()Opens the document.voidremoveDocListener(DocListener listener)Removes aDocListenerfrom theDocument.voidresetFooter()Resets the footer of this document.voidresetHeader()Resets the header of this document.voidresetPageCount()Sets the page number to 0.floatright()Returns the upper right x-coordinate.floatright(float margin)Returns the upper right x-coordinate, considering a given margin.floatrightMargin()Return the right margin.voidsetDocumentLanguage(String documentLanguage)The new document language.voidsetFooter(HeaderFooter footer)Changes the footer of this document.voidsetGlyphSubstitutionEnabled(boolean glyphSubstitutionEnabled)Set a flag that determine whether glyph substion is enabled when FOP is available.voidsetHeader(HeaderFooter header)Changes the header of this document.voidsetHtmlStyleClass(String htmlStyleClass)Adds a style class to the HTML body tagvoidsetJavaScript_onLoad(String code)Adds a JavaScript onLoad function to the HTML body tagvoidsetJavaScript_onUnLoad(String code)Adds a JavaScript onUnLoad function to the HTML body tagbooleansetMarginMirroring(boolean marginMirroring)Set the margin mirroring.booleansetMarginMirroringTopBottom(boolean marginMirroringTopBottom)Set the margin mirroring.booleansetMargins(float marginLeft, float marginRight, float marginTop, float marginBottom)Sets the margins.voidsetPageCount(int pageN)Sets the page number.booleansetPageSize(Rectangle pageSize)Sets the pagesize.voidsetTextRenderingOptions(TextRenderingOptions textRenderingOptions)Sets the text rendering options.floattop()Returns the upper right y-coordinate.floattop(float margin)Returns the upper right y-coordinate, considering a given margin.floattopMargin()Returns the top margin.
-
-
-
Field Detail
-
compress
public static boolean compress
Allows the pdf documents to be produced without compression for debugging purposes.
-
plainRandomAccess
public static boolean plainRandomAccess
When true the file access is not done through a memory mapped file. Use it if the file is too big to be mapped in your address space.
-
wmfFontCorrection
public static float wmfFontCorrection
Scales the WMF font size. The default value is 0.86.
-
open
protected boolean open
Is the document open or not?
-
close
protected boolean close
Has the document already been closed?
-
pageSize
protected Rectangle pageSize
The size of the page.
-
marginLeft
protected float marginLeft
margin in x direction starting from the left
-
marginRight
protected float marginRight
margin in x direction starting from the right
-
marginTop
protected float marginTop
margin in y direction starting from the top
-
marginBottom
protected float marginBottom
margin in y direction starting from the bottom
-
marginMirroring
protected boolean marginMirroring
mirroring of the left/right margins
-
marginMirroringTopBottom
protected boolean marginMirroringTopBottom
mirroring of the top/bottom margins- Since:
- 2.1.6
-
javaScript_onLoad
protected String javaScript_onLoad
Content of JavaScript onLoad function
-
javaScript_onUnLoad
protected String javaScript_onUnLoad
Content of JavaScript onUnLoad function
-
htmlStyleClass
protected String htmlStyleClass
Style class in HTML body tag
-
pageN
protected int pageN
Current pagenumber
-
header
protected HeaderFooter header
This is the textual part of a Page; it can contain a header
-
footer
protected HeaderFooter footer
This is the textual part of the footer
-
chapternumber
protected int chapternumber
This is a chapter number in case ChapterAutoNumber is used.
-
-
Constructor Detail
-
Document
public Document()
Constructs a newDocument-object with the default page size asPageSize.A4.
-
Document
public Document(Rectangle pageSize)
Constructs a newDocument-object using the given rectangle as page size and default margin of 36.- Parameters:
pageSize- the pageSize
-
Document
public Document(Rectangle pageSize, float marginLeft, float marginRight, float marginTop, float marginBottom)
Constructs a newDocument-object.- Parameters:
pageSize- the pageSizemarginLeft- the margin on the leftmarginRight- the margin on the rightmarginTop- the margin on the topmarginBottom- the margin on the bottom
-
-
Method Detail
-
getProduct
public static String getProduct()
Gets the product name.- Returns:
- the product name
- Since:
- 2.1.6
-
getRelease
public static String getRelease()
Gets the release number.- Returns:
- the product name
- Since:
- 2.1.6
-
getVersion
public static String getVersion()
Gets the iText version.- Returns:
- iText version
-
addDocListener
public void addDocListener(DocListener listener)
Adds aDocListenerto theDocument.- Parameters:
listener- the new DocListener.
-
removeDocListener
public void removeDocListener(DocListener listener)
Removes aDocListenerfrom theDocument.- Parameters:
listener- the DocListener that has to be removed.
-
add
public boolean add(Element element) throws DocumentException
Adds anElementto theDocument.- Specified by:
addin interfaceElementListener- Parameters:
element- theElementto add- Returns:
trueif the element was added,falseif not- Throws:
DocumentException- when a document isn't open yet, or has been closed
-
open
public void open()
Opens the document.Once the document is opened, you can't write any meta-information anymore. If you change the header/footer after opening the document, the change will be effective starting from the second page. You have to open the document before you can begin to add content to the body of the document.
- Specified by:
openin interfaceDocListener
-
setPageSize
public boolean setPageSize(Rectangle pageSize)
Sets the pagesize.This change will be effective starting from the next page. If you want to change the page size of the first page, you need to set it before opening the document.
- Specified by:
setPageSizein interfaceDocListener- Parameters:
pageSize- the new pagesize- Returns:
- a
boolean
-
setMargins
public boolean setMargins(float marginLeft, float marginRight, float marginTop, float marginBottom)Sets the margins.This change will be effective starting from the next page. If you want to change margins on the first page, you need to set it before opening the document.
- Specified by:
setMarginsin interfaceDocListener- Parameters:
marginLeft- the margin on the leftmarginRight- the margin on the rightmarginTop- the margin on the topmarginBottom- the margin on the bottom- Returns:
- a
boolean
-
newPage
public boolean newPage()
Signals to all listeners, that a new page has to be started. New pages can only be added on already opened and not yet closed documents.- Specified by:
newPagein interfaceDocListener- Returns:
trueif the page was added,falseif not.
-
setHeader
public void setHeader(HeaderFooter header)
Changes the header of this document.This change will be effective starting from the next page. If you want to have a header on the first page, you need to set it before opening the document.
- Specified by:
setHeaderin interfaceDocListener- Parameters:
header- the new header
-
resetHeader
public void resetHeader()
Resets the header of this document.This change will be effective starting from the next page.
- Specified by:
resetHeaderin interfaceDocListener
-
setFooter
public void setFooter(HeaderFooter footer)
Changes the footer of this document.This change will be effective starting from the next page. If you want to have a footer on the first page, you need to set it before opening the document.
- Specified by:
setFooterin interfaceDocListener- Parameters:
footer- the new footer
-
resetFooter
public void resetFooter()
Resets the footer of this document.This change will be effective starting from the next page.
- Specified by:
resetFooterin interfaceDocListener
-
resetPageCount
public void resetPageCount()
Sets the page number to 0.This change will be effective starting from the next page.
- Specified by:
resetPageCountin interfaceDocListener
-
setPageCount
public void setPageCount(int pageN)
Sets the page number.This change will be effective starting from the next page.
The page number of the next new page will be:
pageN + 1- Specified by:
setPageCountin interfaceDocListener- Parameters:
pageN- the new page number
-
getPageNumber
public int getPageNumber()
Returns the current page number.- Returns:
- the current page number
-
close
public void close()
Closes the document.Once all the content has been written in the body, you have to close the body. After that nothing can be written to the body anymore.
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceDocListener
-
addHeader
public boolean addHeader(String name, String content)
Adds a user defined header to the document. Shortcut method to call:add(new Header(name, content))- Parameters:
name- the name of the headercontent- the content of the header- Returns:
trueif successful,falseotherwise
-
addTitle
public boolean addTitle(String title)
Adds the title to a Document. In case of a PDF this will be visible in the document properties panel. In case of a HTML file this will be visible as thetitlemetatag in theHEADpart of the file. Shortcut method to call:add(new Meta(Element.TITLE, title))- Parameters:
title- the title- Returns:
trueif successful,falseotherwise
-
addSubject
public boolean addSubject(String subject)
Adds the subject to a Document. In case of a PDF this will be visible in the document properties panel. In case of a HTML file this will be visible as thesubjectmetatag in theHEADpart of the file.- Parameters:
subject- the subject- Returns:
trueif successful,falseotherwise
-
addKeywords
public boolean addKeywords(String keywords)
Adds the keywords to a Document. In case of a PDF this will be visible in the document properties panel. In case of a HTML file this will be visible as thekeywordsmetatag in theHEADpart of the file.- Parameters:
keywords- adds the keywords to the document- Returns:
trueif successful,falseotherwise
-
addAuthor
public boolean addAuthor(String author)
Adds the author to a Document. In case of a PDF this will be visible in the document properties panel. In case of a HTML file this will be visible as theauthormetatag in theHEADpart of the file.- Parameters:
author- the name of the author- Returns:
trueif successful,falseotherwise
-
addCreator
public boolean addCreator(String creator)
Adds the creator to a Document. In case of a PDF this will be visible in the document properties panel. In case of a HTML file this will be visible as comment in theHEADpart of the file.- Parameters:
creator- the name of the creator- Returns:
trueif successful,falseotherwise
-
addProducer
public boolean addProducer()
Adds the producer to a Document. In case of a PDF this will be visible in the document properties panel. In case of a HTML file this will be visible as comment in theHEADpart of the file.- Returns:
trueif successful,falseotherwise
-
addProducer
public boolean addProducer(String producer)
Adds the provided value as the producer to a Document. The default producer isOpenPDF XX.YY.ZZwhereXX.YY.ZZis the version of the OpenPDF library used to produce the document In case of a PDF this will be visible in the document properties panel. In case of a HTML file this will be visible as comment in theHEADpart of the file.- Parameters:
producer- new producer line value- Returns:
trueif successful,falseotherwise
-
addCreationDate
public boolean addCreationDate()
Adds the current date and time to a Document. In case of a PDF this will be visible in the document properties panel. In case of a HTML file this will be visible as comment in theHEADpart of the file.- Returns:
trueif successful,falseotherwise
-
addCreationDate
public boolean addCreationDate(PdfDate date)
Adds the current date and time to a Document.- Returns:
trueif successful,falseotherwise
-
addModificationDate
public boolean addModificationDate()
Adds the current date and time to a Document.- Returns:
trueif successful,falseotherwise
-
addModificationDate
public boolean addModificationDate(PdfDate date)
Adds the current date and time to a Document.- Returns:
trueif successful,falseotherwise
-
leftMargin
public float leftMargin()
Returns the left margin.- Returns:
- the left margin
-
rightMargin
public float rightMargin()
Return the right margin.- Returns:
- the right margin
-
topMargin
public float topMargin()
Returns the top margin.- Returns:
- the top margin
-
bottomMargin
public float bottomMargin()
Returns the bottom margin.- Returns:
- the bottom margin
-
left
public float left()
Returns the lower left x-coordinate.- Returns:
- the lower left x-coordinate
-
right
public float right()
Returns the upper right x-coordinate.- Returns:
- the upper right x-coordinate
-
top
public float top()
Returns the upper right y-coordinate.- Returns:
- the upper right y-coordinate
-
bottom
public float bottom()
Returns the lower left y-coordinate.- Returns:
- the lower left y-coordinate
-
left
public float left(float margin)
Returns the lower left x-coordinate considering a given margin.- Parameters:
margin- a margin- Returns:
- the lower left x-coordinate
-
right
public float right(float margin)
Returns the upper right x-coordinate, considering a given margin.- Parameters:
margin- a margin- Returns:
- the upper right x-coordinate
-
top
public float top(float margin)
Returns the upper right y-coordinate, considering a given margin.- Parameters:
margin- a margin- Returns:
- the upper right y-coordinate
-
bottom
public float bottom(float margin)
Returns the lower left y-coordinate, considering a given margin.- Parameters:
margin- a margin- Returns:
- the lower left y-coordinate
-
getPageSize
public Rectangle getPageSize()
Gets the pagesize.- Returns:
- the page size
-
isOpen
public boolean isOpen()
Checks if the document is open.- Returns:
trueif the document is open
-
getJavaScript_onLoad
public String getJavaScript_onLoad()
Gets the JavaScript onLoad command.- Returns:
- the JavaScript onLoad command
-
setJavaScript_onLoad
public void setJavaScript_onLoad(String code)
Adds a JavaScript onLoad function to the HTML body tag- Parameters:
code- the JavaScript code to be executed on load of the HTML page
-
getJavaScript_onUnLoad
public String getJavaScript_onUnLoad()
Gets the JavaScript onUnLoad command.- Returns:
- the JavaScript onUnLoad command
-
setJavaScript_onUnLoad
public void setJavaScript_onUnLoad(String code)
Adds a JavaScript onUnLoad function to the HTML body tag- Parameters:
code- the JavaScript code to be executed on unload of the HTML page
-
getHtmlStyleClass
public String getHtmlStyleClass()
Gets the style class of the HTML body tag- Returns:
- the style class of the HTML body tag
-
setHtmlStyleClass
public void setHtmlStyleClass(String htmlStyleClass)
Adds a style class to the HTML body tag- Parameters:
htmlStyleClass- the style class for the HTML body tag
-
setMarginMirroring
public boolean setMarginMirroring(boolean marginMirroring)
Set the margin mirroring. It will mirror right/left margins for odd/even pages.Note: it will not work with
Table.- Specified by:
setMarginMirroringin interfaceDocListener- Parameters:
marginMirroring-trueto mirror the margins- Returns:
- always
true
-
setMarginMirroringTopBottom
public boolean setMarginMirroringTopBottom(boolean marginMirroringTopBottom)
Set the margin mirroring. It will mirror top/bottom margins for odd/even pages.Note: it will not work with
Table.- Specified by:
setMarginMirroringTopBottomin interfaceDocListener- Parameters:
marginMirroringTopBottom-trueto mirror the margins- Returns:
- always
true - Since:
- 2.1.6
-
isMarginMirroring
public boolean isMarginMirroring()
Gets the margin mirroring flag.- Returns:
- the margin mirroring flag
-
getDocumentLanguage
public String getDocumentLanguage()
The default language of the document. Can be set to values like "en_US". This language is used in FopGlyphProcessor to determine which glyphs are to be substituted. The default "dflt" means that all glyphs which can be replaced will be substituted.- Returns:
- the current document language
-
setDocumentLanguage
public void setDocumentLanguage(String documentLanguage)
The new document language. This language is used in FopGlyphProcessor to determine which glyphs are to be substituted. The default "dflt" means that all glyphs which can be replaced will be substituted.- Parameters:
documentLanguage- the wanted language
-
isGlyphSubstitutionEnabled
public boolean isGlyphSubstitutionEnabled()
Returns the glyph substitution enabled flag.- Returns:
- the glyph substitution enabled flag
- See Also:
setGlyphSubstitutionEnabled(boolean)
-
setGlyphSubstitutionEnabled
public void setGlyphSubstitutionEnabled(boolean glyphSubstitutionEnabled)
Set a flag that determine whether glyph substion is enabled when FOP is available.- Parameters:
glyphSubstitutionEnabled- the glyph substitution enabled flag- See Also:
FopGlyphProcessor,setDocumentLanguage(String)
-
getTextRenderingOptions
public TextRenderingOptions getTextRenderingOptions()
Gets the text rendering options.- Returns:
- the text rendering options
- See Also:
getDocumentLanguage(),isGlyphSubstitutionEnabled()
-
setTextRenderingOptions
public void setTextRenderingOptions(TextRenderingOptions textRenderingOptions)
Sets the text rendering options.- Parameters:
textRenderingOptions- the text rendering options- See Also:
setDocumentLanguage(String),setGlyphSubstitutionEnabled(boolean)
-
-