Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

I'm thinking of adding a print button to my list ribbon , the minute I click on this button a print dialog appears showing the list of the available printers on my computer. so this printdialog i was intending to do it in my custom element of the button :

<CustomAction Id="Ribbon.Library.PROGED"
            Location="CommandUI.Ribbon"
            RegistrationId="10999"
            RegistrationType="List">
<CommandUIExtension>
  <CommandUIDefinitions>
    <CommandUIDefinition Location="Ribbon.Library.Groups._children">
      <Group Id="Ribbon.Library.PRO"
             Title="PROGED"
             Template="Ribbon.Templates.Flexible2"
             Sequence="10000">
        <Controls Id="Ribbon.Library.PRO.Controls">
          <Button Id="Ribbon.Library.PRO.PrintAllFiles"
                  Command="PrintAllFiles"
                  Image32by32="_layouts/images/PRO.Ribbon/logopro_32.png"
                  LabelText="Print All Files"
                  TemplateAlias="o1"></Button>
        </Controls>
      </Group>
    </CommandUIDefinition>
    <CommandUIDefinition Location="Ribbon.Library.Scaling._children">
      <MaxSize Id="Ribbon.Library.PROGED.Scaling.MaxSize"
               GroupId="Ribbon.Library.PRO"
               Size="LargeLarge" />
    </CommandUIDefinition>
  </CommandUIDefinitions>
  <CommandUIHandlers>
    <CommandUIHandler Command="PrintAllFiles"
                     CommandAction="javascript:function CallDETCustomDialog('PrintAllFiles',dialogResult, returnValue)
                                  {
                                  SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK);
                                  }
                                  var options = {
                                  url: '{SiteUrl}' + '/_layouts/YBBEST/TitleRename.aspx?List={ListId}&amp;ID={ItemId}',
                                  title: 'Rename title',
                                  allowMaximize: false,
                                  showClose: true,
                                  width: 500,
                                  height: 300,
                                  dialogReturnValueCallback: CallDETCustomDialog };
                                  SP.UI.ModalDialog.showModalDialog(options);"/>

  </CommandUIHandlers>

</CommandUIExtension>

It's just I didn't know how to translate this .net regular printing dialog to javascript SP.UI printing dialog:

    public void printall(object sender, System.EventArgs e)
    {
        PrintDialog pd  = new PrintDialog();
        pd.PrinterSettings = new System.Drawing.Printing.PrinterSettings();
        this.Close();
        pd.ShowDialog();
    }
share|improve this question
    
I'm not sure if I understand the question. Are you looking for CommandAction="javascript: window.print()" or is that what you already have? –  eirikb Oct 22 '12 at 9:56
    
no that will print the current window , instead I want to print a selected file when I'm having a collection of printers, so I need a printdialog as the same of .net to choose my printer, i just didn't know how to call it in sharepoint –  Glolita Oct 22 '12 at 10:06
    
As far as I know you can only show the print dialog that the browser support. But if you want to force a print dialog you could always add a JavaScript to AdditionalPageHead and have this check for something in the URL onload (querystring like ?output=print or a hash #print, and if this is given trigger window.print. Example with jQuery: $(function(){window.location.hash.match(/print/) && window.print()}) –  eirikb Oct 22 '12 at 10:09
    
What you're trying to do is not possible in Javascript, as it only has access to the browser capabilities, and cannot access system resources like printers. Instead, you could add a Silverlight control to your page that handles the print functionality, and pass the file contents to it. –  Mihai Oct 24 '12 at 13:52
add comment

1 Answer

I think if you isolate the issue away from SharePoint and post on StackOverflow you'll get a bigger response. If I'm right in thinking you want to print a selection using javascript - I can propose a 'dirty' way of achieving this - simply construct a page from the selection by writing the selection to a fully constructed html page (so just the selected div, for example, inside body tags inside html tags) and print that whole page.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.