我已经为此寻找答案,但相关的解决方案似乎与'print'
解释器有关。
我想知道是否可以从 IDLE 以彩色打印(物理上在纸上)python 代码?
我去了:File > Print Window
在IDLE中,它似乎只是打印出黑白版本而没有提示是否打印彩色等。
编辑:
似乎这可能不可用,因此可以选择将代码复制到 SciTE 之类的文本编辑器并从那里打印 - 就像默认的 IDLE 语法突出显示一样。
我已经为此寻找答案,但相关的解决方案似乎与'print'
解释器有关。
我想知道是否可以从 IDLE 以彩色打印(物理上在纸上)python 代码?
我去了:File > Print Window
在IDLE中,它似乎只是打印出黑白版本而没有提示是否打印彩色等。
编辑:
似乎这可能不可用,因此可以选择将代码复制到 SciTE 之类的文本编辑器并从那里打印 - 就像默认的 IDLE 语法突出显示一样。
IDLE 无法做到这一点,但您可以通过间接方式做到这一点:使用 LaTeX 以 IDLE 颜色格式化您的脚本。
该listings
包支持 python 的类似 IDLE 的着色,但它隐藏得很好:您必须知道包含listings
手册中提到的“首选项文件”,但没有对其功能的描述。以下几乎最小的示例会将您的脚本myscript.py
转换为 IDLE 颜色的彩色 PDF。
\documentclass{article}
\usepackage{listings}
\input{listings-python.prf} % defines the python-idle-code style
\usepackage{textcomp} % Needed for straight quotes
\lstset{
basicstyle=\normalsize\ttfamily, % size of the fonts for the code
language={Python},style={python-idle-code},
showstringspaces=false,
tabsize=4,
upquote=true, % Requires textcomp
}
\oddsidemargin=-0.5cm
\textwidth=7in % This just fits 80 characters at 10pt
\begin{document}
\lstinputlisting{myscript.py}
\end{document}
您还可以在真实的 LaTeX 文档中包含代码片段。
可用性:您至少需要listings
版本 1.5b (2013/08/26)。Texlive 2013 的用户必须从 CTAN 下载它(例如使用命令行 texlive 管理器,tlmgr
)。它是 TexLive 2016 的一部分。
不幸的是,CTAN 版本似乎仍然存在问题:首选项文件listings-python.prf
位于包的文档文件夹中,而不是tex/latex/listings
TeX 可以找到的位置。您需要手动移动它才能使包含起作用。
使用名为 IDLE2HTML.py 的 IDLE 扩展(搜索这个)。这允许 IDLE 打印到其样式表中有颜色的 HTML 文件。然后将 HTML 文件保存为 PDF(颜色仍然存在)。
最简单的方法是使用Notepad++打开“.py”文件,您可以在其中选择和修改您的设置和首选项(任何您想要的 Python 代码主题)以将 Python 文件导出为彩色 PDF 文件(使用 PDF 虚拟打印机) 或直接打印 :-) 。
或者
如果您使用的是VS 代码,则只需安装 ( PrintCode ) 扩展程序并在安装后:
它将使用您的默认 Internet 浏览器将 python 文件导出为HTML,您可以在那里直接打印它或使用虚拟打印机,将您的 python 文档打印为彩色 PDF。
一个好的和简单的解决方案是使用IDLE2HTML,一个 IDLE 的扩展。
该工具允许 IDLE 将代码从编辑器窗口(或交互式外壳)保存到 HTML 文件,
颜色包含在 CSS 格式中。在此之后,可以打印文件(根据要求)或其格式化代码与其他程序(如文字处理器)一起使用。
目前下载 Python 文件并查看一些说明的可靠网站是 Python 包索引 (PyPI) - 该页面是https://pypi.python.org/pypi/IDLE2HTML或pip
模块,内置于较新的 Python 版本,可以为您安装文件。
此方法的一个有用优势是它从 IDLE获取颜色格式,而不是花时间分析代码和使用存储的颜色(许多其他解决方案都这样做)。这意味着它使用实际的配色方案并适用于不同的 IDLE 主题,例如“IDLE Dark”。这应该会导致使用更少的资源和更短的代码。
此外,当前的扩展(2.0 版)可能适合在保存数据时使用不同的文件格式,因为它的代码非常简单。
关于它如何工作的一些细节:
由于该工具是作为扩展运行的 Python 代码,因此它可以访问 IDLE 提供的特殊变量,其中包含有关编辑器窗口的数据。extend.txt
Python 扩展文件idlelib
(运行编辑器)描述了这个变量,称为editwin
:
IDLE 扩展类使用单个参数 `editwin' 实例化,它是一个 EditorWindow 实例。
它还包括一些其他关于扩展 IDLE 的文件,例如“config-main.def”和“config-extensions.def”。官方 Python 文档有更多信息。
安装说明:
将 IDLE2HTML.py 复制到 python 安装的“idlelib”文件夹。
将“config-extensions.txt”的内容附加到您的“config-extensions.def”文件(也在idlelib文件夹中)并重新启动 IDLE。
如何使用:
从“选项”菜单中选择“另存为 HTML”,并在 FileDialog 窗口中指定文件名。HTML 文件会立即创建。
在 Python 3.x 中工作的代码调整:
目前,IDLE2HTML扩展(2.0 版)不能在 Python 3.x 中工作,直到对我在IDLEX Python附带的固定版本中找到的代码进行小幅更改模块。这是一个文件比较,左边是原始文件,右边是固定的 IDLEX 版本。
说明:如果 Python 版本是 Python 3.x,请使用import tkinter as Tkinter
代替import Tkinter
和import tkinter.filedialog as tkFileDialog
代替import tkFileDialog
. 显示的代码使用sys.version
if/else 块中的内置“sys”模块来运行正确的代码。
我遇到了同样的问题,将 py 文件打开到 Visual Studio Code 中,然后简单地复制 (Ctrl A / Ctrl C) 并将文本 (Ctrl V) 粘贴到 Microsoft 编辑器中,例如 Word 或 RTF,甚至是 Outlook。颜色保持不变,包括打印时。请注意,为了避免在 VS Code 中将夜间模式设置为默认值,请转到 File->Preferences->Color Theme 并选择更适合打印的白天模式。
我一直用大量代码来做这件事。只需安装 SciTE “https://www.scintilla.org/SciTEDownload.html” 复制并粘贴您的代码并打印。我喜欢拿一些胶带和记号笔把所有的床单都贴在墙上,然后放一些音乐。快乐编码!