Is it possible to generate PDF 1.5 with linearization & initial view = bookmarks?

Hello,
I need to convert Office documents to PDF 1.5 (Acrobat 6) with the following properties:
- Web view (linearization)
- Initial view = Bookmarks panel and page.
Each way I tried, in fact produced PDF 1.6 (Acrobat 7).
Is it doable to to generate PDF 1.5?
Thanks for help
Mathias

Using Acrobat 7.0.9, the following VB code generates PDF 1.6:
Set AcroDoc = New AcroPDDoc
bRet = AcroDoc.Open(pdfDocName)
bRet = AcroDoc.SetPageMode(PDViewMode.PDUseBookmarks)
bRet = AcroDoc.Save(PDSaveLinearized + PDSaveFull, pdfDocName)
How to generate PDF 1.5 ?
Regards,
Mathias

Similar Messages

  • All my pdf scans open with  windows photo viewer what can I do to see them in Adobe Reader?

    all my pdf scans open with  windows photo viewer what can I do to see them in Adobe Reader?

    You need to change your file association to open .pdf files with Adobe Reader instead of the photo viewer program; see Change the program that opens a type of file - Microsoft Windows Help

  • Is it possible to generate PDF with "enable for commenting" from AI?

    I am using Illustrator CS5 and have Acrobat 9 Pro on a Mac. I would like to generate PDF's with "enabled for commenting" feature on.
    I was able generate a PDF from CS5 -> open it in Acrobat 9 Pro -> enable commenting -> Save as new PDF
    I prefer to skip the above mannual step and generate the PDF with commenting enabled directly from Illustrator. Any ideas?

    Acrobat 9 Pro doesn't support batch processing to "enable for commenting" feature. I can batch generate the PDFs from AI but will have to manually convert each PDF using Acrobat 9 Pro....(sucks!!!)
    Another option is that I get a Acrobat 9 Pro for Windows - install LiveCycle - tranfer my AI generated PDFs (mac) to windows and use batch processing feature of LiveCycle to convert the PDFs into "enable for commenting" (sucks less!!!)
    I would love to hear any other option available.

  • Table Header not Recurring - when Generate PDF from HTML with tables

    Hello,  It is not working as expected...and I'm not sure if the functionality is supported.  Want to create PDF from html document. The html document contains a html table that typically contains a large number of rows.  To make reading easier the html table used thead and tbody elements, and their children, so that when the table extends across pages when printed the header element recurs on each page.  However, the header element is not recurring in the generated PDF document (it only occurs in the first row of the table).  Just wondering if you have tried or used this functionality (created PDF from html with table with headers and the PDF included the table with recurring table header.  And if so, did you do anything special to make it work.  Thanks for any insight.

    If there's a problem with that package, I suggest you speak to the developer of that package and ask them to investigate.  It's not an Oracle supplied package so you are wrong to look for help here.

  • Report will not generate PDF only the XML output.  View XML icon disabled

    I created a PDF format report.
    When the report completes, View Output shows XML code not the PDF output.
    View XML button is disabled from Diagnostic on view request screen.
    Any thoughts. All settings are the same as when other XML to PDF reports are created. Not sure why this one is not working.
    Thanks

    I'm afraid this is not an installation issue, it rather sounds and application server one, at the operative level.
    I suggest you to post your thread at the Fusion Middleware or Developer Tools forums.
    You didn't provide any OS nor Oracle / AS version, I suggest you to specify this information when posting in future threads.
    ~ Madrid.

  • How to generate PDF from file with linked images

    Hi,
    did anybody met/solved problem how to create PDF form file, which contains links to another files/images using PDFGenerator? For example from FrameMaker documents which contains linked images; or from CAD files which contains linked components...
    The issue is, that the CreatePDF function moves the source file into a temporary folder, and this operations "brokes" the relative links to linked/included files.
    Regards,
    Radek

    hi
    was your problem solved,if not email me [email protected], will try to help you

  • HTML to PDF conversion - problems with page-breaks and bookmarks

    Hello,
    My company is currently considering updating your software (from Acrobat 9 Pro to Acrobat XI Pro) and I’ve been assigned to research its features and make sure that it is a right fit for our goals. Basically we want to automate the whole process as much as possible and we want to create PDF directly from HTML. We’re providing a lot of content in HTML and we need a fast way to transfer it into PDF format. There are however some guidelines:
    We want page-breaks in is this kind of documents, and thus - your app needs to be able to interpret HTML and put them where we want to;
    We need to have bookmarks in there. Converter must be able to make them based on headlines from HTML source or afterwards, directly in PDF by using some auto-bookmarks feature;
    There has to be table of content generated, based on HTML Link Tags if possible. Here’s sample of TOC structure that we have currently:
    <A NAME="redirect">sample_text</A>
    <A HREF="#redirect">sample_text</A>
    Of course we can modify HTML in any way you want us to. The important thing for us is to make it work in PDF without the need to make a lot of manual changes after conversion.
    I’ve been messing with Acrobat 9 Pro and reading some documentation that you have provided and I’m convinced that point 3 is not a problem. I’m aware that Acrobat 9 Pro is not having any difficulties with links in document and they work fine in PDF format that has been created from HTML.
    Page-breaks on the other hand are bothering me. Your app is apparently ignoring every HTML code that the Internet is advising me to use to force page-break where I want. Honestly - I’ve tested like ten ways to make them and not even one was working. That’s why I’m asking for your help.
    Another problematic subject for me is the bookmarks creation. I know that they are not a problem if I’m doing DOC to PDF conversion. Then I’m able to decide what header should be used as a curtain level of bookmarks and everything is working great at the end. However - with direct HTML to PDF conversion - I really don’t know how to generate bookmarks that are based on the source of the input document. Is there any way to make fully working 2 level bookmark tree in this case? Here’s an example of the structure we want at the end:
    header1
    header2
    header2
    header1
    header1
    header2
    Could you please help me in finding the solutions? Just like I’ve mentioned - we can modify input HTML in any way, but in the end we would like to achieve our goals as quickly as possible.
    Please excuse my English.
    I am looking forward to your response,
    Lucas

    Frankly - we would like to avoid using Word. We are using it currently but there are long-term plans of improving whole conversion process, eliminate any mid-steps and automate as much as possible even though conversion is not going to be done unattended on a server. Thank you for your response, but I hope that maybe someone else would have any idea?

  • How to embed font into generated PDF?

    Hi,
    I have an issue with cyrillic fonts in PDF-file, generated from smartform using the following mechanism:
    1. Run FM for smartform with ==> getotf = 'X'
    2. Perform CONVERT_OTF retrieving result into a XSTRING.
    3. Converting xstring content into a table using "cl_document_bcs=>xstring_to_solix).
    4. Creating mail to an external internet user with attached pdf ==> using "cl_document_bcs=>create_document..."
    Smartform contains cyrillic content, based on HELVCYR (Helvetica cyrillic) font. Application server is based on Windows.
    Everything worked well (for months!) for allmost all of the clients of our customer. Of course, some of clients have different OS-es (such as Linux, Mac OS, etc.), and then the problem starts - they doens't view properly the cyrillic content. English content (even numbers, etc.) are properly displayed. We found what fonts are used in the PDF, but my questions are:
    1. Is it possible to embed the font into generated PDF-content?
    2. If no, is it possible to generate PDF-content non-selectable (i.e. in some image mode) ?
    If yes, how to do this?
    Or is there any other way to workarround this issue - to be able to display mail with attached PDF-content with cyrillic on different OS-es? It would be better if it is possible without calling external converter...
    Any help would be highly appreciated.
    Thanks in advance.
    Regards,
    Ivaylo Mutafchiev

    Hello Ivaylo Mutafchiev,
                                           There is no way we can control the fonts in the created PDF / while creating the PDF using the class cl_document_bcs in your PDF creation logic.
    You can try some other approach of creating PDF from the Smartforms OTF stream data .
    Try using the follosing FM for the PDF creation and sending email:
    CONVERT_OTF_2_PDF
    CONVERT_OTF_AND_MAIL
    SO_OBJECT_SEND
    CONVERT_OTF_AND_MAIL_NEW (Try this but this FM still uses  the class that you are using currently. But give it a try and see the results)
    Hope this answers your question.
    Thanks,
    Greetson

  • How can I generate PDF bookmarks for change bars?

    I want to generate PDF bookmarks for text that is marked by change bars when I save as PDF from structured Framemaker 7.1. That way the proofreader can go directly to the pages that contain change bars and proof only that text.

    Adding to Arnis' reply:
    It is also possible to generate PDF bookmarks for change bars through FrameMaker-to-Acrobat TimeSavers + Presentation Assistant, as follows:
    Change bar has to use a unique color, with a known RGB value
    A PDF layer is created automatically based on the specified RGB value, containing all change bars (layer can be set as initially hidden and/or as a non-printing one)
    A generic bookmark can be created automatically for each change bar. Since this is not related to the specific text being indicated, the bookmark text has a user-controlled label, optionally autonumbered (eg "Change Bar #1", "Change Bar #2", etc).
    After setting the different parameters above, the process is entirely automatic (results are present as soon as the file is Save as PDF or distilled into a PDF).
    If this approach is of interest, I can set up sample FM + PDF files.
    A different approach -- based on custom markers inserted, with unique text and note attributes -- resulting in Quick-Access Bookmarks, is discussed/demonstrated at http://www.microtype.com/ImprovePDF06.html .
    Shlomo Perets
    MicroType * http://www.microtype.com
    FrameMaker/Acrobat training & consulting * FM-to-Acrobat TimeSavers/Assistants
    1-hour webinar (free), starting 10am PDT | 1pm EDT | 5pm UTC/GMT:
    Thursday, Sept. 10: Liven up your PDFs with FrameMaker-to-Acrobat TimeSavers/Assistants 
    https://student.gototraining.com/register/8019702938678710980

  • Generating PDF form16's from SAP HR system

    Hi,
    I have to explore the possibility of generating PDF form16's from SAP HR system. My clinet is currently using SAP ECC6.0 version.
    Please let me know if any one has any idea on the same.
    Thank you.

    Hello buddies,
    Is there a *new note released to take care of F4 help on the main screen of Form 16?
    We have applied all the required notes, however, when we are testing the Form 16, we are unable to upload the temse file for data on Page 3 of Form 16. This is because there is no F4 help on the main screen.
    Please someone help as this is a very important requirement from the client side and we are stuck with the testing.
    Thanks in advance.
    Evangelist@

  • Is there a way to set the default Initial View to Bookmarks Panel and Page on word documents that I save as PDF?

    When I save my word 2013 documents as Adobe PDF I have to open the PDF up, go to File>Properties>Initial View>Navigation Tab and then set the initial view as Bookmark Panel and Page; it gets pretty tedious.
    I use Save as Adobe PDF rather than Print to Adobe PDF Printer because I like being able to have the security settings automatically set.
    I just want to be able to save my word document as Adobe PDF with the initial view already set as Bookmark Panel and Page, and with security, so I can send it out immediately.
    Is this possible?
    Thank you.

    Use the Firefox Android Addon - Phony
    *https://addons.mozilla.org/en-US/android/addon/phony
    for more
    *https://addons.mozilla.org/en-US/android/

  • PDF through VBA: How to set Initial View?

    - Adobe Acrobat 6.0 (sorry we're a bit out of date)
    - MS Office 2003
    - MS Windows XP Professional SP2
    I am trying to automate the creation of PDFs from MS Word. I have succeeded. My VBA code works fine (have pasted it below). I can create a PDF, and give it a title and author.
    The problem I am having is with the Initial View settings, i.e. how the document opens. I want to hardcode:
    1. Show to "Page Only"
    2. Page Layout to "Continuous"
    3. Magnification to "Fit Width"
    The first I have done, using AcroExch.PDDoc's SetPageMode() function (although it seems to default to that even without doing this). I cannot, for the life of me, find any reference to the second and third, though. This must be doable, right? Be kind of weird not to have access to this in the API.
    Hours of Googling has thrown up three ideas I've discarded.
    1. AcroExch.App's SetPreference() function. This would presumably change preferences on the machine making the PDF, not reading it. I don't want to fiddle with other people's preferences anyway.
    2. AcroExch.AVPageView's ZoomTo() function. Ditto. I am not creating an app to view PDFs, just trying to configure the default for opening one I've created.
    3. An "undocumented" SetOpenInfo() in AcroExch.PDDoc. This looked the most promising for Magnification, but nobody seems to be able to get it to work, and it does nothing for me either. Someone somewhere even suggested it had been deprecated in later versions of Acrobat.
    So... what do I do?
    Thanks in advance for any pointers.
    jON
    ===============================================
    Sub MakePDF(strFilename As String, strTitle As String, strAuthor As String)
    Dim pdfD As PdfDistiller
    Dim strPDFName As String
    Dim strPSName As String
    strPSName = strFilename & ".ps"
    strPDFName = strFilename & ".pdf"
    '... make PS
    Application.ActivePrinter = myPDFPrinter
    Application.PrintOut Filename:="", _
    Range:=wdPrintAllDocument, _
    Item:=wdPrintDocumentContent, _
    Copies:=1, _
    Pages:="", _
    PageType:=wdPrintAllPages, _
    ManualDuplexPrint:=False, _
    Collate:=True, _
    Background:=False, _
    PrintToFile:=True, _
    PrintZoomColumn:=0, _
    PrintZoomRow:=0, _
    PrintZoomPaperWidth:=0, _
    PrintZoomPaperHeight:=0, _
    OutputFileName:=strPSName, _
    Append:=False
    '... make PDF
    Set pdfD = New PdfDistiller
    pdfD.FileToPDF strPSName, strPDFName, ""
    '... tag PDF
    Set qq = CreateObject("AcroExch.PDDoc")
    b = qq.Open(strPDFName)
    b = qq.SetInfo("Title", strProperties_Title)
    b = qq.SetInfo("Author", strProperties_Author)
    b = qq.SetPageMode(1) '... 1 = PDUseNone
    b = qq.Save(33, strPDFName) '... 33 = PDSaveFull (1) OR PDSaveCollectGarbage (32)
    b = qq.Close
    End Sub

    I have the same problem. I need to change Initial View Settings configuring the following settings
    2. Page Layout to "Single Page"
    3. Magnification to "Fit Width"
    My software configuration is as follows:
    - Adobe Acrobat 7.9
    - Microsoft Windows XP SP2
    - Visual Basic 6
    Has anyone worked with this attributes of Acrobat?

  • Error while generating PDF in portal but not in WAD

    Hi,
    When I execute the command to export to pdf, I have a screen to fill settings of my pdf, then I valid my choice and I have this message : "Error while generating PDF" in my portal.
    However, when I want to execute on Web Application Designer and click on my command "export to pdf", I have a same screen and I can open or save my document.
    Is someone have an idea : why it is possible to generate my pdf on WAD but not in my portal ??
    Any information is much appreciated !
    Thanks in advance
    V.K.

    Hi Pradnya,
    Thanks for your answer. However it is for an old version of SAP NetWeaver..
    I work with SAP BI 7.0 version.
    Regards,
    V.K.

  • Error while generating PDF - in Bex Web

    Hi Experts,
    I am currently having the issue that I receive the error "Error while generating PDF" when using the "Print Version" functionality. This problem only occurrs for the Bex Web Query. I know that the ADS service is configured correctly- The webservice test is successful and other applications (Guided Procedures, MSS) also use it successfully.
    Please see below the excerpt from the default trace:
    A message was generated:
    ERROR
    Error while generating PDF
    com.sap.ip.bi.webapplications.pageexport.PageExportRenderingRootNode PageExportRenderingRootNode_0001
    Message: 28
    Stack trace: java.lang.ArrayIndexOutOfBoundsException: 28
    at com.sap.ip.bi.export.xfa.impl.SizeCalculator.getColumnSizes(SizeCalculator.java:178)
    at com.sap.ip.bi.export.impl.ExportController.setSizes(ExportController.java:220)
    at com.sap.ip.bi.export.impl.ExportController.calculateAndSetSizes(ExportController.java:611)
    at com.sap.ip.bi.export.impl.ExportController.doExportPrep(ExportController.java:408)
    at com.sap.ip.bi.export.impl.ExportController.convert(ExportController.java:336)
    at com.sap.ip.bi.export.controller.ExportResult.createExport(ExportResult.java:58)
    at com.sap.ip.bi.webapplications.pageexport.PageExportRenderingRootNode.createPDF(PageExportRenderingRootNode.java:453)
    at com.sap.ip.bi.webapplications.pageexport.PageExportRenderingRootNode.doExport(PageExportRenderingRootNode.java:105)
    at com.sap.ip.bi.webapplications.pageexport.PageExportRenderingRootNode.processRendering(PageExportRenderingRootNode.java:252)
    at com.sap.ip.bi.webapplications.runtime.impl.Page.buildRenderingTree(Page.java:3809)
    at com.sap.ip.bi.webapplications.runtime.impl.Page.processRenderingRootNode(Page.java:3867)
    at com.sap.ip.bi.webapplications.runtime.impl.Page.processRendering(Page.java:3510)
    at com.sap.ip.bi.webapplications.runtime.impl.Page.doProcessRequest(Page.java:3470)
    at com.sap.ip.bi.webapplications.runtime.impl.Page.processRequest(Page.java:2489)
    at com.sap.ip.bi.webapplications.runtime.controller.impl.Controller.doProcessRequest(Controller.java:892)
    at com.sap.ip.bi.webapplications.runtime.controller.impl.Controller.processRequest(Controller.java:813)
    at com.sap.ip.bi.webapplications.runtime.jsp.portal.services.BIRuntimeService.handleRequest(BIRuntimeService.java:456)
    at com.sap.ip.bi.webapplications.runtime.jsp.portal.components.LauncherComponent.doContent(LauncherComponent.java:21)
    at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
    at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
    at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
    at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:215)
    at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:645)
    at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
    at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:753)
    at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)
    at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:522)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:405)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
    at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
    at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
    at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
    at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
    at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
    at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
    at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    If you have any idea or clue it would be greatly appreciated.
    Thanks in advance for every support,
    Jan

    Hi Jan,
    Most possible causes for encountering this issue are:
    Possible cause:
    - The ADS is installed on a plattform, that is currently not supported by SAP for ADS. Please check the avaliablity at: Product Availability Matrix
    - Mixing of different Netweaver releases (NW04 and NW04s) -> This is unfortunatelly not possibble the J2EE engine release has to match with the ABAP stack release in order connect them properly.
    - The ADS SP level does not match the J2EE engine SP level. -> Please update the software components to have the same support package level.
    Hope this helps!!
    Regards,
    Arafat

  • CRM ONLINE 2013: On Approval Of Quotation, Run Report, Generate PDF and Send an Email With PDF as attachment

    Hi,
    I am using CRM ONLINE 2013.
    How to automate below process?
    1. On Approval Of Quotation, Run Report.
    2. Generate PDF.
    3. Send an Email With PDF as attachment.
    As i have gone through many forums for this topic, but creating a plugin code for generating Report PDF is not possible in CRM ONLINE.
    So, What is the alternate way to do this..?
    Thanks.

    This is my entire code mentioned below:-
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
        <script type="text/javascript">
            if (typeof (SDK) == "undefined")
            { SDK = { __namespace: true }; }
            SDK.JScriptRESTDataOperations = {
                _context: function () {
                    if (typeof GetGlobalContext != "undefined")
                    { return GetGlobalContext(); }
                    else {
                        if (typeof Xrm != "undefined") {
                            return Xrm.Page.context;
                        else { return new Error("Context is not available."); }
                _getServerUrl: function () {
                    var serverUrl = this._context().getServerUrl()
                    if (serverUrl.match(/\/$/)) {
                        serverUrl = serverUrl.substring(0, serverUrl.length - 1);
                    return serverUrl;
                _ODataPath: function () {
                    return this._getServerUrl() + "/XRMServices/2011/OrganizationData.svc/";
                _errorHandler: function (req) {
                    return new Error("Error : " +
      req.status + ": " +
      req.statusText + ": " +
      JSON.parse(req.responseText).error.message.value);
                _dateReviver: function (key, value) {
                    var a;
                    if (typeof value === 'string') {
                        a = /Date\(([-+]?\d+)\)/.exec(value);
                        if (a) {
                            return new Date(parseInt(value.replace("/Date(", "").replace(")/", ""), 10));
                    return value;
                Create: function (object, type, successCallback, errorCallback) {
                    var req = new XMLHttpRequest();
                    req.open("POST", this._ODataPath() + type + "Set", true);
                    req.setRequestHeader("Accept", "application/json");
                    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
                    req.onreadystatechange = function () {
                        if (this.readyState == 4 /* complete */) {
                            if (this.status == 201) {
                                successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d);
                            else {
                                errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
                    req.send(JSON.stringify(object));
                Retrieve: function (id, type, successCallback, errorCallback) {
                    var req = new XMLHttpRequest();
                    req.open("GET", this._ODataPath() + type + "Set(guid'" + id + "')", true);
                    req.setRequestHeader("Accept", "application/json");
                    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
                    req.onreadystatechange = function () {
                        if (this.readyState == 4 /* complete */) {
                            if (this.status == 200) {
                                successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d);
                            else {
                                errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
                    req.send();
                Update: function (id, object, type, successCallback, errorCallback) {
                    var req = new XMLHttpRequest();
                    req.open("POST", this._ODataPath() + type + "Set(guid'" + id + "')", true);
                    req.setRequestHeader("Accept", "application/json");
                    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
                    req.setRequestHeader("X-HTTP-Method", "MERGE");
                    req.onreadystatechange = function () {
                        if (this.readyState == 4 /* complete */) {
                            if (this.status == 204 || this.status == 1223) {
                                successCallback();
                            else {
                                errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
                    req.send(JSON.stringify(object));
                Delete: function (id, type, successCallback, errorCallback) {
                    var req = new XMLHttpRequest();
                    req.open("POST", this._ODataPath() + type + "Set(guid'" + id + "')", true);
                    req.setRequestHeader("Accept", "application/json");
                    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
                    req.setRequestHeader("X-HTTP-Method", "DELETE");
                    req.onreadystatechange = function () {
                        if (this.readyState == 4 /* complete */) {
                            if (this.status == 204 || this.status == 1223) {
                                successCallback();
                            else {
                                errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
                    req.send();
                RetrieveMultiple: function (type, filter, successCallback, errorCallback) {
                    if (filter != null) {
                        filter = "?" + filter;
                    else { filter = ""; }
                    var req = new XMLHttpRequest();
                    req.open("GET", this._ODataPath() + type + "Set" + filter, true);
                    req.setRequestHeader("Accept", "application/json");
                    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
                    req.onreadystatechange = function () {
                        if (this.readyState == 4 /* complete */) {
                            if (this.status == 200) {
                                successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d.results);
                            else {
                                errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
                    req.send();
                __namespace: true
        </script>
        <script type="text/javascript">
            //Create Email and link it with Order as Regarding field
            var Xrm;
            var email = new Object();
            var ownerID = "";
            var CustomerId = "";
            if (window.opener) { Xrm = window.opener.Xrm; }
            else if (window.parent) { Xrm = window.parent.Xrm; }
            //Get ownerid who send email of quotation to customer
            function GetOwnerID() {
                var owner = Xrm.Page.getAttribute("ownerid").getValue();
                ownerID = owner[0].id;
                var ownerName = owner[0].name;
                var entityType = owner[0].entityType;
                GetToEmailGUID();
            //Get customerid who receive email of quotation from owner
            function GetToEmailGUID() {
                var Customer = Xrm.Page.getAttribute('customerid').getValue();
                CustomerId = Customer[0].id;
                var CustomerName = Customer[0].name;
                var entityType = Customer[0].entityType;
                //if CustomerId is type of "Account" then get Primary Contact id of that account
                if (entityType == "account") {
                    var contact = Xrm.Page.getAttribute("customerid").getValue();
                    if (contact === null) return;
                    var serverUrl = Xrm.Page.context.getClientUrl();
                    var oDataSelect = serverUrl + "/XRMServices/2011/OrganizationData.svc/AccountSet(guid'" + contact[0].id + "')?$select=PrimaryContactId";
                    var req = new XMLHttpRequest();
                    req.open("GET", oDataSelect, false);
                    req.setRequestHeader("Accept", "application/json");
                    req.setRequestHeader("Content-Type", "application/json;charset=utf-8");
                    req.onreadystatechange = function () {
                        if (req.readyState === 4) {
                            if (req.status === 200) {
                                var retrieved = JSON.parse(req.responseText).d;
                                CustomerId = retrieved.PrimaryContactId.Id;
                            else {
                                alert(this.statusText);
                    req.send();
            function CreateEmail() {
                GetOwnerID();
                email.Subject = "Email with Report Attachment";
                //Set The current order as the Regarding object
                email.RegardingObjectId = {
                    Id: Xrm.Page.data.entity.getId(),    //Get the current entity Id , here OrderId
                    LogicalName: Xrm.Page.data.entity.getEntityName()//Get the current entity name, here it will be “salesOrder”
                //Create Email Activity
                SDK.JScriptRESTDataOperations.Create(email, "Email", EmailCallBack, function (error) { alert(error.message); });
            // Email Call Back function
            function EmailCallBack(result) {
                email = result; // Set the email to result to use it later in email attachment for retrieving activity Id
                var activityPartyFrom = new Object();
                // Set the From party of the ActivityParty to relate an entity with Email From field
                activityPartyFrom.PartyId = {
                    Id: CustomerId, //"79EBDD26-FDBE-E311-8986-D89D6765B238",  // id of entity you want to associate this activity with.        
                    LogicalName: "contact"
                // Set the "activity" of the ActivityParty
                activityPartyFrom.ActivityId = {
                    Id: result.ActivityId,
                    LogicalName: "email"
                // Now set the participation type that describes the role of the party on the activity).
                activityPartyFrom.ParticipationTypeMask = { Value: 2 }; // 2 means ToRecipients
                // Create the from ActivityParty for the email
                SDK.JScriptRESTDataOperations.Create(activityPartyFrom, "ActivityParty", ActivityPartyFromCallBack, function (error) { alert(error.message); });
                var activityPartyTo = new Object();
                // Set the From party of the ActivityParty to relate an entity with Email From field
                activityPartyTo.PartyId = {
                    Id: ownerID, //"79EBDD26-FDBE-E311-8986-D89D6765B238",  // id of entity you want to associate this activity with.        
                    LogicalName: "systemuser"
                // Set the "activity" of the ActivityParty  
                activityPartyTo.ActivityId = {
                    Id: result.ActivityId,
                    LogicalName: "email"
                // Now set the participation type that describes the role of the party on the activity).    
                activityPartyTo.ParticipationTypeMask = { Value: 1 }; // 1 means Sender
                // Create the from ActivityParty
                SDK.JScriptRESTDataOperations.Create(activityPartyTo, "ActivityParty", ActivityPartyToCallBack, function (error) { alert(error.message); });
            //ActivityParty From Callback
            function ActivityPartyFromCallBack(result) {
            //ActivityParty To Callback
            function ActivityPartyToCallBack(result) {
                GetReportId('ABM_Infotech_SalesQuote');
            //Create attachment for the created email
            function CreateEmailAttachment() {
                //get reporting session and use the params to convert a report in PDF
                var params = getReportingSession();
                //Email attachment parameters
                var activitymimeattachment = Object();
                activitymimeattachment.ObjectId = Object();
                activitymimeattachment.ObjectId.LogicalName = "email";
                activitymimeattachment.ObjectId.Id = email.ActivityId;
                activitymimeattachment.ObjectTypeCode = "email",
                    activitymimeattachment.Subject = "File Attachment";
                activitymimeattachment.Body = encodePdf(params);
                activitymimeattachment.FileName = "Report1.pdf";
                activitymimeattachment.MimeType = "application/pdf";
                //Attachment call
                SDK.JScriptRESTDataOperations.Create(activitymimeattachment, "ActivityMimeAttachment", ActivityMimeAttachmentCallBack, function (error) { alert(error.message); });
            //ActivityMimeAttachment CallBack function
            function ActivityMimeAttachmentCallBack(result) {
                var features = "location=no,menubar=no,status=no,toolbar=no,resizable=yes";
                var width = "800px";
                var height = "600px";
                window.open(Xrm.Page.context.getServerUrl() + "main.aspx?etc=" + 4202 + "&pagetype=entityrecord&id=" + email.ActivityId, "_blank", features);
                // To open window which works in outlook and IE both
                //openStdWin(Xrm.Page.context.getServerUrl() + "main.aspx?etc=" + 4202 + "&pagetype=entityrecord&id=" + email.ActivityId, "_blank", width,
    height, features);
            //This method will get the reportId based on a report name that will be used in            getReportingSession() function
            function GetReportId(reportName) {
                var oDataSetName = "ReportSet";
                var columns = "ReportId";
                var filter = "Name eq '" + reportName + "'";
                retrieveMultiple(oDataSetName, columns, filter, onSuccess);
            function retrieveMultiple(odataSetName, select, filter, successCallback) {
                var serverUrl = Xrm.Page.context.getServerUrl();
                var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
                var odataUri = serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "?";
                if (select) {
                    odataUri += "$select=" + select + "&";
                if (filter) {
                    odataUri += "$filter=" + filter;
                $.ajax({
                    type: "GET",
                    contentType: "application/json; charset=utf-8",
                    datatype: "json",
                    url: odataUri,
                    beforeSend: function (XMLHttpRequest) {
                        XMLHttpRequest.setRequestHeader("Accept", "application/json");
                    success: function (data) {
                        if (successCallback) {
                            if (data && data.d && data.d.results) {
                                successCallback(data.d.results);
                            else if (data && data.d) {
                                successCallback(data.d);
                            else {
                                successCallback(data);
                    error: function (XmlHttpRequest, errorThrown) {
                        if (XmlHttpRequest && XmlHttpRequest.responseText) {
                            alert("Error while retrieval ; Error – " + XmlHttpRequest.responseText);
            function onSuccess(data) {
                reportId = data[0].ReportId.replace('{', ").replace('}', ");
                CreateEmailAttachment(); // Create Email Attachment
            //Gets the report contents
            function getReportingSession() {
                var pth = Xrm.Page.context.getServerUrl() + "/CRMReports/rsviewer/reportviewer.aspx";
                var retrieveEntityReq = new XMLHttpRequest();
                var Id = Xrm.Page.data.entity.getId();
                var quotationGUID = Id.replace('{', ""); //set this to selected quotation GUID
                quotationGUID = quotationGUID.replace('}', "");
                var reportName = "ABM_Infotech_SalesQuote"; //set this to the report you are trying to download
                var reportID = "751089AA-74B8-E211-B52F-D8D3855B253B"; //set this to the guid of the report you are trying to download
                var rptPathString = ""; //set this to the CRMF_Filtered parameter
                var strParameterXML = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'><entity name='quote'><all-attributes /><filter type='and'><condition
    attribute='quoteid' operator='eq' uitype='quote' value='" + quotationGUID + "' /> </filter></entity></fetch>";
                retrieveEntityReq.open("POST", pth, false);
                retrieveEntityReq.setRequestHeader("Accept", "*/*");
                retrieveEntityReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                rptPathString = "id=%7B" + reportID + "%7D&uniquename=" + Xrm.Page.context.getOrgUniqueName() + "&iscustomreport=true&reportnameonsrs=&reportName="
    +
                                reportName + "&isScheduledReport=false&p:ABMFilteredQuote=" + strParameterXML;
                //remove the part starting from &p:salesorderid if your report has no parameters
                retrieveEntityReq.send(rptPathString);
                var x = retrieveEntityReq.responseText.indexOf("ReportSession=");
                var ret = new Array();
                ret[0] = retrieveEntityReq.responseText.substr(x + 14, retrieveEntityReq.responseText.indexOf("&", x) - x - 14); //the session id
                x = retrieveEntityReq.responseText.indexOf("ControlID=");
                ret[1] = retrieveEntityReq.responseText.substr(x + 10, retrieveEntityReq.responseText.indexOf("&", x) - x - 10); //the control id
                return ret;
            var bdy = new Array();
            var bdyLen = 0;
            function concat2Bdy(x) {
                bdy[bdyLen] = x;
                bdyLen++;
            function encodePdf(params) {
                bdy = new Array();
                bdyLen = 0;
                var retrieveEntityReq = new XMLHttpRequest();
                var pth = Xrm.Page.context.getServerUrl() + "/Reserved.ReportViewerWebControl.axd?ReportSession=" + params[0] +
                "&Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=" + params[1] +
                "&OpType=Export&FileName=Public&ContentDisposition=OnlyHtmlInline&Format=PDF";
                retrieveEntityReq.open("GET", pth, false);
                retrieveEntityReq.setRequestHeader("Accept", "*/*");
                retrieveEntityReq.send();
                BinaryToArray(retrieveEntityReq.responseBody);
                return encode64(bdy);
            var StringMaker = function () {
                this.parts = [];
                this.length = 0;
                this.append = function (s) {
                    this.parts.push(s);
                    this.length += s.length;
                this.prepend = function (s) {
                    this.parts.unshift(s);
                    this.length += s.length;
                this.toString = function () {
                    return this.parts.join('');
            var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
            function encode64(input) {
                var output = new StringMaker();
                var chr1, chr2, chr3;
                var enc1, enc2, enc3, enc4;
                var i = 0;
                while (i < input.length) {
                    chr1 = input[i++];
                    chr2 = input[i++];
                    chr3 = input[i++];
                    enc1 = chr1 >> 2;
                    enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
                    enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
                    enc4 = chr3 & 63;
                    if (isNaN(chr2)) {
                        enc3 = enc4 = 64;
                    } else if (isNaN(chr3)) {
                        enc4 = 64;
                    output.append(keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4));
                return output.toString();
        </script>
        <script type="text/vbscript">
        Function BinaryToArray(Binary)
               Dim i
               ReDim byteArray(LenB(Binary))
               For i = 1 To LenB(Binary)
                     byteArray(i-1) = AscB(MidB(Binary, i, 1))
                     concat2Bdy(AscB(MidB(Binary, i, 1)))
             Next
              BinaryToArray = byteArray
       End Function     
        </script>
    </head>
    <body>
        <input type="button" onclick="CreateEmail();" value="Attach Report" />
    </body>
    </html>

Maybe you are looking for

  • Java version for PI 7.0

    Hi all, Our PI 7.0 is running on JVM 1.4.2_21 over Windows Server 2008.  For our desktop upgrade from XP to Win7, I had tested on PC to launch Integration Repository (design) and Integration Directory (Config): Success: - Win XP with JRE 1.4.2 - Win7

  • Optimizing a dynamic calc

    Hi In our measures dimension we have a MTD member, which is a dynamic calc.The formula is:if (not @ISLEV (Time,0))"AIP-Sales";else@SUMRANGE("AIP-Sales",@ILSIBLINGS(@CURRMBR(Time)));endif;The problem is that it takes very long to fetch on this member.

  • Problem with the FN + F1 in XP

    I've made a Dual install with XP for gaming. So here is my problem. I'm playing Crysis and need to switch FAST between first person and third person view sometimes. And I do that with the F1 key and I'm not able to change it since I'm running the gam

  • "NI Network Browser Error!" When Using 'DataSocket Select URL'

    We have two LV 7.1.1-built executables running on two different computers that are networked together.  Each executable starts the DataSocket Server on their own computer and then attempts to read from the other computer's DataSocket Server.  Everthi

  • Import extended IDOC to Integration Builder

    Hi All, I´m faced with the following situation using an Idoc with customer extension from a SAP R/3 40B System with my scenario: IDX2 - Import works fine, basistype and extension in place Integration Builder: Can ´t see the extension with or without