2009-03-25 9 views

risposta

9

Da ciò che ho ricavato da a similar question asked elsewhere, questa "funzionalità" non è incorporata in Visual Studio.

Tuttavia sembra MSDN has a macro you can use to print all of your code; forse è possibile utilizzare questo, o qualcosa di simile:

Sub PrintItemsInSelectedProject() 
    Dim proj As Project 
    Dim objProj As Object() 

    objProj = DTE.ActiveSolutionProjects 
    If objProj.Length = 0 Then 
     Exit Sub 
    End If 
    proj = DTE.ActiveSolutionProjects(0) 
    PrintItemsInSelectedProject(proj.ProjectItems) 
End Sub 

Private Sub PrintItemsInSelectedProject(_ 
    ByVal projitems As ProjectItems) 
    Dim projitem As ProjectItem 

    For Each projitem In projitems 
     If (IsPrintableFile(projitem) = True) Then 
      If (projitem.IsOpen(_ 
        EnvDTE.Constants.vsViewKindTextView)) Then 
       projitem.Document.PrintOut() 
      Else 
       Dim doc As Document 
       doc = projitem.Open(_ 
        EnvDTE.Constants.vsViewKindTextView).Document 
       doc.PrintOut() 
       doc.Close(vsSaveChanges.vsSaveChangesNo) 
      End If 
     End If 
     PrintItemsInSelectedProject(projitem.ProjectItems) 
    Next 
End Sub 

Function IsPrintableFile(_ 
     ByVal projItem As ProjectItem) As Boolean 
    Dim fileName As String 
    Dim extensions As _ 
     New System.Collections.Specialized.StringCollection 
    ' If you add a file to your project that is of 
    ' a type that can be printed, 
    ' then add the extension of that 
    ' file type to this list. 
    Dim exts As String() = {".cs", ".vb", _ 
     ".aspx", ".xsd", ".xml", ".xslt", _ 
     ".config", ".htm", ".html", ".css", _ 
     ".js", ".vbs", ".wsf", ".txt", ".cpp", _ 
     ".c", ".h", ".idl", ".def", ".rgs", ".rc"} 

    extensions.AddRange(exts) 
    fileName = projItem.FileNames(1) 
    Return extensions.Contains(_ 
     System.IO.Path.GetExtension(fileName).ToLower()) 
End Function 
+0

Perfetto: grazie :) –

6

Mettendo da parte i commenti divertenti da tree-huggers, supponiamo che si desidera per stampare la soluzione di Visual Studio in formato PDF (e noi non chiederà quello che fai con esso più tardi).

Per le persone che utilizzano VisualStudio c'è un programma molto bello che un tempo era venduto ma ora è disponibile per il download gratuito, chiamato PrettyCode.Print per .NET 2.0. È disponibile per il download here (la società retired del prodotto).

Si legge in un progetto VisualStudio (funziona con VS2005, VS2008 e VS2010) e consente di stampare una selezione di file con varie opzioni di stampa. Fa un lavoro abbastanza decente.

+0

non funziona per VS2010 – jaybny

+0

Funziona bene per VS2013 –

+0

Utente @uncanny ha aggiunto il seguente che non ho potuto verificare ma potrebbe essere utile: Attenzione: Con VS2015 non funziona leggere i file correttamente e può succedere che salti le funzioni da stampare. Questo non è necessariamente evidente e quindi può causare mal di testa se non si ricontrolla il pdf prima di stamparlo. –

Problemi correlati