Source Code Printouts

The Microsoft Windows tool, Notepad++, is often used to print electronic text documents for use as exhibits in expert reports, depositions, and trial.

Configure Notepad++

Below is the Notepad++ dialog box which is used to configure how to print source code documents. This dialog box is accessed by Settings > Preferences > Print. It contains the configurations I have successfully used on multiple cases.

  • Check the “Print line number” box; even if you have this box checked, Notepad++ will only print line numbers if you also have them printed on the screen by checking the box accessed by Settings > Preferences > Margins/Borders/Edge > Line Number > Display.
  • Choose “Black on white” from the Color Options to avoid hard to read color text that gets harder to read if the printout is scanned and re-printed, especially if scanned and re-printed in greyscale.
  • Choose 0 for each Margin Setting to maximize content on the page since most cases limit the number of pages you can print.
  • For the following instructions, you might find the user interface of this dialog box to be a bit unintuitive: To configure the text that will appear in the Header and Footer, first put the cursor in the “Left part”, “Middle part”, or “Right part” of the “Header” or “Footer” you want to configure; then select a “Variable” using the dropdown, then click the “Add” button. This will add the variable to the part of the Header or Footer containing the cursor.
  • In the “Left part” of the “Header”, put the “Full file path name” Variable, which is identified by the string: “$(FULL_CURRENT_PATH)”.
    • For the Header, since the “Full file path name” is sometimes very long, the smallest most condensed font name and font size that I have found to be still legible in hardcopy printouts is “Times New Roman” and “9”, without being either Bold or Italic.
    • This setting is very important because Notepad++ neither wraps text in headers and footers nor warns you if it truncates header or footer text that is too long. This is particularly a problem since the part of the path it will truncate is some or all of the file name.  This is why the Footer should also specify the file name.
    • If possible, I suggest you ensure the root of the source code tree being cited is as short as possible; for example, “C:\Review\…” and not a folder which will use-up the limited number of characters you have available in the header of your printouts. An example of an unnecessarily long root folder name would be: “C:\Review installed January 12, 2024\…”, increasing the possibility that some full paths will be truncated in the header.
    • You might consider printing in landscape mode instead of portrait mode, but this is a trade-off. Landscape mode will accommodate longer headers, longer footers, and result in fewer wrapped source code lines, but will probably print fewer lines per page which might push you against your page limit.
  • In the Left part of the Footer, put the file name, which is identified by the string “$(FILE_NAME)”.
  • In the Middle part of the Footer, put the “Page” Variable, which is identified by the string: “$(CURRENT_PRINTING_PAGE)”
    • The page number is put in the middle part of the footer to leave room in the right part of the footer for the Bates number that the attorneys’ IT team will stamp on each page.
  • For the Footer, I use the same font name and font size as in the Header.
  • I have found that Notepad++ will wrap long lines for its printouts even if those same long lines are not wrapped on the screen.
  • For the body of the document, a Notepad++ printout will use the same font name and font size used for the screen. Therefore, the smallest most condensed fixed-width font name and font size that I have found to be still legible in hardcopy printouts is “Courier New” and “9”, without being either Bold, Italic, or Underline; see Settings > Style Configurator > Select theme : Default (stylers.xml) > Language : Global Styles ; Style : Global override > Font Style > Font name and Font size

Print without text highlights

Notepad++ will print the text highlights that appear on the screen at the time the print was made, if those highlights resulted from a text search or from a double-click on a word. For example, if you found a search term in the source code and then print that source code file, the highlighting of that search term will appear in the printout. This can give the other side a hint as to what you might consider to be important!

Further, any highlights will be printed in the color in which they appear on the screen, even if you have specified Settings > Preferences > Print > Color Options > Black on white. Therefore, if you print to PDF, those highlights will be in color in the PDF. However, if the IT staff which prints that PDF to paper uses a printer that can only print greyscale (or can print color, but is configured to only print greyscale), then the highlight of the text will probably obscure the text below it on the printed page, possibly enough that the text below the highlight will be illegible.

Print to PDF

After Notepad++ has been configured, you are ready to print source code. Every case I have been on required me to print to PDF so that the IT department can then print that PDF to paper after adding to each page a Bates number and a confidentiality statement, either in the footer or as a watermark.

Therefore, the review computer must have a PDF print driver installed on it. Because of the administrative privileges required, installing a PDF print driver cannot be done by the source code reviewer. The installation of a PDF print driver must have already been arranged by the legal firm hosting the review computer.

In Notepad++, to print the entire file, choose File > Print…, then choose the Printer to be the PDF print driver, which is often called “Microsoft Print to PDF”, then choose “All pages”, then click the Print button.

Save to “Files to Print” Folder

This will bring up a dialog box asking you where to install the PDF file. It is my experience that there is always a folder designated for PDF files requested to be printed. This folder is designated by the IT department of the legal firm hosting the review computer. Often it is on the desktop of the review computer and given a name similar to “Files to Print”, but check with the IT department of the IT department of the legal firm hosting the review computer. Further, you are usually required to create a sub-folder in that designated folder whose name is the date you are requesting the print. I recommend naming it using the following format “YYYY-MM-DD” so that multiple folders whose dates span two or more months or years will sort appropriately.

Name PDF File

It is my experience that the names of the PDF files in the “Files to Print” folder will only ever matter to me. That is, the printed copies of the PDF files I have queued for printing never have contained the name of the PDF file, they only contain the name of the source code file in the header and footer. Therefore, give the PDF files in the “Files to Print” folder meaningful names only if you will have to go back and reference them. When in a hurry to print many files, I have sometimes used “1.pdf”, “2.pdf”, etc.; though I have sometimes had to open such a file to see its contents, rather that just looking at the file name.

Ensure “.pdf” file extension

If you choose a PDF file name and that file name contains an extension, then you must also add a “.pdf” extension after the file name. For example, if you want to print to PDF a file: “foo.c”, you might want to give the PDF file a descriptive name to help you understand later in the day what you queued for printing earlier in the day. If, in the print dialog box, you specify the name of the PDF file to put in the “Files to Print” folder to be “foo.c”, then Microsoft Windows will assume that you are overriding the default “.pdf” extension to be the “.c” extension. The PDF print driver will still put the correct PDF contents in the resulting file, but the resulting file will be called “foo.c”; therefore, opening that file will attempt to interpret PDF contents as C code!

Therefore, if you choose a PDF file name that already has a dot (‘.’) in it, add a “.pdf” extension; for example, specifying “foo.c.pdf” as the PDF file name will create the PDF file named “foo.c.pdf”.

If you choose a PDF file name that does not have a dot (‘.’), then the ‘.pdf” extension will automatically be added for you; for example, specifying “1” as the PDF file name will create the PDF file named “1.pdf”.

Printing less than an entire file

Since most cases have page count limits, you often want to print less than an entire file. The process consists of the following steps:

  • From Notepad++, print the entire source code file to PDF (following the process mentioned above).
  • Open the PDF file containing the entire source code file, which will either open in the Microsoft Edge browser or in Adobe Acrobat or Adobe Acrobat Reader, if either of those Adobe products are installed.
  • From the Microsoft Edge browser (or from Adobe Acrobat or Adobe Acrobat Reader), print using the same PDF print driver as above, but this time specifying one or more page ranges in the Print dialog box.
  • Ensure that the PDF file containing the entire source code file is not in the “Files to Print” folder, else both the entire file and each of your specified page ranges will be printed.

Adobe Acrobat or Reader

I have found that Adobe Acrobat and Adobe Acrobat Reader are no longer necessary to be installed on Microsoft Windows review computers. If the review computer is running either Microsoft Windows 10 or Microsoft Windows 11, the Microsoft Edge browser comes pre-installed with those operating systems. The Microsoft Edge browser provides the necessary ability to display the PDF files you have created and print page ranges of the PDF files you have created.

Review the PDFs

Open each of the PDF files and inspect their contents. Ensure that each PDF file contains the all the pages you have printed, ensure there are line numbers for each line of source code, and ensure that the text in the header and footer on each page matches how you have configured them.

Alert: It is my experience that review computers often do not have the most recent versions of Microsoft Windows of the most recent versions of software tools installed on them. Older version of Microsoft Windows and Notepad++ will give you the option of printing only the text you have selected in the document. I do not recommend using this feature. I have seen printed source code which, while intending to print an entire document, entire page, or entire function, mistakenly prints the small number of lines selected at the time of printing the document.

Tell IT Staff you have Something to Print

The IT staff of the legal firm hosting the review computer does not always assume you have queued files to print on any given day. Further, the IT person that is responsible to print the PDF files that you have queued sometimes leaves the office before the end of your review day.

Therefore, if you know you will queue PDF files that must be printed as soon as possible, then alert the IT staff sometime during that day and ensure you have copied the PDF files into the “Files to Print\YYYY-MM-DD\” folder before that IT person leaves for the day so that they can copy those files off of the review computer and initiate the printing process as soon as possible.

Create Printout Log

Often counsel does not ask you to create a printout log, but it eventually becomes necessary. A printout log is often used to alert counsel to what to expect in the days between when you queue the PDFs for printing and when the printouts arrive at counsel’s offices, then it is used to verify that what counsel received is what you queued. Often you will be required to add Bates numbers to each range of pages in the printout log.

The printout log should contain the following information for each range of pages:

  • Date the page range was queued for printing
  • Name of the source code file containing the page range
  • Full path of the source code file containing the page range
  • First and last line number in the page range
  • Number of pages in the page range
  • Notes: for example, what functionality is in the page range