如何从空闲状态以彩色物理打印python代码?

如何从空闲状态以彩色物理打印python代码?,python,python-2.7,printing,syntax-highlighting,python-idle,Python,Python 2.7,Printing,Syntax Highlighting,Python Idle,我已经找到了这个问题的答案,但是相关的解决方案似乎涉及到解释器中的'print'ing 我想知道是否有可能从空闲状态打印(物理上打印)彩色python代码 我在空闲状态下进入:文件>打印窗口,它似乎只是打印出黑白版本,而没有提示是否使用彩色打印等 编辑: 看起来这可能不可用,所以选项是将代码复制到像SciTE这样的文本编辑器中,然后从那里打印出来,这与默认的空闲语法高亮显示非常相似 IDLE无法做到这一点,但您可以通过一种间接的方式来做到:使用LaTeX将您的脚本格式化为空闲颜色 该软件包支持p

我已经找到了这个问题的答案,但是相关的解决方案似乎涉及到解释器中的
'print'
ing

我想知道是否有可能从空闲状态打印(物理上打印)彩色python代码

我在空闲状态下进入:
文件>打印窗口
,它似乎只是打印出黑白版本,而没有提示是否使用彩色打印等

编辑:


看起来这可能不可用,所以选项是将代码复制到像SciTE这样的文本编辑器中,然后从那里打印出来,这与默认的空闲语法高亮显示非常相似

IDLE无法做到这一点,但您可以通过一种间接的方式来做到:使用LaTeX将您的脚本格式化为空闲颜色

该软件包支持python的IDLE-like着色,但它隐藏得很好:您必须知道包含一个“首选项文件”,该文件在
清单
手册中提到,但没有对其功能的描述。下面的示例将把脚本
myscript.py
转换为空闲颜色的彩色PDF

\documentclass{article}
\usepackage{listings}
\输入{listings python.prf}%定义python空闲代码样式
\直接引号需要usepackage{textcomp}%
\lstset{
basicstyle=\normalsize\ttfamily,代码字体大小的百分比
语言={Python},风格={Python空闲代码},
showstringspaces=false,
tabsize=4,
upquote=true,%required textcomp
}
\oddsidemargin=-0.5cm
\textwidth=7in%这只适合在10pt处输入80个字符
\开始{document}
\lsInputListing{myscript.py}
\结束{document}
您还可以在真实的LaTeX文档中包含代码片段

可用性:您至少需要
清单
1.5b版(2013/08/26)。Texlive 2013的用户必须从CTAN下载它(例如,使用命令行Texlive manager,
tlmgr
)。这是TexLive 2016的一部分

不幸的是,CTAN版本似乎仍然存在问题:首选项文件
listings python.prf
位于包的文档文件夹中,而不是位于tex可以找到它的
tex/latex/listings
中。您需要手动移动它才能使包含生效。

这里有一个更好的答案。 使用名为IDLE2HTML.py的空闲扩展名(搜索此扩展名)。 这允许空闲打印到样式表中有颜色的HTML文件。
然后将HTML文件保存为PDF格式(颜色仍将保留)。

一个好的简单解决方案是使用IDLE2HTML,IDLE的扩展名。
该工具允许IDLE将代码从编辑器窗口(或交互式shell)保存到HTML文件中,
CSS格式中包含颜色。在此之后,可以打印文件(按要求)或将其格式化代码与其他程序(如文字处理器)一起使用。
目前下载Python文件并查看一些说明的可靠网站是Python包索引(PyPI)-该页面是或内置到较新Python版本的
pip
模块可以为您安装这些文件

这种方法的一个有用的优点是,它从空闲中获取颜色格式,而不是花时间分析代码和使用存储的颜色(许多其他解决方案都是这样做的)。这意味着它使用实际的配色方案,并与不同的闲置主题(如“闲置黑暗”)协同工作。这将导致使用更少的资源和更短的代码。
此外,当前扩展名(2.0版)可能会进行调整,以便在保存数据时使用不同的文件格式,因为它的代码非常简单

有关其工作原理的一些详细信息:

由于该工具是作为扩展运行的Python代码,因此它可以访问IDLE提供的特殊变量,该变量包含有关编辑器窗口的数据。
idlelib
Python扩展名(运行编辑器)的
extend.txt
文件描述了名为
editwin
的变量:

空闲扩展类是用一个参数实例化的, `editwin',一个EditorWindow实例

它还包括一些关于扩展IDLE的其他文件,如“config main.def”和“config extensions.def”。官方Python文档提供了更多信息

安装说明:

将IDLE2HTML.py复制到python安装的“idlelib”文件夹中。
将“config extensions.txt”的内容附加到“config extensions.def”文件(也在idlelib文件夹中),然后重新启动IDLE

如何使用:

从“选项”菜单中选择“另存为HTML”,并在文件对话框窗口中指定文件名。立即创建HTML文件

在Python3.x中工作的代码调整:
目前,IDLE2HTML扩展(版本2.0)在对Python模块附带的固定版本中的代码进行小改动之前,不会与Python 3.x一起使用。 这里是一个文件比较,在屏幕截图的左边是原始版本,右边是固定的IDLEX版本


描述:如果Python版本是Python 3.x,请使用
import tkinter as tkinter
而不是
import tkinter
import tkinter.filedialog as tkFileDialog
而不是
import tkFileDialog
。显示的代码使用if/else块中内置的“sys”模块中的
sys.version
来运行正确的代码。

最简单的方法是使用打开“.py”文件,在那里您可以选择和修改设置和首选项(python代码的任何主题),以将python文件导出为彩色PDF文件(使用PDF虚拟打印机)或直接打印:-)

如果您正在使用,则只需安装()扩展,然后在安装后: