Dwg, pdf and Sharepoint

How can I work with pdf and dwg files in sharepoint just like .doc files and such that are supported by microsoft?
I'm mainly concerned with versioning, that the engineers can open the file, from sharepoint, with autocad, make changes save it and when they save it they can post comments on what they changed.
I've got WSSv3 and SP designer

I am focussed on trying to sort out the AutoCAD side of things atm.
For AutoCAD you can use a cad connector:
http://www.cadtowin.com/
Cost: $2000/10 licenses + $500/year
http://www.cadnection.com/Internal.aspx?path=Home
CADnection is sold in 25 seat bundles.  Pricing starts at $ 9,875 USD per bundle
These are reasonably priced and would probably be ideal if you are running full AutoCAD, unfortunately I have to cater to AutoCAD LT users, and the CAD connectors tend not to work properly with AutoCAD LT.
Bamboo sell a server side service+web part that apparently maps sharepoint meta-data to/from dwg files:
http://store.bamboosolutions.com/sharepoint-dwg-parser-solution-accelerator.aspx
Cost: $5000/server + $500/year
Not sure about its functionality though.
There are also .dwg (etc) viewers around, but I am not really interested in paying for tool to view a cad file within sharepoint, and would rather just download the free AutoCAD viewing apps (Autodesk True view and Autodesk Design Review) and install as required.
Autodesk themselves just want you to use their own document control system, Vault, which comes in four versions.
The first level is free with a full license of AutoCAD, the next three add more and more functionality.
I think level 3 and level 4 feature sharepoint integration, but they cost approx £1000 per seat, and represent a complete system outside of sharepoint, not a little connector to make sharepoint work with AutoCAD files.
Another option may be:
http://www.organice.com/EN/Pages/Default.aspx 
I have looked at Organice, it is a good solution for engineering firms, and it works with AutoCAD LT (although some functionality cannot be implimented within LT).
It represents a whole "solution" for what almost all engineering firms need that sharepoint doesn't do.
So it's not just a cad conenctor, also a sharepoint explorer, auto document numbering tools, generally better document control and proper transmittal management.
But it is expensive, if you are interested, get your own quote, but I was quoted approx price for 100 users (depnding on exact licenses you want) would be around £50k including implimentation (consultants need to come to your office to set it up).
And also, you need add in the 20% annual support.
Organice might be worth it on account of the other things it does, but its alot of cash to stump up.
I find all these "solutions" to represent alot of cash, not very good value for money if all you really want is just a bit of add-in functionality to make sharepoint & autocad play together.
I know these software vendors have to run a business and pay their programmers etc, but it seems to me these just assume that if you've the cash for autocad, you can afford to line their pockets too.
Has anyone any better answers?

Similar Messages

  • I need to host a Shared PDF on SharePoint. If it is on SharePoint can only one person comment at a time? I know documents have to be checked out when using SharePoint. I need multiple users to be able to comment in real time and see comments in real time.

    I need to host a Shared PDF on SharePoint 2010. If it is on SharePoint can only one person comment at a time? I know documents have to be checked out when using SharePoint. I need multiple users to be able to comment in real time and see comments in real time. Is this possible?

    try here:
    http://www.bbb.org
    File a complaint with them. Verizon will call you to fix the blunder.
    But remember it is always up to the customer to insure what they are getting and what it costs. Don't trust the word of a sales person who makes their living on getting that sale. Lies, deceit or false promises will be and have been used by sales people for thousands of years.
    Good Luck

  • Converting a .dwg file to a .pdf and sending at Playbook Tablet

    Converting a .dwg  file to a .pdf and then save at documents in Playbook Tablet, the image is incomplete although the original .pdf is entire. plesase what  to do?
    Solved!
    Go to Solution.

    Two questions then.
    1 - Have you tried to use the Print to Go application?
    2 - Does the generated PDF appear correctly on your PC?
    1. If any post helps you please click the below the post(s) that helped you.
    2. Please resolve your thread by marking the post "Solution?" which solved it for you!

  • Adobe locks when loading pdf from sharepoint site

    We have sharepoint 2010 in our environment. most of our users have adobe reader x. Some have acrobat standard X as well. I personally have Adobe Reader XI. Some of our users see this issue
    Intermittently where when they are on the sharepoint site and they click on a pdf and say open as read only, if the user has adobe reader default to display in browser what happens is sometimes (not always) the page will just be blank and act like it is loading. This can take up to 8 minutes. Also, if the user has it open with the software and selects edit, the document takes just as long. I was wondering why the process of opening pdfs can be so slow sometimes. Any help is appreciated

    Hi MrSarcastic,
    Does this happen when the end users are trying to view the same pdf simultaneously?

  • Export to PDF in Sharepoint Custom web part.

    Hi,
    I want to export my page to pdf in sharepoint custm web part. I am using below code to export to pdf. when i click the export button i am getting below
    Error. how to resolve this error? pLease help me.
    Code
    protected void ExporttoPDF_Click(object sender, EventArgs e)
                Response.ContentType = "application/pdf";
                Response.AddHeader("content-disposition", "attachment;filename=ExporttoPDF.pdf");
                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                StringWriter sw = new StringWriter();
                HtmlTextWriter hw = new HtmlTextWriter(sw);
                this.Page.RenderControl(hw);
                StringReader sr = new StringReader(sw.ToString());
                Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
                HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
                PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
                pdfDoc.Open();
                htmlparser.Parse(sr);
                pdfDoc.Close();
                Response.Write(pdfDoc);
                Response.End();
    Error 
    Server Error in '/' Application.
    RegisterForEventValidation can only be called during Render();
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
    Exception Details: System.InvalidOperationException: RegisterForEventValidation can only be called during Render();
    Source Error:
    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
    Stack Trace:
    [InvalidOperationException: RegisterForEventValidation can only be called during Render();]
       System.Web.UI.ClientScriptManager.RegisterForEventValidation(String uniqueId, String argument) +11081278
       System.Web.UI.WebControls.TextBox.AddAttributesToRender(HtmlTextWriter writer) +455
       System.Web.UI.WebControls.WebControl.RenderBeginTag(HtmlTextWriter writer) +27
       System.Web.UI.WebControls.TextBox.Render(HtmlTextWriter writer) +27
       System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +240
       System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +42
       System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +240
       System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +240
       System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +411
       System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +87
       System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +53
       System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +240
       System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +42
       System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +240
       System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +240
       System.Web.UI.Page.Render(HtmlTextWriter writer) +38
       Microsoft.SharePoint.WebPartPages.WikiEditPage.Render(HtmlTextWriter writer) +207
       PayrollProject.PaySlip4Employee.PaySlip4EmployeeUserControl.btnPDF_Click(Object sender, EventArgs e) +425
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +115
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +140
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981
    Version Information: Microsoft .NET Framework Version:2.0.50727.5472; ASP.NET Version:2.0.50727.5474 

    Hi,
    We know that the Page.EnableEventValidation property is set to true(The default is true.),  Sharepoint Custom web(ASP.NET Web) validates that a control event originated from the user interface that was rendered by that control. A control registers its
    events during rendering and then validates the events during postback or callback handling.
    If you write client script freely,you might have to set "EnableEventValidation = false" in your C# code behind,but this method may be troublesome in SharePoint,
     so the method of "sadomovalex"( http://sadomovalex.blogspot.in/) is a good idea.
    Best Regards

  • UCM11g and SharePoint 2010 integration

    Hi everybody,
    I got a question if it's possible integrate Oracle UCM11g with Ms SharePoint2010. The SharePoint will be the user interface and UCM only the background storage. I found the threads about UCM10g.
    Where can I find the information about integration UCM11g and SharePoint?
    Thanks
    MB

    Hi MB,
    I am also facing same problem(question). I fallowed http://www.oracle.com/technetwork/middleware/webcenter/owcs-ps3-sharepoint-wcs-wp-335282.pdf link for ingetration sharepoint 2007 with webcenterspaces in this im using PS3 webcenter suite.
    have u done this.
    i hope in some of link i found SharePoint 2010 doesn't webcenter spaces(ps3).
    http://docs.oracle.com/cd/E21764_01/webcenter.1111/e12405/wcadm_documents.htm#BABDHCEC
    Regards
    Shankar

  • Do you need Acrobat installed on every workstation in order to edit PDFs on SharePoint?

    Do you need Acrobat installed on every workstation in order to edit PDFs on SharePoint?

    you should deactivate (help>deactivate) that installation on the old workstation.  then download and install on your new work station using your serial number.  (ie, make sure you can find your serial number - if you need help with this, let us know.)
    Downloads available:
    Suites and Programs:  CC | CS6 | CS5.5 | CS5 | CS4 | CS3
    Acrobat:  XI, X | 9,8 | 9 standard
    Premiere Elements:  12 | 11, 10 | 9, 8, 7
    Photoshop Elements:  12 | 11, 10 | 9,8,7
    Lightroom:  5 | 4 | 3
    Captivate:  7 | 6 | 5
    Contribute:  CS5 | CS4, CS3
    Download and installation help for Adobe links
    Download and installation help for Prodesigntools links are listed on most linked pages.  They are critical; especially steps 1, 2 and 3.  If you click a link that does not have those steps listed, open a second window using the Lightroom 3 link to see those 'Important Instructions'.

  • Export wiki pages into PDF AND/OR word document

    We are working on an Enterprise Wiki Site collection inside SharePoint 2013. and we need to be able to export existing wiki pages  into pdf and/or MS word ? so is this possible out-of-the-box to achieve using SharePoint ? if the answer is No , then
    are there any 3rd party tools that can achieve this ?
    Thanks

    Hi,
    Here is a blog from MSDN for your reference:
    Export SharePoint Wiki to Word/PDF without 3rd party tools
    http://blogs.msdn.com/b/thomsven/archive/2011/09/09/export-sharepoint-wiki-to-word-pdf-without-3rd-party-tools.aspx
    Or use 3rd party solutions, such as the
    Wiki Publisher from Bamboo solutions.
    Best Regards
    TechNet Community Support
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
    [email protected].
    thanks for the reply, i tried installing the Wiki Publisher from Bamboo , but i got the following error during installtion :-
    ***** Bamboo Core V2 (Prerequisite Component) *****
    ***** ERROR *****
    Timeout error
    CodePlex.SharePointInstaller.InstallException: Timeout error ---> CodePlex.SharePointInstaller.InstallException: Timeout error
    at CodePlex.SharePointInstaller.InstallProcessControl.WaitForJobCompletionCommand.Execute()
    --- End of inner exception stack trace ---
    at CodePlex.SharePointInstaller.InstallProcessControl.WaitForJobCompletionCommand.Execute()
    at CodePlex.SharePointInstaller.InstallProcessControl.TimerEventInstall(Object myObject, EventArgs myEventArgs)
    [17/04/2015 02:12:18] The Solution was not removed. Make sure all jobs against the solution are executed.
    ***** Bamboo SharePoint Wiki Publisher *****
    ***** ERROR *****
    Timeout error
    CodePlex.SharePointInstaller.InstallException: Timeout error ---> CodePlex.SharePointInstaller.InstallException: Timeout error
    at CodePlex.SharePointInstaller.InstallProcessControl.WaitForJobCompletionCommand.Execute()
    --- End of inner exception stack trace ---
    at CodePlex.SharePointInstaller.InstallProcessControl.WaitForJobCompletionCommand.Execute()
    at CodePlex.SharePointInstaller.InstallProcessControl.TimerEventInstall(Object myObject, EventArgs myEventArgs)
    [17/04/2015 02:27:38] The Solution was not removed. Make sure all jobs against the solution are executed
    not sure what could be casing this ?

  • Adobe 3D, Ver8 and SharePoint 2010

    We recently updated from SharePoint 2007 to SharePoint 2010. We use the Adobe Shared Review (Link to Docu) process to send out documents for markup/comment/review. After the conversion, the documents are still going to the correct review folder as before for all writers but two.
    These writers recently had updates made to their PCs and so we went back into SharePoint and recreated new workspaces for them. Next, they started an Adobe Shared Review and recreated a new folder location, typed in the SharePoint Site URL, clicked Get Workspaces, and the workspaces appear in the list.
    Each workspace listed has the following document libraries listed: Master Page Gallery and Shared Documents. If these writers choose the Shared Documents library and click Verify, the shared folder location is not valid. If they choose Master Page Gallery and verify, the shared folder location is valid and they are able to add the new folder and complete the Shared Adobe Review process. However, this is not the folder to store and collect document comments/markups because the originator cannot see that any new comments/markups were added by a reviewer.
    I am one who is able to send out a review and have the PDF and comment collection folder added to the correct location. However, I did try to add a new folder and I also had a status of shared folder location is not valid when choosing Shared Documents from the library listing.
    Is there something different from SharePoint 2007 to 2010 that occurred during conversion? Can it be that the correct shared folder location needs synchronizing somehow and if so, how? Any insight is greatly appreciated.

    This is a known problem in Acrobat 8/9. You need to upgrade to Acrobat X where this is fixed.

  • How to integrate AD CS and SharePoint Server

    Dear Expert,
    I will set up the lab for digital signature, I have AD CS and SharePoint Server in separate machine.
    How do I integrate? and it's possible to use SharePoint for digital signature solution.
    Can you share How to?

    Hi,
    For the documents which are stored on  SharePoint server, user can easily find out who had edited the documen by the ModifiedBy column, and the version history, so there is no need to  sign them.
    If you  want to provide furthur protect after the document has been downloaded from SharePoint, you can consider AD RMS integration with SharePoint, i.e., the information right management.
    For more information, you can have a look at the blogs:
    http://blogs.msdn.com/b/sowmyancs/archive/2010/02/12/how-to-enable-active-directory-certificate-service-in-your-windows-server-2008-r2.aspx
    http://technet.microsoft.com/en-us/library/cc545900.aspx
     http://download.microsoft.com/download/3/6/B/36B2F4F5-55AD-4D64-BC5B-62B536E35A62/SharePoint-2013-Configuration-Guidance-for-21-CFR-Part-11%20v2.pdf
    Best Regards,
    Eric
    Eric Tao
    TechNet Community Support

  • Jasper report  for pdf and html

    Hi friends I am Gopi
    I am doing project in servlet and jasperreport in tomcat.
    I save my path jasperreport for Html and Pdf reports.
    when i click the jsp button Export to pdf and Export to Html,
    I need to open this files in new pdf application and new browser window .
    if(pdf1.equals("html"))
    JasperExportManager.exportReportToHtmlFile(jasperPrint, path +"\\" + reportName + ".html");
         exporter = new JRHtmlExporter();
              exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
              exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
              exporter.exportReport();
         if(pdf1.equals("pdf"))
              System.out.println("PDF");
              response.setContentType("application/pdf");
              JasperExportManager.exportReportToPdfFile(jasperPrint,path +"\\" + reportName + ".pdf");
              exporter = new JRPdfExporter();
              exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
              exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
              exporter.exportReport();          
    pls help me...

    gopikannang wrote:
    when i click the jsp button Export to pdf and Export to Html,
    I need to open this files in new pdf application and new browser window . Use the target attribute of the <form> or the <a> element which opens the PDF file. Set its value to "_blank".
    Learn HTML. There is a nice tutorial at w3schools.com and a good specification at w3.org.

  • Dynamic CRM 2013 Online how to execute Report, generate PDF and email

    Dear All,
    I am using Dynamic CRM 2013 online. For quote, I have workflow and Dialogue processes for review process. On approval, I want the system to generate a PDF of quote report, attach the PDF and email it to the Customer.
    Better I would like, When approver, clicks on the approve button, the system should auto generate a PDF of quote report, attach the PDF and email it to the Customer, without any further input from the user. If its not possible, I may have to put button on
    quote form.
    I am using the attached code, but facing various issues.
    1. Under prepare the SOAP Message coding part, I am not sure what should be the below URL for CRM 2013 Online?
    xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
    2. What should be the emailid here? Is it Recepient Contact id(Guid) ?
    var emailid = resultXml.selectSingleNode("//CreateResult").nodeTypedValue;
    alert("emailid" + emailid.toString());
    3. Using this code, not able to create Entity for "ActivityMimeAttachment", I am getting newEntity as undefined.
    Below is the code I am using. Please check and help me out, where I am going wrong. Let me know if any better way to implement it. At present, I have put one button on quote form, on click event, below code will get executed.
    <!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">
    var Xrm;
    if (window.opener) { Xrm = window.opener.Xrm; }
    else if (window.parent) { Xrm = window.parent.Xrm; }
    function getReportingSession() {
    var reportName = "Quotation_Report"; //set this to the report you are trying to download
    var reportId = "7C39D18F-1DC6-E311-8986-D89D6765B238"; //set this to the guid of the report you are trying to download
    var recordid = Xrm.Page.data.entity.getId();
    // recordid = recordid.substring(1, 37); //getting rid of curly brackets
    alert(recordid);
    var pth = Xrm.Page.context.getServerUrl() + "/CRMReports/rsviewer/reportviewer.aspx";
    var retrieveEntityReq = new XMLHttpRequest();
    retrieveEntityReq.open("POST", pth, false);
    retrieveEntityReq.setRequestHeader("Accept", "*/*");
    retrieveEntityReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    retrieveEntityReq.send("id=%7B" + reportId + "%7D&uniquename=" + Xrm.Page.context.getOrgUniqueName() + "&iscustomreport=true&reportnameonsrs=&reportName=" + reportName + "&isScheduledReport=false");
    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;
    function createEntity(ent, entName, upd) {
    var jsonEntity = JSON.stringify(ent);
    var createEntityReq = new XMLHttpRequest();
    var ODataPath = Xrm.Page.context.getServerUrl() + "XRMServices/2011/OrganizationData.svc";
    createEntityReq.open("POST", ODataPath + "/" + entName + "Set" + upd, false);
    createEntityReq.setRequestHeader("Accept", "application/json");
    createEntityReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    createEntityReq.send(jsonEntity);
    var newEntity = JSON.parse(createEntityReq.responseText).d;
    alert("new entity" + newEntity);
    return newEntity;
    function createAttachment() {
    var params = getReportingSession();
    var recordid = Xrm.Page.data.entity.getId();
    alert("recordid " + recordid);
    var orgName = Xrm.Page.context.getOrgUniqueName();
    var userID = Xrm.Page.context.getUserId();
    //create email record
    // Prepare the SOAP message.
    var xml = "<?xml version='1.0' encoding='utf-8'?>" +"<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'" +
    " xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'" +
    " xmlns:xsd='http://www.w3.org/2001/XMLSchema'>" +
    "<soap:Header>" +
    "</soap:Header>" +
    "<soap:Body>" +
    "<Create xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>" +
    "<entity xsi:type='email'>" +
    "<regardingobjectid type='quote'>" + recordid + "</regardingobjectid>" +
    "<subject>" + "Email with Attachment4" + "</subject>" +
    "</entity>" +
    "</Create>" +
    "</soap:Body>" +
    "</soap:Envelope>";
    // Prepare the xmlHttpObject and send the request.
    var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
    xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
    xHReq.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Create");
    xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    xHReq.setRequestHeader("Content-Length", xml.length);
    xHReq.send(xml);
    // Capture the result
    var resultXml = xHReq.responseXML;
    // alert("resultXml " + resultXml);
    // Check for errors.
    var errorCount = resultXml.selectNodes('//error').length;
    if (errorCount != 0) {
    alert("ERROR");
    var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
    alert(msg);
    var emailid = resultXml.selectSingleNode("//CreateResult").nodeTypedValue;
    alert("emailid" + emailid.toString());
    //var emailid = userID;
    var post = Object();
    post.Body = encodePdf(params);
    var email = new Array();
    email[0] =new Object();
    email[0].id = emailid;
    email[0].entityType ='email';
    post.Subject ="File Attachment";
    post.AttachmentNumber = 1;
    post.FileName ="Report.pdf";
    post.MimeType ="application/pdf";
    post.ObjectId = Object();
    post.ObjectId.LogicalName ="email";
    post.ObjectId.Id = email[0].id;
    post.ObjectTypeCode ="email";
    alert(post.ObjectId.Id);
    createEntity(post,"ActivityMimeAttachment", "");
    alert("created successfully");
    email.Subject = "Your Order";
    //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, // 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, // 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) {
    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();
    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);
    </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="createAttachment();" value="Attach Report" />
    </body>
    </html>
    Thanks. and waiting for your valuable comments.
    - Mittal

    Hello,
    Yes, I was able to make my code working as below. Tested on CRM online 2013.
    <!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 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('Quotation');
    //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 = "Report.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 = "Quotation"; //set this to the report you are trying to download
    var reportID = "7C39D18F-1DC6-E311-8986-D89D6765B238"; //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:CRMAF_Filteredquote=" + 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>
    Thank you,
    Mittal.

  • HELP: I need to link a PDF within PDF and be able to open and return to original PDF

    I have a master PDF and have attached 7 supplemental PDF documents. I created "click here" icons and used the steps below so that the linked document would open. The problem is, once I open the supplemental PDF, it closes the original master. I would like to close the linked document and return to the master view. Is there a way to do this?
    Or is there a way to do this from InDesign? I created master file in InDesign and exported as an Interactive PDF.  I created the buttons and linked them to external files. This works great as long as the master PDF and the links are all in one file, but that is a pain to send to a viewer. Ideally, I want to be able to send the master PDF to a viewer and not have to send a links folder. Is there a way to embed the supplemental PDFs into the master so that they are all combined into one file AND have the ability to use buttons to call up one of the attachments, close, and return to the original?
    Thanks in advance!!

    I want to do the same thing that the original poster of this question wants to do. I haven't worked extensively with Acrobat so am finding by trial and error the several ways PDFs within PDFs can be accomplished. I'm using a trial version of Acrobat Pro X and have experimented with three options.
    1 - I've created a Portfolio and am impressed with what that can do, though I think it may be "overkill" for the current size of my project.
    2 - I've also tried creating this project as an index but discovered that the links I'd created in the original docs didn't work when I moved the index and its contents (keeping the file structure the same). I presume this means the links are absolute? I also don't understand how it is that users search a .pdx file, or how to present what I want to be the original opening PDF of indexed docs.
    3 - I've also thought to create one PDF with attached PDFs, so I'd like to have you expand on your comment about creating a master document and attaching documents to it.
    The specifics of my project are these: I have created a master directory that contains approximately 120 links. Most of the links are repeated three times (users can find in the directory the item they need in three different ways: alphabetically, by application, or by module; hence each item listed once in each of three categories). I want to make that directory the "master" PDF that users open first, and then locate within that PDF the 5-8 PDF documents that contain all of the places to which the directory links. I want the "master" directory to be self-contained and completely "portable" as far as all of the documents and links are concerned so that when I make the PDF available from our website users can open the master from there or copy it and have all of the docs they need with all of the links intact. I think I prefer that all docs open in new windows, since returning to the original doesn't seem very user friendly in Acrobat (I like the tabs feature in FoxIt when multiple PDFs are open...).
    I'd like an opinion about the best way to accomplish what I need to do, and am also wondering whether there are other options I am unaware of. BTW, the reason we've decided to document this whole project in PDFs rather than HTML is because this project contains a big number of tables, which do not look consistent across various browsers (i.e., most of our tables look fine in IE and Firefox, but awful in Google Chrome...). In researching my issue on the Acrobat Windows forum I see that rendering tables in Acrobat is also an issue that seems to be unresolved.
    Thank you!

  • How can I copy text from PDF and include the source filename in the pasted selection?

    I'm a biologist and frequently cut-and-paste notes from PDFs of scientific articles.  I name all of the PDF articles with their PubMed ID, a short unique identifier (e.g. 19397482.pdf).  When I take notes, I will select a few sentences from the PDF and then paste them into a text editor for later reference. 
    Can anyone suggest a method or script that would allow me to paste the copied text with the Pubmed filename included in a single action?  I would want the pasted output it to look something like this, with the filename appended to the end:
    Of the transcripts that were significantly different, there was a greater number of transcripts that were down-regulated in the IVC embryos (380) than the number of transcripts that were up-regulated (208).  [20668257.pdf]
    This would really help me to properly cite information sources during the writing process.  I know there are bibliography managers that might be able to do something like this, but I prefer to read the PDF articles directly in Preview and select the text as I am reading. 
    Thanks very much for any suggestions / ideas.
    jjw

    To copy and paste in a single action:
    tell application "Preview" to activate
    tell application "System Events" to tell process "Preview"
        -- Get the PubMed ID:
        get the title of the front window
        set thePubMedID to word 1 of result
        -- Copy the selected text to the clipboard:
        keystroke "c" using {command down} -- ⌘C
        delay 0.25 -- adjust if necessary
        -- Add the PubMed ID to the contents of the clipboard:
        set theNotes to the clipboard
        set the clipboard to (theNotes & space & "[" & thePubMedID & ".pdf]")
    end tell
    tell application "Notational Velocity" to activate
    tell application "System Events"
        -- Paste the contents of the clipboard to the end of the Notational Velocity document
        key code 125 using command down -- ⌘↓
        keystroke return & return
        keystroke "v" using {command down} -- ⌘V
    end tell

  • SSO for MS outlook, OWA and Sharepoint using SSO 2.0

      Hi,
    We have installed the secure login server 2.0. And configured SSO for SAP (ABAP, JAVA) systems using X.509 certificate. it is working fine.
    We want to configure SSO for some non SAP applications like MS outlook, Outlook Web Access, Sharepoint.
    I dont see any documentation in the implememntation guide of NW SSO 2.0 for how to configure these non sap applications to accept X.509 certificates.
    Anyone please share the details of how to configure SSO for MS outlook, OWA and Sharepoint
    Regards,
    Yogesh Kumar D

    Hello Yogesh,
    Secure Login Server generates short lived certificates, this means after a configured time (or even
    after an logout, because the Secure Login Client does not persist the private
    keys in the file system) the private key and certificate is gone.
    So using this for long term encryption is not practicable (because decryption
    will be very very hard after a certificate/key renew...)
    For a signature only solution the problem would be the signature validation, because it needs the
    public key/certificate from the signer. This is usually included into the
    PKCS#7 signature format, but its not guaranteed (depends on the application settings as example in outlook etc.). So this would be theoretically possible, but unlikely.
    For long term encryption/signatures you need persistence certifkate/keys.
    So thats the reason there is not documentation about that use case in Secure Login Server.
    best regards
    Alex

Maybe you are looking for

  • Macbook Air is not turning on or repairing?

    Hello, I know there are a lot of similar discussions but my situation seems to be a little bit different. I turned my Macbook Air on the other day and it completely froze at the login screen, the keyboard and mouse were unresponsive, so I forced the

  • Can I switch all my apple devices to one account ...

    and still access songs, books or programs that were purchased with the abandoned accounts? If I permanently switch accounts on all my apple devices (iPad, MacBook Pro, iPhone, iMac, 2 iPods, Apple TV, Airport Express) to align with one account for iT

  • Settlement of proj cost to AUC and final settmnt to f.asset for closed proj

    Hi PS Experts, If the project (Investment Projects) has been closed and AUC has been fully settled to final asset but in some cases they still received invoices for the same project. Would it be correct if they undo closed and undo teco the project a

  • RV document type psoting line item wise...

    Hi experts, My requirement is i am posting a Invoice with 2 line items ( service related Billing) from SD module with doc type RV. i am getting the  report in FBL5N 6700147 6700147 RV 22.07.2009 22.07.2009 123.00 6700147 6700147 RV 22.07.2009 22.07.2

  • Fetching molga from org unit

    hi all, to fetch country grouping fron org unit i have to first read infotype 1008 then read t500p.is there any table from which i can directly fetch molga from org unit. please help pratyush