如何从IDLE物理打印彩色的python代码?

时间:2013-05-30 10:05:58

标签: python python-2.7 printing syntax-highlighting python-idle

我已经搜索了这个问题的答案,但相关的解决方案似乎与翻译中的'print'有关。

我想知道是否可以从IDLE打印(物理上在纸上)彩色蟒蛇代码?

我去了IDLE的File > Print Window,似乎只打印出黑白版本,而不提示是否打印颜色等。

修改

似乎这可能不可用所以选项是将代码复制到文本编辑器(如SciTE)并从那里打印 - 就像默认的IDLE语法高亮一样。

6 个答案:

答案 0 :(得分:4)

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 manager,tlmgr)。它是TexLive 2016的一部分。

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

答案 1 :(得分:2)

这是一个更好的答案。 使用IDLE扩展名为IDLE2HTML.py(搜索此内容)。 这使得IDLE可以打印到HTML文件中,该文件的样式表中有颜色。 然后将HTML文件保存为PDF(颜色仍然存在)。

答案 2 :(得分:2)

一个简单易用的解决方案是使用 IDLE2HTML ,这是IDLE的扩展。
该工具允许IDLE将代码从编辑器窗口(或交互式shell)保存到HTML文件中 颜色包含在CSS格式中。在此之后,可以打印文件(按要求)或与其他程序(如文字处理程序)一起使用的格式化代码 一个可靠的网站目前下载Python文件并查看一些说明是Python包索引(PyPI) - 页面是https://pypi.python.org/pypi/IDLE2HTMLpip模块,内置于较新的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复制到" idlelib"你的python安装文件夹   附加" config-extensions.txt"的内容到你的" config-extensions.def"文件(也在 idlelib 文件夹中)并重新启动IDLE。

使用方法:

  

选择"另存为HTML"来自"选项"菜单并在FileDialog窗口中指定文件名。 HTML文件立即创建。

在Python 3.x中使用的代码调整:
目前, IDLE2HTML 扩展(版本2.0)不能使用Python 3.x,直到对我在固定版本中找到的代码进行小更改包含在IDLEX Python模块中。 这是一个文件比较,左侧是原始版本,屏幕截图图片右侧是固定IDLEX版本。

File comparison image described above.

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

答案 3 :(得分:0)

最简单的方法是使用Notepad++打开'.py'文件,您可以在其中选择和修改设置和首选项(您想要使用python代码的任何主题),以将python文件导出到彩色文件中。 PDF文件(使用PDF虚拟打印机)或直接将其打印:-)。

OR

如果您使用的是VS code,则只需安装(PrintCode)扩展名并在安装后:

  1. 打开 VS代码,然后转到查看
  2. 点击命令面板
  3. 搜索“ PrintCode

它将使用默认的Internet浏览器将python文件导出为 HTML ,您可以在其中直接打印或使用虚拟打印机将python文档打印为彩色PDF。

答案 4 :(得分:0)

我遇到了同样的问题,然后将py文件打开到Visual Studio Code中,然后简单地复制(Ctrl A / Ctrl C)并将文本(Ctrl V)粘贴到Microsoft编辑器中,例如Word或RTF,甚至Outlook。颜色保持不变,包括打印时。 请注意,为了避免在VS Code中将夜间模式设置为默认模式,请转到 File-> Preferences-> Color Theme,然后选择一种更适合打印的日间模式。

答案 5 :(得分:0)

我一直使用大量代码来执行此操作。 只需安装SciTE“ https://www.scintilla.org/SciTEDownload.html” 复制并粘贴您的代码并打印。 我喜欢抓住一些胶带,记号笔将所有纸张粘在墙上,然后放些音乐。 编码愉快!