/** * Creates a new MIF handler on a given OutputStream. * @param ua FOUserAgent instance for this process * @param os OutputStream to write to */ public MIFHandler(FOUserAgent ua, OutputStream os) { super(ua); outStream = os; boolean base14Kerning = false; //TODO - FIXME FontSetup.setup(fontInfo, null, ua.getResourceResolver(), base14Kerning); }
/** * Creates a new RTF structure handler. * @param userAgent the FOUserAgent for this process * @param os OutputStream to write to */ public RTFHandler(FOUserAgent userAgent, OutputStream os) { super(userAgent); this.os = os; bDefer = true; boolean base14Kerning = false; FontSetup.setup(fontInfo, null, userAgent.getResourceResolver(), base14Kerning); }
public BufferedOutputStream getTempStream(URI uri) throws IOException { return new BufferedOutputStream(getUserAgent().getResourceResolver().getOutputStream(uri)); }
private void rewritePCLFile() throws IOException { InputStream in = new BufferedInputStream(getUserAgent().getResourceResolver().getResource(tempURI)); long offset = 0; for (Map.Entry<PCLSoftFontManager, Map<Typeface, Long>> fontManagerMapEntry : gen.fontManagerMap.entrySet()) { PCLSoftFontManager softFontManager = fontManagerMapEntry.getKey(); for (Map.Entry<Typeface, Long> fontEntry : fontManagerMapEntry.getValue().entrySet()) { ByteArrayOutputStream fontData = softFontManager.makeSoftFont(fontEntry.getKey(), null); long pos = fontEntry.getValue(); copy(in, pos - offset); outputStream.write(fontData.toByteArray()); offset = pos; } } copy(in, Long.MAX_VALUE); this.outputStream.flush(); IOUtils.closeQuietly(in); }
/** {@inheritDoc} */ public void setResult(Result result) throws IFException { if (result instanceof StreamResult) { StreamResult streamResult = (StreamResult) result; OutputStream out = streamResult.getOutputStream(); if (out == null) { if (streamResult.getWriter() != null) { throw new IllegalArgumentException( "FOP cannot use a Writer. Please supply an OutputStream!"); } try { URI resultURI = URI.create(streamResult.getSystemId()); out = new BufferedOutputStream(getUserAgent().getResourceResolver().getOutputStream(resultURI)); } catch (IOException ioe) { throw new IFException("I/O error while opening output stream" , ioe); } this.ownOutputStream = true; } this.outputStream = out; } else { throw new UnsupportedOperationException( "Unsupported Result subclass: " + result.getClass().getName()); } }
/** * Used for two-pass production. This will rewrite the PostScript file from the temporary * file while adding all needed resources. * @throws IOException In case of an I/O error. */ private void rewritePostScriptFile() throws IOException { log.debug("Processing PostScript resources..."); long startTime = System.currentTimeMillis(); ResourceTracker resTracker = gen.getResourceTracker(); InputStream in = new BufferedInputStream(getUserAgent().getResourceResolver().getResource(tempURI)); try { try { ResourceHandler handler = new ResourceHandler(getUserAgent(), eventProducer, this.fontInfo, resTracker, this.formResources); handler.process(in, this.outputStream, this.currentPageNumber, this.documentBoundingBox, psUtil); this.outputStream.flush(); } catch (DSCException e) { throw new RuntimeException(e.getMessage()); } } finally { IOUtils.closeQuietly(in); } if (log.isDebugEnabled()) { long duration = System.currentTimeMillis() - startTime; log.debug("Resource Processing complete in " + duration + " ms."); } }
/** * Default constructor. */ public AFPDocumentHandler(IFContext context) { super(context); this.resourceManager = new AFPResourceManager(context.getUserAgent().getResourceResolver()); this.paintingState = new AFPPaintingState(); this.unitConv = paintingState.getUnitConverter(); }
/** * Save a page. * It saves the contents of the page to a file. * * @param page the page to prepare */ protected void savePage(PageViewport page) { try { // save page to cache ObjectOutputStream tempstream; String fname = "fop-page-" + page.getPageIndex() + ".ser"; URI tempURI = tempBaseURI.resolve(fname); OutputStream outStream = renderer.getUserAgent().getResourceResolver().getOutputStream(tempURI); tempstream = new ObjectOutputStream(new BufferedOutputStream(outStream)); try { page.savePage(tempstream); } finally { IOUtils.closeQuietly(tempstream); } pageMap.put(page, tempURI); if (log.isDebugEnabled()) { log.debug("Page saved to temporary file: " + tempURI); } } catch (IOException ioe) { AreaEventProducer eventProducer = AreaEventProducer.Provider.get( renderer.getUserAgent().getEventBroadcaster()); eventProducer.pageSaveError(this, page.getPageNumberString(), ioe); } }
InputStream inStream = renderer.getUserAgent().getResourceResolver().getResource(tempURI); ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(inStream)); try {
private void addDefaultOutputProfile() throws IOException { if (this.outputProfile != null) { return; } ICC_Profile profile; InputStream in = null; URI outputProfileUri = rendererConfig.getOutputProfileURI(); if (outputProfileUri != null) { this.outputProfile = pdfDoc.getFactory().makePDFICCStream(); in = userAgent.getResourceResolver().getResource(rendererConfig.getOutputProfileURI()); try { profile = ColorProfileUtil.getICC_Profile(in); } finally { IOUtils.closeQuietly(in); } this.outputProfile.setColorSpace(profile, null); } else { //Fall back to sRGB profile outputProfile = sRGBColorSpace.getICCStream(); } }
URI baseUri = getUserAgent().getResourceResolver().getBaseURI(); if (baseUri != null) { SVGOMDocument svgdoc = (SVGOMDocument)doc;
/** {@inheritDoc} */ public void startDocument() throws IFException { super.startDocument(); this.fontResources = new FontResourceCache(getFontInfo()); try { final OutputStream out; if (psUtil.isOptimizeResources()) { tempURI = TEMP_URI_GENERATOR.generate(); out = new BufferedOutputStream(getUserAgent().getResourceResolver().getOutputStream(tempURI)); } else { out = this.outputStream; } //Setup for PostScript generation this.gen = new FOPPSGeneratorImpl(out); this.gen.setPSLevel(psUtil.getLanguageLevel()); this.gen.setAcrobatDownsample(psUtil.isAcrobatDownsample()); this.currentPageNumber = 0; this.documentBoundingBox = new Rectangle2D.Double(); //Initial default page device dictionary settings this.pageDeviceDictionary = new PSPageDeviceDictionary(); pageDeviceDictionary.setFlushOnRetrieval(!psUtil.isDSCComplianceEnabled()); pageDeviceDictionary.put("/ImagingBBox", "null"); } catch (IOException e) { throw new IFException("I/O error in startDocument()", e); } }
/** {@inheritDoc} */ public void drawImage(String uri, Rectangle rect) throws IFException { PageSegmentDescriptor pageSegment = getDocumentHandler().getPageSegmentNameFor(uri); if (pageSegment != null) { float[] srcPts = {rect.x, rect.y}; int[] coords = unitConv.mpts2units(srcPts); int width = Math.round(unitConv.mpt2units(rect.width)); int height = Math.round(unitConv.mpt2units(rect.height)); getDataStream().createIncludePageSegment(pageSegment.getName(), coords[X], coords[Y], width, height); //Do we need to embed an external page segment? if (pageSegment.getURI() != null) { AFPResourceAccessor accessor = new AFPResourceAccessor( getDocumentHandler().getUserAgent().getResourceResolver()); try { URI resourceUri = new URI(pageSegment.getURI()); getDocumentHandler().getResourceManager().createIncludedResourceFromExternal( pageSegment.getName(), resourceUri, accessor); } catch (URISyntaxException urie) { throw new IFException("Could not handle resource url" + pageSegment.getURI(), urie); } catch (IOException ioe) { throw new IFException("Could not handle resource" + pageSegment.getURI(), ioe); } } } else { drawImageUsingURI(uri, rect); } }
AFPIncludeFormMap formMap = (AFPIncludeFormMap)extension; AFPResourceAccessor accessor = new AFPResourceAccessor( getUserAgent().getResourceResolver()); try { getResourceManager().createIncludedResource(formMap.getName(),
throw new RuntimeException(use); InputStream in = userAgent.getResourceResolver().getResource(srcURI); if (in == null) { throw new FileNotFoundException(embeddedFile.getSrc());
/** {@inheritDoc} */ @Override public void startDocument() throws IFException { super.startDocument(); try { final OutputStream out; if (pclUtil.isOptimizeResources()) { tempURI = TEMP_URI_GENERATOR.generate(); out = new BufferedOutputStream(getUserAgent().getResourceResolver().getOutputStream(tempURI)); } else { out = this.outputStream; } this.gen = new PCLGenerator(out, getResolution()); this.gen.setDitheringQuality(pclUtil.getDitheringQuality()); if (!pclUtil.isPJLDisabled()) { gen.universalEndOfLanguage(); gen.writeText("@PJL COMMENT Produced by " + getUserAgent().getProducer() + "\n"); if (getUserAgent().getTitle() != null) { gen.writeText("@PJL JOB NAME = \"" + getUserAgent().getTitle() + "\"\n"); } gen.writeText("@PJL SET RESOLUTION = " + getResolution() + "\n"); gen.writeText("@PJL ENTER LANGUAGE = PCL\n"); } gen.resetPrinter(); gen.setUnitOfMeasure(getResolution()); gen.setRasterGraphicsResolution(getResolution()); } catch (IOException e) { throw new IFException("I/O error in startDocument()", e); } }