2009-03-25 21 views

Respuesta

9

Por lo que deduzco de a similar question asked elsewhere, esta "característica" no se incorpora a Visual Studio.

Sin embargo, parece MSDN has a macro you can use to print all of your code; tal vez usted puede utilizar esto, o algo por el estilo:

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

Perfecto: gracias :) –

6

Dejando a un lado los comentarios diversión de amantes de los árboles, vamos a suponer que desea salidas impresas en la solución de Visual Studio como PDF (y que no va a pedir lo que haces con eso más tarde).

Para las personas que usan VisualStudio hay un muy buen programa que solía venderse, pero que ahora está disponible para su descarga gratuita, llamado PrettyCode.Print for .NET 2.0. Está disponible para descargar here (la compañía retired el producto).

Lee en un proyecto de VisualStudio (trabaja con VS2005, VS2008 y VS2010) y permite imprimir una selección de archivos con varias opciones de impresión. Hace un trabajo bastante decente.

+0

no funciona para VS2010 – jaybny

+0

Funciona bien aquí para VS2013 –

+0

Usuario @uncanny ha agregado lo siguiente que no pude comprobar pero puede ser útil: Advertencia: Con VS2015 no funciona lea los archivos correctamente y puede suceder que se salte las funciones para imprimir. Esto no es necesariamente notorio y, por lo tanto, puede causar algunos dolores de cabeza si no verifica dos veces su PDF antes de imprimirlo. –

Cuestiones relacionadas