Generate & Export PDF on the fly without holding entire pdf contents memory

Hello Everyone,
We are using Crystal Reports JRC (in our server side application. In a typical use-case the generated report is exported into the pdf format and streamed to the client/browser.
My question is with regards to the current interface/implementation of the JRC export api(s), which returns an InputStream which is basically a ByteArrayInputStream?, Why ByteArrayInputStream ? why not a custom InputStream imeplementation which really benefits from the streaming approach, and give you the option to stream the contents as they are generated on the fly, instead of it holding the entire report contents in a byte-array, as is the case with using ByteArrayInputStream. Since, this often seems to choke our system with regards to memory footprint, when the generated report contains huge dataset.
Please comment? Is that not possible ? Is there any reason why ByteArrayInputStream is the only way to retrieve the report contents ?
Thanks,
Farhan.

We have new place called Idea Place, look up on the right hand side. Great place to add enhancement requests.
Or the link: http://www.sdn.sap.com/irj/scn/idea-place

Similar Messages

  • Generate & Export PDF/CSV on the fly without holding entire contents in mem

    Hello Everyone,
    We are using Crystal Reports JRC (in our server side application. In a typical use-case the generated report is exported into the pdf/csv format and streamed to the client/browser.
    My question is with regards to the current interface/implementation of the JRC export api(s), which returns an InputStream which is basically a ByteArrayInputStream?, Why ByteArrayInputStream ? why not a custom InputStream imeplementation which really benefits from the streaming approach, and give you the option to stream the contents as they are generated on the fly, instead of it holding the entire report contents in a byte-array, as is the case with using ByteArrayInputStream. Since, this often seems to choke our system with regards to memory footprint, when the generated report contains huge dataset.
    Please comment? Is that not possible ? Is there any reason why ByteArrayInputStream is the only way to retrieve the report contents ?
    Thanks,
    Farhan.
    Edited by: mfarhans on Feb 26, 2010 12:40 AM

    We have new place called Idea Place, look up on the right hand side. Great place to add enhancement requests.
    Or the link: http://www.sdn.sap.com/irj/scn/idea-place

  • LifeCycle Form Server :- My form is rendering as pdf in the browser  without displaying data sometim

    LifeCycle Form Server :- My form is rendering as pdf in the browser without displaying data sometimes within data fields, and at other times it will display data. The form consistently displays data when rendered in HTML.
    We display the forms in a browser either HTML or PDF format based on the user selection. But the behavior of PDF format is not consistent. Sometimes it renders properly and sometimes the form renders without data.
    Dose any one experienced this issue?
    Any help would be greatly appreciated.
    Thanks in advance,
    RK

    I have been seeing the same issue, but haven't been able to find a fix for it yet. So any info would be appreciated here too.
    Thanks

  • Changing from Active to Standby in a DHCP Failover scenario (on the fly) without deconfiguring operation...

    Hi all;
    Suppose I have set up a scope in SRV01 to be in Active mode. Is it possible to change its state to Standby mode (on the fly) without deconfigurig it and then configuring it again with my desired configuration?
    Thanks
    Please VOTE as HELPFUL if the post helps you and remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading
    the thread.

    Hi all;
    Suppose I have set up a scope in SRV01 to be in Active mode. Is it possible to change its state to Standby mode (on the fly) without deconfigurig it and then configuring it again with my desired configuration?
    Thanks
    Please VOTE as HELPFUL if the post helps you and remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading
    the thread.

  • Generating JSP/HTML on the fly

    Hi all,
    The requirement is to be able to generate HTML files (for UI display) on the fly depending on the database table structure. (Consider an EMPLOYEE table for example, an output HTML file needs to be generated based on the fields present in this table).
    To store data (config data) regarding this HTML file (in terms of field names, field types, attributes, etc.) what is suggested is to use an XML file which would have these, then a java file would read these from the XML and give out an other XML which would contain the actual data that will go in to the HTML (such as if the original XML conf. file contained a select statement for a LOV field, then the java file would fetch these and put them inthe final XML file) and so on.. and then have an other XSLT file with the appropriate layout to generate the final HTML.
    Could any one else suggest an alternative technique?
    Thanks and much appreciated.

    read your XML file to a "org.w3c.dom.Document" structure (see the example: http://www.developerfusion.com/show/2064/), then use an XSLT to show the Document in HTML frormat.
    // doc is an instance object of org.w3c.dom.Document
    File stylesheet = new File("style.xsl");
    StreamSource stylesource = new StreamSource(stylesheet);
    File datafile = new File("results.html");
    try {
    // Use a Transformer for output
    TransformerFactory tFactory = TransformerFactory.newInstance();
    Transformer transformer = tFactory.newTransformer(stylesource);
    DOMSource source = new DOMSource(doc);
    StreamResult result = new StreamResult(datafile);
    transformer.transform(source, result);
    catch (TransformerConfigurationException tce) {
    // Error generated by the parser
    System.out.println ("\n** Transformer Factory error");
    System.out.println(" " + tce.getMessage() );
    // Use the contained exception, if any
    Throwable x = tce;
    if (tce.getException() != null)
    x = tce.getException();
    x.printStackTrace();
    catch (TransformerException te) {
    // Error generated by the parser
    System.out.println ("\n** Transformation error");
    System.out.println(" " + te.getMessage() );
    // Use the contained exception, if any
    Throwable x = te;
    if (te.getException() != null)
    x = te.getException();
    x.printStackTrace();

  • How do i adjust color in a pdf on the fly?

    i need to pull back the yellow throughout a 100 page pdf.  The color in the pdf prints perfectly now , but client wants to see one if yellow was pulled back 10%. there has to be a fast and dirty way  to pint one on the fly with adjusted colors from my laser printer

    I don't need the ICC profiles. That is what i am trying to avoid. I feel
    like i have done this before what about through the laser print engine. I a
    am using a efi  Fiery Command WorkStation
    5<http://w3.efi.com/Fiery/Products/CWS5>
    On Mon, Mar 4, 2013 at 12:55 PM, Test Screen Name

  • Filter songs by rating (on the fly, without smart playlists)

    Is there any way (3rd party app maybe) that would allow you to live filter the displayed/played songs by rating? ie. if I have an artist selected, and all 200 songs are shown by that artist -- I would like to select on the fly to only display/play songs that are rated 2 or higher.
    Aperture has a similar function that does not require making smart lists -- "Display only 2 or higher" of the current album, etc. -- AND you can sort with a sub-filter in addition (in iTunes, I would show/play only 2 and higher, and maybe sub-sort by album, or shuffle it.)
    The only current way to do this is to create a unique smart playlist for every artist, genre, etc. that you would want to filter by rating in that way. Alternately, you can sort by rating, so the best are at the top, but with large selection of those ratings I often want to be able to shuffle the order within that selected rating range.
    This software addition would be very useful!
    Thanks for any tips...

    Merci beaucoup for the response. However, what you described in both cases are the workarounds that I described & that I've been using.
    With sort by rating solution, the music can then only be sorted by rating -- and there will be songs of lower ratings played eventually.
    Let me try to describe what I'm looking for more precisely:
    Like in Aperture, there would be a small gui selection toward the top of iTunes, and you select what ratings should be shown/played -- for example, 2 & higher. Then, there will be no songs shown/played that are below 2 stars. You can then have it play on shuffle, or sorted by other data such as artist, album, etc. -- and you will never hear a song below 2 stars.
    The smart playlist is the other workaround I've used, but it's also not the solution. It requires making a separate smart playlist for every possible artist/genre, etc. that you would want only (for example) 2 stars & above to play. For example, if on a whim I wanted to listen to all of my U2 music on random/shuffle -- I'd like to be able to just select Artist-->U2, and with the 2+stars GUI selection, I know I will never hear anything below 2 stars -- *without* having to take the time to make a smart playtlist for this random & rare mood. If I suddenly want a even higher selection of U2, I just click the 3stars GUI selection, and the shown & playable songs instantly update. No need to always have to create & edit smart playlists for such random selections...
    This interface works extremely well in Aperture - I wish they'd migrate it over to iTunes!
    I hope I'm clearer now... Thanks again

  • Appending PDFs on the fly

    Just wondering if anyone can lend some advice on the best way
    to append multiple PDFs using coldfusion. I have found a lot of
    expensive thrd party standalone apps but none that i can use to
    automate this type of concatonation, i really need to be able to do
    it on the fly if possible.

    aziwaan wrote:
    > Just wondering if anyone can lend some advice on the
    best way to append
    > multiple PDFs using coldfusion. I have found a lot of
    expensive thrd party
    search these forums. plenty of posts/code covering this.

  • Is it possible to use "english hijrah" on-the-fly without ALTER SESSION?

    SQL> alter session set nls_calendar='english hijrah';
    Session altered.
    SQL> select '29-02-1435', TO_DATE('29-02-1435', 'DD-MM-RRRR') from dual;
    '29-02-1435' TO_DATE('29-02-1435','DD-MM-RRRR')
    29-02-1435 29 Safar 1435
    Hi, the above shows that an input date of '29-02-1435' can be validated as a correct Hijrah date.
    However, is it possible to do such a TO_DATE(), or TO_CHAR() conversion without the overhead of an 'ALTER SESSION' at the start ?
    From within a Gregorian session I tried a few things like below, but they didn't work and give ORA-01756: quoted string not properly terminated
    select TO_CHAR('29-02-1435', 'nls_calendar="English Hijrah"', 'nls_date_format="DD-MM-RRRR")
    from dual;
    All we're needing to do is validate the date as valid Hijrah - no further processing is done.
    Many thanks for any help. Mark

    Sorry - I had been confusing single and double quotes.
    The following shows that it's a valid Arabic date
    SQL> select '29-02-1435', TO_DATE('29-02-1435', 'DD-MM-RRRR', 'nls_calendar=''English Hijrah''')
    2 from dual;
    '29-02-1435' TO_DATE('29-02-
    29-02-1435 02-JAN-14
    and for example if you put a crazy month, it complains
    SQL> select '29-02-1435', TO_DATE('29-92-1435', 'DD-MM-RRRR', 'nls_calendar=''English Hijrah''')
    2 from dual;
    select '29-02-1435', TO_DATE('29-92-1435', 'DD-MM-RRRR', 'nls_calendar=''English Hijrah''')
    ERROR at line 1:
    ORA-01843: not a valid month

  • Compiling new classes on the fly without having a .java file

    Hi everybody,
    I'd like to compile dynamically produced JAVA code (code from user input in my application). I don't wanna store the source code in a .java file, but just compile the code (as char[] or something like that) to a byte[].
    Does anybody have an idea ??
    Thanks
    Jan

    Have you looked at the idea of interpreting rather than compiling, say using Jython (a python interpreter written in Java). Python and Java are extremely close in syntax, and it should be relatively easy to do what you are talking about.
    I am worried though, that you are going to let users type in text, and assume that it has valid syntax in the language you are using. Many years of UI experience indicate that letting users type in anything results in a certain error rate. Letting it be instructions you are to follow in your code is even more dangerous.
    There are many programs that let users define actions interactively. They seem to either let the user type in text, and error check it to death (a lot of work, think spreadsheet type programs), or they present the user with a set of choices, often using a wizard type interface, which takes more up front UI work, but only lets the users select valid options.
    It sounds like you want to interpret what the user types in as instructions. Even with Jython (or a similar interpreter), you would need to parse the user input for formatting errors, invalid variable names, and anything else they could make a mistake on, before you could pass any of it to the interpreter.
    Good luck.

  • Generate Zip File on the fly

    I need to dynamically create a zip file by calling images in
    a certain directory. Is there any sort of coldfusion tag (possibly
    custom tag) that will allow me to do this? Thanks.

    This
    custom tag is an example of many found
    here.

  • Using pdf-security with FormProcessor blanks out entire PDF

    When I try to set the pdf-security property and its associated properties with the FormProcessor.setConfig API method, the resulting PDF document is completely blank. And no, it's not an issue of my security. When I view the security properties within the document, it says there is no security. Has anyone been able to get this to work with FormProcessor, and if so, HOW???
    Regards,
    KH

    It's rather sad to have to be answering my own post, but for anyone else who might need this info this seems to have worked in my project - at least locally... Although it doesn't appear to be documented, you can use the same properties from the FOProcessor engine with the FormrProcessor engine, and call the FormProcessor.setConfig() method.
    Properties props = new Properties();
    props.setProperty("remove-pdf-fields", "true");
    props.setProperty("pdf-security", "true");
    fProcessor.setConfig(props);

  • How can I reduce the file size of a pdf when exporting?

    I don't want to just choose between high quality print or smallest file size.
    I want to export it from 60MB to 40MB.
    Can I do this manually? When I use smallest file size the quality is too low and the content looks bad.
    But high quality print exports my PDF at 60MB which is too big.

    You cannot simply legislate the size of a PDF file. If you content is primarily text and vector, there is not much at all you can do to reduce PDF file size other than to cut out content. Otherwise, the only other variables are those of downsampling and compressing the raster images from your content.
    You must be very careful in choosing the PDF export settings. The “smallest size” settings yield PDF files that realistically really are not fit for printing and may mess up any CMYK colors. The “high quality print” and “PDF/X-4” settings yield best print output, but yield the largest PDF files since they do less image resolution downsampling and only the maximum quality lossy JPEG compression.
    I would recommend that you start with either the “high quality print” or the “PDF/X-4” settings and make a custom set of export settings. Assuming that you aren't going for offset or gravure printing, change the color image and grayscale image downsampling values from 300 and 450 to either 200 and 275 or no less than 150 and 225. If that doesn't give enough file size reduction, change the compression image quality from “Maximum” to either “High” or no less than “Medium.” Beyond these changes, you may end up with PDF files that will neither print nor display with any reasonable quality.
            - Dov

  • PDF conversion on-the-fly

    Hi all,
    I'm investigating a website project where the requirement is
    to provide the ability to upload PDF documents and display them in
    Flash. I know that this kind of thing has been done with these
    'page-flip' hosted systems, but this is somewhat different. I am
    guessing, although I'm not certain, that the way to do this is to
    use FlashPaper to convert the PDF on-the-fly to SWF's which can
    then be loaded into the Flash, Flex or whatever application. I
    don't really know the mechanics of setting up FlashPaper on a
    remote server to do this though, can anyone offer some advice?
    Thanks in advance!
    Kevin

    It sounds like you want to use Acrobat as a web service. Rather than pursue this route, you may want to note that such a use of Acrobat is not permitted under the license. Thus it may not worth pursuing. Why convert to HTML is a possible question anyway, at least on a regular basis? On occasions I can understand the need.
    For programmable features you should probably check in the SDK forum.

  • Reading MS Project column names and data on the fly from a selected View

    Hi guys,
    I have several views on my project file (MSPROJECT 2010) and I want to build a macro so that;
    1. User can select any view ( Views can have diffrent columns and the user may add new columns as well)
    2. User runs the Macro and all the coulmns along with the tasks displayed in the view will be written to a excel file. ( I don't want to build several macro's for each view, I'm thinking of a common method which would work for any selected view)
    The problem I'm facing is that how will i read the column names and data for a particular view on the fly without hard coding them inside the vba code ?
    The solution needs to work on a master schedule as well.
    Appreciate your feedback.

    Just to get you started the following code writes the field name and data for the active task to the Immediate window.
    Sub CopyData()
    Dim fld As TableField
    For Each fld In ActiveProject.TaskTables(ActiveProject.CurrentTable).TableFields
    If fld.Field >= 0 Then
    Debug.Print Application.FieldConstantToFieldName(fld.Field), ActiveCell.Task.GetField(fld.Field)
    End If
    Next fld
    End Sub
    Rod Gill
    Author of the one and only Project VBA Book
    www.project-systems.co.nz

Maybe you are looking for

  • Macbook running very slowly

    Hello - I have a white Macbook bought three years ago running Mac OS X 10.4.11 with a 2GHz processor and 1GB SDRAM. I've been very happy with my purchase and use it mainly for word processing, internet, watching DVDs and email use. Recently, for no a

  • When using coverflow screen goes black

    Having installed 7.1.1.5 of itunes I now find that my computer crashes (with the screen first going black) when i flick through more than a couple of album covers. Have not had this problem before on my pc, is this something that can be fixed?   Wind

  • How do I delete a row in Microsoft Access from a vi using the database toolkit

    Using the database toolkit 1.01 how can I delete a row from my vi

  • How to start work flow agent listener and work flow background engines R12

    Hi, I need to start work flow agent listener and workflow background engine in R12.1.3. Could you please specify how to start a workflow agent listener and workflow agent background engine. Please send me link if any documents are there . Best Regard

  • Help! Executing SQL from ASP

    This is my Code.. Set OraSession = CreateObject("OracleInProcServer.XOraSession") Set OraDatabase = OraSession.DbOpenDatabase(strDB, strID & "/" & strPASS, 0) OraDatabase.DbExecuteSQL("DELETE tmp_clean;") It then runs a SQL statement which populates