2009-03-25 10 views

Odpowiedz

9

Z tego, co zbieram z a similar question asked elsewhere, ta "cecha" nie jest wbudowana w Visual Studio.

Jednak wygląda na to, że MSDN has a macro you can use to print all of your code; być może można to wykorzystać, lub coś podobnego:

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

Idealny. dziękuję :) –

6

Pomijając zabawy komentarzy od drzewa-Huggers załóżmy chcesz wydruk Visual rozwiązanie Studio jako PDF (i nie będziemy pytać, co robisz z nim później).

Dla osób używających VisualStudio istnieje bardzo ładny program, który był sprzedawany, ale jest już dostępny do pobrania za darmo, o nazwie PrettyCode.Print dla .NET 2.0. Jest on dostępny do pobrania here (produkt firmy retired).

Odczytuje w projekcie VisualStudio (działa z VS2005, VS2008 i VS2010) i pozwala wydrukować wybrane pliki z różnymi opcjami drukowania. Wykonuje całkiem przyzwoitą pracę.

+0

nie pracuje dla VS2010 – jaybny

+0

działa dobrze tutaj VS2013 –

+0

@uncanny Filmaster dodawali następujący którego nie mogłem sprawdzić, ale może to być przydatne: Ostrzeżenie: z VS2015 to nie robi poprawnie odczytuje pliki i może się zdarzyć, że pominie funkcje do wydrukowania. Niekoniecznie jest to zauważalne i może powodować pewne bóle głowy, jeśli nie sprawdzisz dwukrotnie swojego pliku PDF przed jego wydrukowaniem. –

Powiązane problemy