All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.xhtmlrenderer.pdf..ITextRenderer.swp Maven / Gradle / Ivy

Go to download

Flying Saucer is a CSS 2.1 renderer written in Java. This artifact supports PDF output.

There is a newer version: 9.11.4
Show newest version
b0VIM 8.0??2X;&9pbrantpbrant-desktop6~pbrant/git/flyingsaucer/flying-saucer-pdf/src/main/java/org/xhtmlrenderer/pdf/ITextRenderer.javautf-8
3210#"! UtpMdfl?e6o?&
ad?8????t.???j(?
?
?
b
#
??????t]8)
????r[;:?
?
|
M
#
?	?	?	?	?	o	;			???X)???wH
????jiL???ji9?????vWV,+??vA?LK%$??????    public ITextRenderer() {    private boolean _timeouted;	private PDFCreationListener _listener;    private Integer _pdfXConformance;            PdfWriter.VERSION_1_5, PdfWriter.VERSION_1_6, PdfWriter.VERSION_1_7 };    private final char[] validPdfVersions = new char[] { PdfWriter.VERSION_1_2, PdfWriter.VERSION_1_3, PdfWriter.VERSION_1_4,    private Character _pdfVersion;    // use one of the values in PDFWriter.VERSION...    // check for null before calling writer.setPdfVersion()    // may change between iText releases    // note: not hard-coding a default version in the _pdfVersion field as this    private PDFEncryption _pdfEncryption;    private PdfWriter _writer;    private com.lowagie.text.Document _pdfDoc;    private final float _dotsPerPoint;    private BlockBox _root;    private Document _doc;    private final ITextOutputDevice _outputDevice;    private final SharedContext _sharedContext;    private static final int DEFAULT_DOTS_PER_PIXEL = 20;    private static final float DEFAULT_DOTS_PER_POINT = 20f * 4f / 3f;    // the inch    // These two defaults combine to produce an effective resolution of 96 px topublic class ITextRenderer {import com.lowagie.text.pdf.PdfWriter;import com.lowagie.text.DocumentException;import org.xml.sax.InputSource;import org.xhtmlrenderer.util.Configuration;import org.xhtmlrenderer.simple.extend.XhtmlNamespaceHandler;import org.xhtmlrenderer.resource.XMLResource;import org.xhtmlrenderer.render.ViewportBox;import org.xhtmlrenderer.render.RenderingContext;import org.xhtmlrenderer.render.PageBox;import org.xhtmlrenderer.render.BlockBox;import org.xhtmlrenderer.layout.SharedContext;import org.xhtmlrenderer.layout.LayoutContext;import org.xhtmlrenderer.layout.Layer;import org.xhtmlrenderer.layout.BoxBuilder;import org.xhtmlrenderer.extend.UserInterface;import org.xhtmlrenderer.extend.NamespaceHandler;import org.xhtmlrenderer.css.style.CalculatedStyle;import org.xhtmlrenderer.context.StyleReference;import org.w3c.dom.Node;import org.w3c.dom.Element;import org.w3c.dom.Document;import javax.xml.transform.stream.StreamResult;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.TransformerFactory;import javax.xml.transform.TransformerException;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.Transformer;import javax.xml.transform.OutputKeys;import java.util.regex.Pattern;import java.util.List;import java.io.Writer;import java.io.UnsupportedEncodingException;import java.io.StringWriter;import java.io.StringReader;import java.io.OutputStream;import java.io.IOException;import java.io.import java.io.ByteArrayInputStream;import java.awt.Shape;import java.awt.Rectangle;import java.awt.Dimension;package org.xhtmlrenderer.pdf; */ * }}} * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * along with this program; if not, write to the Free Software * You should have received a copy of the GNU Lesser General Public License * * GNU Lesser General Public License for more details. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the * but WITHOUT ANY WARRANTY; without even the implied warranty of * This program is distributed in the hope that it will be useful, * * of the License, or (at your option) any later version. * as published by the Free Software Foundation; either version 2.1 * modify it under the terms of the GNU Lesser General Public License * This program is free software; you can redistribute it and/or * * Copyright (c) 2006 Wisconsin Court System * {{{ header & license/*ad??&?vpo#????????T:0*)?
?
?
?
?

y
x
U
=
7
6

????????}    }        return _timeouted;    public boolean isTimeouted() {    }        _timeouted= timeouted;    public void setTimeouted(boolean timeouted) {    }        return _writer;    public PdfWriter getWriter() {    }        _listener = listener;    public void setListener(PDFCreationListener listener) {    }        return _listener;    public PDFCreationListener getListener() {    }        }            return false;        public boolean isFocus(Element e) {        }            return false;        public boolean isActive(Element e) {        }            return false;        public boolean isHover(Element e) {    private static final class NullUserInterface implements UserInterface {    }        return _outputDevice.findPagePositionsByID(newLayoutContext(), pattern);    public List findPagePositionsByID(Pattern pattern) {ad`M????vY,?????P?
?
?
?
x
\
C

??}Q*???yG?
?
?
`
_
4


?	?	?	G	
		????qpIH????~U???B??????~}`    public ITextRenderer() {    private boolean _timeouted;	private PDFCreationListener _listener;    private Integer _pdfXConformance;            PdfWriter.VERSION_1_5, PdfWriter.VERSION_1_6, PdfWriter.VERSION_1_7 };    private final char[] validPdfVersions = new char[] { PdfWriter.VERSION_1_2, PdfWriter.VERSION_1_3, PdfWriter.VERSION_1_4,    private Character _pdfVersion;    // use one of the values in PDFWriter.VERSION...    // check for null before calling writer.setPdfVersion()    // may change between iText releases    // note: not hard-coding a default version in the _pdfVersion field as this    private PDFEncryption _pdfEncryption;    private PdfWriter _writer;    private com.lowagie.text.Document _pdfDoc;    private final float _dotsPerPoint;    private BlockBox _root;    private Document _doc;    private final ITextOutputDevice _outputDevice;    private final SharedContext _sharedContext;    private static final int DEFAULT_DOTS_PER_PIXEL = 20;    private static final float DEFAULT_DOTS_PER_POINT = 20f * 4f / 3f;    // the inch    // These two defaults combine to produce an effective resolution of 96 px topublic class ITextRenderer {import com.lowagie.text.pdf.PdfWriter;import com.lowagie.text.DocumentException;import org.xml.sax.InputSource;import org.xhtmlrenderer.util.Configuration;import org.xhtmlrenderer.simple.extend.XhtmlNamespaceHandler;import org.xhtmlrenderer.resource.XMLResource;import org.xhtmlrenderer.render.ViewportBox;import org.xhtmlrenderer.render.RenderingContext;import org.xhtmlrenderer.render.PageBox;import org.xhtmlrenderer.render.BlockBox;import org.xhtmlrenderer.layout.SharedContext;import org.xhtmlrenderer.layout.LayoutContext;import org.xhtmlrenderer.layout.Layer;import org.xhtmlrenderer.layout.BoxBuilder;import org.xhtmlrenderer.extend.UserInterface;import org.xhtmlrenderer.extend.NamespaceHandler;import org.xhtmlrenderer.css.style.CalculatedStyle;import org.xhtmlrenderer.context.StyleReference;import org.w3c.dom.Node;import org.w3c.dom.Element;import org.w3c.dom.Document;import javax.xml.transform.stream.StreamResult;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.TransformerFactory;import javax.xml.transform.TransformerException;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.Transformer;import javax.xml.transform.OutputKeys;import java.util.regex.Pattern;import java.util.List;import java.io.Writer;import java.io.UnsupportedEncodingException;import java.io.StringWriter;import java.io.StringReader;import java.io.OutputStream;import java.io.IOException;import java.io.File;import java.io.BufferedReader;ad.?d???z+%$?icb?
?
?
?
?
k
3
????8?JI?
?
x
J
I
.
(
'

?	?	?	?	q	k	j	4	???????M
?????????H??????;'&????[J??$????ysr2
??    public void setPDFVersion(char _v) {    }        _pdfEncryption = pdfEncryption;    public void setPDFEncryption(PDFEncryption pdfEncryption) {    }        return _pdfEncryption;    public PDFEncryption getPDFEncryption() {    }        getFontResolver().importFontFaces(_sharedContext.getCss().getFontFaceRules());        _sharedContext.getCss().setDocumentContext(_sharedContext, _sharedContext.getNamespaceHandler(), doc, new NullUserInterface());        _sharedContext.setNamespaceHandler(nsh);        _sharedContext.setBaseURL(url);        }            _sharedContext.getCss().flushAllStyleSheets();        } else {            _sharedContext.getCss().flushStyleSheets();        if (Configuration.isTrue("xr.cache.stylesheets", true)) {        _sharedContext.reset();        getFontResolver().flushFontFaceFonts();        _doc = doc;    public void setDocument(Document doc, String url, NamespaceHandler nsh) {    }        setDocument(dom, baseUrl);        Document dom = XMLResource.load(is).getDocument();        InputSource is = new InputSource(new BufferedReader(new StringReader(content)));    public void setDocumentFromString(String content, String baseUrl) {    }        setDocumentFromString(content, null);    public void setDocumentFromString(String content) {    }        setDocument(loadDocument(file.toURI().toURL().toExternalForm()), (parent == null ? "" : parent.toURI().toURL().toExternalForm()));        File parent = file.getAbsoluteFile().getParentFile();    public void setDocument(File file) throws IOException {    }        setDocument(doc, url, new XhtmlNamespaceHandler());    public void setDocument(Document doc, String url) {    }        setDocument(loadDocument(uri), uri);    public void setDocument(String uri) {    }        return _sharedContext.getUac().getXMLResource(uri).getDocument();    private Document loadDocument(final String uri) {    }        return (ITextFontResolver) _sharedContext.getFontResolver();    public ITextFontResolver getFontResolver() {    }        return _doc;    public Document getDocument() {    }        _timeouted= false;        _sharedContext.setInteractive(false);        _sharedContext.setPrint(true);        _sharedContext.setDotsPerPixel(dotsPerPixel);        _sharedContext.setDPI(72 * _dotsPerPoint);        _sharedContext.setTextRenderer(new ITextTextRenderer());        _sharedContext.setReplacedElementFactory(replacedElementFactory);        ITextReplacedElementFactory replacedElementFactory = new ITextReplacedElementFactory(_outputDevice);        _sharedContext.setFontResolver(fontResolver);        ITextFontResolver fontResolver = new ITextFontResolver(_sharedContext);        _outputDevice.setSharedContext(_sharedContext);        userAgent.setSharedContext(_sharedContext);        _sharedContext.setCss(new StyleReference(userAgent));        _sharedContext.setUserAgentCallback(userAgent);        _sharedContext = new SharedContext();        _outputDevice = outputDevice;        _dotsPerPoint = dotsPerPoint;    public ITextRenderer(float dotsPerPoint, int dotsPerPixel, ITextOutputDevice outputDevice, ITextUserAgent userAgent) {    }        this(dotsPerPoint, dotsPerPixel, outputDevice, new ITextUserAgent(outputDevice));    public ITextRenderer(float dotsPerPoint, int dotsPerPixel, ITextOutputDevice outputDevice) {    }        this(dotsPerPoint, dotsPerPixel, new ITextOutputDevice(dotsPerPoint));    public ITextRenderer(float dotsPerPoint, int dotsPerPixel) {    }        this(DEFAULT_DOTS_PER_POINT, DEFAULT_DOTS_PER_PIXEL);adA
l??fN@6????j& ?
?
?
?
?
A
>
=
<
!
??pX?????`'&?
?
?
?
A


	
?	?	?	?	`	_	H	B	A		???GF/)(????|^XW???uA???IH????dG=76?????aD<???lA
        PageBox firstPage = (PageBox) pages.get(0);        c.setInitialPageNo(initialPageNo);        RenderingContext c = newRenderingContext();        List pages = _root.getLayer().getPages();    public void createPDF(OutputStream os, boolean finish, int initialPageNo) throws DocumentException {     */     * something goes wrong.     * NOTE: Caller is responsible for cleaning up the OutputStream if    /**    }        createPDF(os, finish, 0);    public void createPDF(OutputStream os, boolean finish) throws DocumentException {    }        }            _pdfDoc.close();            fireOnClose();        if (_pdfDoc != null) {    public void finishPDF() {    }        writePDF(pages, c, firstPageSize, _pdfDoc, _writer);        _pdfDoc.newPage();        _pdfDoc.setPageSize(firstPageSize);        _outputDevice.setStartPageNo(_writer.getPageNumber());                firstPage.getHeight(c) / _dotsPerPoint);        com.lowagie.text.Rectangle firstPageSize = new com.lowagie.text.Rectangle(0, 0, firstPage.getWidth(c) / _dotsPerPoint,        PageBox firstPage = (PageBox) pages.get(0);        c.setInitialPageNo(initialPageNo);        RenderingContext c = newRenderingContext();        List pages = _root.getLayer().getPages();    public void writeNextDocument(int initialPageNo) throws DocumentException {    }        writeNextDocument(0);    public void writeNextDocument() throws DocumentException {    }        createPDF(os, true, 0);    public void createPDF(OutputStream os) throws DocumentException {    }        return result;        _sharedContext.getTextRenderer().setup(result.getFontContext());        result.setFontContext(new ITextFontContext());        LayoutContext result = _sharedContext.newLayoutContextInstance();    private LayoutContext newLayoutContext() {    }        return result;        result.setRootLayer(_root.getLayer());        _sharedContext.getTextRenderer().setup(result.getFontContext());        result.setOutputDevice(_outputDevice);        result.setFontContext(new ITextFontContext());        RenderingContext result = _sharedContext.newRenderingContextInstance();    private RenderingContext newRenderingContext() {    }        return new Rectangle(0, 0, first.getContentWidth(c), first.getContentHeight(c));        PageBox first = Layer.createPageBox(c, "first");    private Rectangle getInitialExtents(LayoutContext c) {    }        _root = root;        root.getLayer().layoutPages(c);        root.getLayer().trimEmptyPages(c, dim.height);        Dimension dim = root.getLayer().getPaintingDimension(c);        root.layout(c);        root.setContainingBlock(new ViewportBox(getInitialExtents(c)));        BlockBox root = BoxBuilder.createRootBox(c, _doc);        LayoutContext c = newLayoutContext();    public void layout() {	}        return _pdfXConformance == null ? '0' : _pdfXConformance.intValue();	public int getPDFXConformance(){		}		_pdfXConformance = new Integer(pdfXConformance);	public void setPDFXConformance(int pdfXConformance){	    }        return _pdfVersion == null ? '0' : _pdfVersion.charValue();    public char getPDFVersion() {    }                + "valid constants from PdfWriter (e.g. PdfWriter.VERSION_1_2)");        throw new IllegalArgumentException("Invalid PDF version character; use "        }            }                return;                _pdfVersion = new Character(_v);            if (_v == validPdfVersions[i]) {        for (int i = 0; i < validPdfVersions.length; i++) {ad"?e?HG???LB??
?
?
?
Q
????????QP:???????~}N-?
?
?
?
?
?
?
z
t
s
?	?	?	?	m	D	????Y6????7????g??U??dVLK#??V= ????fM.$???        if (v != null) {        v = _outputDevice.getMetadataByName("keywords");        }            doc.addSubject(v);        if (v != null) {        v = _outputDevice.getMetadataByName("subject");        }            doc.addAuthor(v);        if (v != null) {        v = _outputDevice.getMetadataByName("author");        }            doc.addTitle(v);        if (v != null) {        String v = _outputDevice.getMetadataByName("title");    private void setDidValues(com.lowagie.text.Document doc) {    // Sets the document information dictionary values from html metadata    }        _outputDevice.finish(c, _root);        }            }                _outputDevice.initializePage(writer.getDirectContent(), nextPageSize.getHeight());                doc.newPage();                doc.setPageSize(nextPageSize);                        nextPage.getHeight(c) / _dotsPerPoint);                com.lowagie.text.Rectangle nextPageSize = new com.lowagie.text.Rectangle(0, 0, nextPage.getWidth(c) / _dotsPerPoint,                PageBox nextPage = (PageBox) pages.get(i + 1);            if (i != pageCount - 1) {            _outputDevice.finishPage();            paintPage(c, writer, currentPage);            c.setPage(i, currentPage);            PageBox currentPage = (PageBox) pages.get(i);                throw new RuntimeException("Timeout occured");            if (isTimeouted() || Thread.currentThread().isInterrupted())        for (int i = 0; i < pageCount; i++) {        setDidValues(doc); // set PDF header fields from meta data        firePreWrite(pageCount); // opportunity to adjust meta data        c.setPageCount(pageCount);        int pageCount = _root.getLayer().getPages().size();        _root.getLayer().assignPagePaintingPositions(c, Layer.PAGED_MODE_PRINT);        _outputDevice.initializePage(writer.getDirectContent(), firstPageSize.getHeight());        _outputDevice.setWriter(writer);        _outputDevice.start(_doc);        _outputDevice.setRoot(_root);            PdfWriter writer) throws DocumentException {    private void writePDF(List pages, RenderingContext c, com.lowagie.text.Rectangle firstPageSize, com.lowagie.text.Document doc,    }        }            _listener.onClose(this);        if (_listener != null) {    private void fireOnClose() {    }        }            _listener.preWrite(this, pageCount);        if (_listener != null) {    private void firePreWrite(int pageCount) {    }        }            _listener.preOpen(this);        if (_listener != null) {    private void firePreOpen() {    }        }            doc.close();            fireOnClose();        if (finish) {        writePDF(pages, c, firstPageSize, doc, writer);        doc.open();        firePreOpen();        _writer = writer;        _pdfDoc = doc;        }                    _pdfEncryption.getAllowedPrivileges(), _pdfEncryption.getEncryptionType());            writer.setEncryption(_pdfEncryption.getUserPassword(), _pdfEncryption.getOwnerPassword(),        if (_pdfEncryption != null) {		}			writer.setPDFXConformance(_pdfXConformance.intValue());		if (_pdfXConformance != null) {		        }            writer.setPdfVersion(_pdfVersion.charValue());        if (_pdfVersion != null) {        PdfWriter writer = PdfWriter.getInstance(doc, os);        com.lowagie.text.Document doc = new com.lowagie.text.Document(firstPageSize, 0, 0, 0, 0);                firstPage.getHeight(c) / _dotsPerPoint);        com.lowagie.text.Rectangle firstPageSize = new com.lowagie.text.Rectangle(0, 0, firstPage.getWidth(c) / _dotsPerPoint,ad'?o????~QP???ml0
?
?
`
_
3

?????iI
??/?
?
?
?

~
^
-
#


?	?	?	v	l	k	]		?I????U)??????T*????va[Z&??h87?????ked%?????fPJI$??    }        return _dotsPerPoint;    public float getDotsPerPoint() {    }        return _root;    public BlockBox getRootBox() {    }        _root.exportText(c, writer);        c.setPageCount(_root.getLayer().getPages().size());        RenderingContext c = newRenderingContext();    public void exportText(Writer writer) throws IOException {    }        return _sharedContext;    public SharedContext getSharedContext() {    }        return _outputDevice;    public ITextOutputDevice getOutputDevice() {    }        return result.toString();        result.append("\n");        result.append(metadata);        result.append("\n");        StringBuffer result = new StringBuffer(metadata.length() + 50);    private String createXPacket(String metadata) {    }        return null;        }            n = n.getNextSibling();            }                return (Element) n;            if (n.getNodeType() == Node.ELEMENT_NODE) {        while (n != null) {        Node n = element.getFirstChild();    private static Element getFirstChildElement(Element element) {    }        }            throw new RuntimeException(e);        } catch (TransformerException e) {            throw new RuntimeException(e);            // rethrow as runtime exception            // Things must be in pretty bad shape to get here so        } catch (TransformerConfigurationException e) {            return output.toString();            transformer.transform(new DOMSource(target), new StreamResult(output));            StringWriter output = new StringWriter();            transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");            Transformer transformer = factory.newTransformer();            TransformerFactory factory = TransformerFactory.newInstance();        try {        }            return null;        if (target == null) {        Element target = getFirstChildElement(element);    private String stringfyMetadata(Element element) {    }        }            writer.setPageXmpMetadata(metadata);        if (metadata != null) {        }            }                throw new RuntimeException(e);                // Can't happen            } catch (UnsupportedEncodingException e) {                }                    metadata = createXPacket(stringfyMetadata(page.getMetadata())).getBytes("UTF-8");                if (metadataBody != null) {                String metadataBody = stringfyMetadata(page.getMetadata());            try {        if (page.getMetadata() != null) {        byte[] metadata = null;    private void provideMetadataToPage(PdfWriter writer, PageBox page) {    }        _outputDevice.setClip(working);        _outputDevice.translate(-left, -top);        _root.getLayer().paint(c);        _outputDevice.translate(left, top);        int left = page.getMarginBorderPadding(c, CalculatedStyle.LEFT);        int top = -page.getPaintingTop() + page.getMarginBorderPadding(c, CalculatedStyle.TOP);        _outputDevice.clip(content);        Rectangle content = page.getPrintClippingBounds(c);        Shape working = _outputDevice.getClip();        page.paintBorder(c, 0, Layer.PAGED_MODE_PRINT);        page.paintMarginAreas(c, 0, Layer.PAGED_MODE_PRINT);        page.paintBackground(c, 0, Layer.PAGED_MODE_PRINT);        provideMetadataToPage(writer, page);    private void paintPage(RenderingContext c, PdfWriter writer, PageBox page) {    }        }            doc.addKeywords(v);




© 2015 - 2025 Weber Informatics LLC | Privacy Policy